How Rooster Supports Nest Vaults on Plume
Last updated
Last updated
Rooster’s pools provide the fundamental liquidity support for Nest vaults on Plume. Users enter these vaults using stablecoins like USDC and pUSD, which are converted to bundles of the RWAs that constitute a particular vault. When a user exits a vault, these assets need to be converted back to stablecoins. This operation requires deep token liquidity to ensure that the user receives the full value of their deposit (i.e., that the RWAs can be swapped back to stablecoins at a guaranteed price).
This is where Rooster comes in. Rooster’s advanced Automated Market Maker (AMM) makes it easy to create “walls” of liquidity at specific price points, guaranteeing that Nest vaults are able to convert user positions at a minimum specified price.
One way of understanding an AMM is to think of it as a series of limit orders that liquidity providers (LPs) place and traders trade against. The AMM smart contract holds all of the tokens and manages the orders, enabling trades to be executed continuously and permissionlessly. This also allows for integration with other smart contracts–like Nest vaults–and ensures a seamless experience for users across the network.
To be included within a Nest vault, an RWA project needs to ensure that a minimum quantity (e.g., 1M) of their token can be swapped to stablecoins at a specified price (e.g., $0.98). They will accomplish this by opening a pool on Rooster and depositing sufficient stablecoins to buy 1M tokens at $0.98 price at the 98 cent price tick in the Rooster pool. This process is explained in more detail in the sections below. Once this pool is integrated with Nest, the new vault will use the pool to guarantee the value of user deposits.
All liquidity added to an AMM like Rooster’s is deposited across a price range that tells the AMM contract how to price each token. If the starting price of tokenA in the pool is $1, the AMM will sell all the tokenAs available at $1 before moving to sell the tokenAs at $2, and so on. In Rooster’s AMM, the liquidity provider (LP) has a lot of control over the range used and how their tokens are distributed within it, much like if they were configuring their own limit orders in a traditional market.
An AMM’s price range is composed of ticks. Each tick represents a particular point on the range ($1, $2, etc.). Between each pair of ticks is a bin, which holds the token liquidity available for trading at the narrower range established by the two ticks (e.g., between $1 and $2). The spacing between ticks (and thus the width of each bin) is defined when the pool is opened and remains permanently fixed.
At any given time, only one bin in a Rooster pool is active. This means that this is the bin currently servicing swaps between the pool’s tokens. The active bin dictates the current price in the pool (e.g., if the current pool price is $1.50, the $1-$2 bin will be active). As trades occur, the supply of tokenA or tokenB in the active bin may be exhausted, causing the price to move into an adjacent bin (and thus a new range).
The procedure for creating a price wall is straightforward:
Determine the minimum desired price (Y) for the RWA token
Calculate the dollar value (Z) required to purchase X RWA tokens at that price
Find the tick equal to Y on the pool’s price range
Select the bin that uses this tick as its lower price bound
Deposit Z stablecoins into this bin
In the screenshot below, the user has selected a Narrow (1 Bin) distribution and then used the Customize Distribution window to select the bin with the lower tick bound of 0.16933 pUSD per PLUME token. By depositing pUSD into this bin, they will create a wall of liquidity that will buy PLUME at a price from 0.17442 pUSD (the upper tick bound) to 0.16933 pUSD (the lower tick bound). The amount of pUSD deposited will dictate the size of the wall and the amount of PLUME liquidity it can support.
In addition to using project-owned liquidity to establish a price wall, Rooster presents other options for ensuring sufficient liquidity for Nest vaults.
For more detailed instructions on adding liquidity, please see the in these Docs.
Instead of funding the price wall themselves, a project can configure a price wall as a and then incentivize LPs to fund it using Royco incentives. In this way, a project can effectively rent TVL rather than use its own treasury. For example, let’s assume a project needs $1M of stablecoin liquidity in their Rooster pool in order to open a vault on Nest. Rather than provide the $1M from their own treasury, they could offer a sufficient incentive APY through Royco to attract $1M in liquidity from LPs. The optimal APY will depend on market conditions and LP sentiment, but, as a basic example, a 10% APY would require an annual incentive budget of $100k (or ~$8,333 a month), which may be preferable to using treasury funds.
Rooster’s ve(3,3) flywheel also makes it easy to attract deep liquidity to a pool at price, making it less likely that a price wall will need to be used as a backstop. A project can acquire ROOSTER and use it to vote more emissions to their pool, thus incentivizing more LPs to join and deepen the available liquidity. The project would also benefit by receiving trading fees from the pool. For more information on ve(3,3), please see the in these Docs.