An overview of the Liquidity Staking Pool
2.50%of the initial token supply (
25,000,000 DYDX) was allocated to be distributed to users staking USDC to the Liquidity Staking Pool. The Liquidity Staking Pool is no longer active as of September 29, 2022. In DIP 14, the dYdX community voted to effectively wind down the Liquidity Staking Pool and the Borrowing Pool by setting the Liquidity Staking Pool rewards per second to 0. Previously, DYDX was distributed to users who staked USDC to the Liquidity Staking Pool. Community-approved liquidity providers used the staked USDC to make markets on the dYdX Layer 2 Protocol, furthering the liquidity available across the markets. Liquidity providers were restricted from using borrowed funds outside of the dYdX Layer 2 Protocol.
Currently, USDC staked in the Liquidity Staking Pool is not earning rewards.
A staker must request to withdraw USDC at least
3 days(Blackout Window) before the end of an epoch in order to be able to withdraw the staker's USDC after the end of that epoch. If stakers do not request to withdraw, their staked USDC is rolled over into the next epoch.
Withdrawals cannot be requested during the Blackout Window.
USDC holders who deposit and stake their USDC into the Liquidity Staking Pool will receive a tokenized position (stkUSDC). stkUSDC is minted when a user stakes USDC, and is burned when a user calls
withdrawStake. In the same transaction that USDC leaves a staker's wallet, stkUSDC enters the staker's wallet; or vice-versa when unstaking.
A stkUSDC balance can be active or inactive. Active stkUSDC can be transferred as an ERC-20, but cannot be withdrawn. Inactive stkUSDC can be withdrawn, but cannot be transferred. For example, a user may have 100 active and 100 inactive stkUSDC in their wallet, and the user's balance will show 200 stkUSDC, but a transfer will revert if the user tries to transfer more than 100 stkUSDC.
A staked balance for which the staker has requested a withdraw prior to the end of epoch would be considered inactive, and therefore not transferable.
A blackout window is a period of time during which users cannot request withdrawals of staked USDC. The
requestWithdrawalfunction cannot be called during a blackout window, which is configured as the last
3 daysof an epoch. New epochs start every 28 days. In other words, users can request a withdrawal for the next epoch up to
3 daysbefore the end of a given epoch.
A staker must request to unstake USDC at least
3 daysbefore the end of an epoch in order to be able to withdraw the staker's USDC after the end of that epoch. If stakers do not request to withdraw, their staked USDC is rolled over into the next epoch.
To withdraw USDC, users call the
requestWithdrawalfunction to request to withdraw USDC for the next epoch. User funds will remain staked and not withdrawable for the current epoch. Starting in the next epoch, funds will be “inactive” and available for withdrawal.
In the next epoch, users call the
withdrawStakefunction to withdraw inactive USDC to a specific address. Users can select the amount of inactive funds they want to withdraw or call the `withdrawMaxStake` function to withdraw all inactive funds. The
withdrawMaxStakefunction is less gas-efficient than querying the max via eth_call and calling
To unstake USDC to the Liquidity Pool, following the following steps:
- Click on “Request”, to open the following modal:
- Enter the amount of USDC you want to request to withdraw from the pool, and click "Request withdraw". You will need to pay gas fees to unstake USDC.
- Stakers who request to unstake USDC at least
3 days(Blackout Window) before the current epoch ends can withdraw their USDC at the start of the next epoch.
dYdX governance is responsible for:
- Rewards per second for staking USDC to the Liquidity Staking Pool
- Adding new borrowers to and/or removing existing borrowers from the Staking Liquidity Pool
- Changing allocations of borrowed USDC to approved borrowers
setBorrowingRestrictionfunctions are called to change the allocations of certain borrowers. They can be used to add and remove borrowers. Increases take effect in the next epoch, but decreases will restrict borrowing immediately. These functions cannot be called during the blackout window.
- Epoch length and blackout window are set upon creating the contract but can be changed