This living document is a collection of guidelines on how to create proposals for PrimeDAO governed Smart Pools. At the moment of writing there is only one PrimeDAO governed Balancer pool, but more may be added in the future.
PrimeDAO governed pools are Smart Pools. See here for more information. In general, smart Pools are more flexible than regular Balancer Pools and have a number of parameters that can be changed by the pool controller. In our case the controller is PrimeDAO.
To change the parameters of the Pool user would have to do a proposal in PrimeDAO through the DAOStack’s Alchemy user interface. The user would have to go to the Mainnet PrimeDAO and select theLiquidity Pool Manager plugin — or use this direct plugin link.
The proposal interface for the Liquidity Pool Manager.
Click[+ New Proposal] to create a proposal. There are several options available that will allow the user to configure PrimeDAO’s governed Smart Pool:
Enable or Pause Pool
This option enables users to completely stop or resume all trading activity on the Smart Pool. In order to stop the activity the user would have to select the Pause option. The Enable option would allow the user to resume the activity of the paused pool.
If the pool is paused liquidity providers will still be able to withdraw their liquidity from the pool.
Set Pool Fee
Enables users to update the current Smart Pool’s Fee that is being collected from traders as a percentage of a traded amount. It is collected by the pool’s liquidity providers.
Please enter 0.01 to mean 1%.The swap fee should be less than or equal to 10%.
Add Token (pt. 1)
This option initiates adding a new token to the Smart Pool. Adding a new token is a two-step process. The first step could be thought of as an initial proposal that is approved in the second step.
The following fields have to be filled in in order to create a proposal:
Token Address: Ethereum address of the ERC20 token that the user is proposing to add to the pool.
Amount of Tokens to Add: The amount of tokens that the user is proposing to add. The DAO should have enough funds in order for step two to pass
Token Weight: a denormalized weight of the new token in the pool. Enter a value greater than or equal to 1.0 and less than or equal to 49.0.
Denormalized weight is a core balancer concept that describes how token weights are being stored in the Balancer protocol.
From Balancer’s Core Concepts documentation:Weights in a Pool, though often displayed as percentages, are configured and stored in their denormalized form. For instance, in a two-token pool with denormalized weights of A=38 and B=2, token A's percentage weight would be 38/(38+2), or 95%. Conversely, token B's proportion would be 2/(38+2), or 5%.
Denormalized weights range from 1 to 49, since the maximum total denormalized weight is 50. (This corresponds to a percentage range from 2% to 98%: 1/(1+49) = 2%; 49/(1+49) = 98%)
Add Token (pt. 2)
Second step in the process of adding a token to the pool. After the user has submitted a proposal to add a new token to the pool using Add Token (pt. 1), a second proposal is required to finalize the addition. Only the most recent token added via pt. 1 is finalized.
This option allows the user to remove an existing token from the pool.
Change Token Weight
Allows users to change the weight of an existing token in the pool. This function also triggers the transfer of the tokens to/from the pool from/to the DAO.
Token Address: Address of the ERC20 token that is already present in the pool
Token Weight: The denormalized weight for the token in the pool. Enter a value greater than or equal to 1.0 and less than or equal to 49.0.
See a detailed explanation of how denormalized weights work in the "Add Token, Pt. 1" description.
Note: Change Token Weight cannot be called if Update Weights Over Time is taking place.
Update Weights Over Time
This option enables the usage of one of the main Smart Pool features such as bootstrapping liquidity. Update Weights Over time allows to gradually change weights of the tokens presented in the pool.
More information could be found here.
New weights: The new denormalized weights of the tokens that are already in the pool at the end of the period. Weights for all tokens should be added in the right sequence. Currently the order of the tokens in the pool is as follows [PRIME, WETH].
For denormalized weights, enter a value greater than or equal to 1.0 and less than or equal to 49.0. See a detailed explanation of how denormalized weights work under the "Add Token, Pt. 1" description.
Start Block stands for the block number when tokens denormalized weights start to be updated.
End Block stands for the block number at which token weight will stop being updated and will equal to the weights in New Weights section.
Add and Withdraw Liquidity functions will be added in the future.