Each Sui validator maintains its own staking pool to track the amount of stake and to compound staking rewards. Validator pools operate together with a time series of exchange rates that are computed at each epoch boundary. These exchange rates determine the amount of SUI tokens that each past SUI staker can withdraw in the future. Importantly, the exchange rates increase as more rewards are deposited into a staking pool and the longer an amount of SUI is deposited in a staking pool, the more rewards it will accrue.
When SUI is deposited to the staking pool in epoch
E, those SUI are converted into liquidity tokens at the epoch
E exchange rate. As the staking pool earns rewards, the exchange rate appreciates. At epoch
E', those liquidity tokens are worth more and translate into more SUI.
The only difference between Sui staking pools and typical liquidity pools is that in Sui the liquidity tokens do not exist. Rather, the global exchange rate table is used to track the accounting. Because all SUI tokens in the staking pool are treated the same, regardless of whether they were originally deposited as new stake or as stake rewards, all SUI tokens immediately count as stake and thus compound rewards immediately.
The staking pool is implemented in a system-level smart contract (staking_pool.move) and is part of the Sui framework.
Validator pool exchange rate
The exchange rate for each validator pool is calculated at each epoch boundary as follows:
Exchange Rate at E+1 = ( 1 + ( Third-Party Staker Rewards at E / Third-Party Stake at E )) ( Exchange Rate at E )
The distinction between third-party owned vs validator-owned rewards and stake is relevant in that validators earn commissions on the staking pool's tokens but third-party stakers do not. This accounting enables Sui to keep track of the rewards accrued by both validators and third-party token holders using a single global exchange rate table.
Validator staking pool requirements
There are minimum staking requirements a validator must satisfy to become active and to stay in the active validator set.
- A validator candidate must accrue at least 30M SUI of stake before they can request to join the validator set.
- If an active validator’s stake falls below 20M SUI, they have seven epochs of grace period to gain back the stake before being removed from the validator set.
- If an active validator’s stake falls below 15M SUI, they are removed from the validator set at the end of the current epoch boundary. Sui uses 24-hour epochs.