Validator Node Rewards
Sui uses a delegated proof-of-stake (DPoS) system, where validators receive voting power from SUI token holders who delegate their stake. At the end of each epoch, validators receive rewards based on their performance and commission rate. Rewards auto-compound because validator staking pools receive new delegated stakes.
The total voting power on Sui is always 10,000, regardless of the amount staked. Therefore, the quorum threshold is 6,667. There is no limit to the amount of SUI users can stake with a validator. Each validator has consensus voting power proportional to SUI in its staking pool, with one exception: the voting power of an individual validator is capped at 1,000 (10% of the total). If a validator accumulates more than 10% of total stake, the validator's voting power remains fixed at 10%, and the remaining voting power is spread across the rest of the validator set.
Staking on Sui compared to other blockchainsβ
The Sui staking mechanism includes features that might differ from other blockchains:
- Staking is self-custodial. Stakers keep their staked SUI tokens in an owned object.
- Staking rewards auto-compound because of the liquidity-pool-inspired design.
- A new stake begins contributing to a validator's voting power starting the epoch after it is created. Similarly, a withdrawn stake stops contributing starting the epoch after withdrawal.
Validator staking pool requirementsβ
There are minimum staking requirements a validator must satisfy to become active and to stay in the active validator set.
Stake requirementsβ
The Sui network is rolling out SIP-39, which will significantly lower the barrier to entry for validators. Instead of requiring a minimum amount of SUI tokens, validators will need a minimum amount of voting power.
When fully rolled out, SIP-39 will mean the following validator requirements:
- A validator candidate must accrue at least 3 voting power before they can request to join the validator set.
- If an active validator's stake falls below 2 voting power, 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 1 voting power, they are removed from the validator set at the end of the current epoch boundary. Sui uses 24-hour epochs.
For more information on voting power, see Understanding the voting power formula.
Want to be a Sui validator?
If you have the required stake and plan to operate a validator on Sui, your participation is welcome and Sui is committed to supporting your onboarding. Kindly complete this form to be added to our Validator Discord and keep up with upcoming validator releases and technical support.
User staking and rewardsβ
When users stake SUI tokens, the tokens are wrapped into StakedSUI objects. A userβs share of the staking pool is calculated using the timestamp of their StakedSUI object, which records when the deposit occurred, along with the change in exchange rates between the deposit epoch and the withdrawal epoch.
Each staking pool maintains a time series of its exchange rates. This data allows the system to determine the correct withdrawal amount for any staker in the pool.
Find the exchange rateβ
Each epoch change emits a 0x2::validator_set::ValidatorEpochInfo event per validator with the exchange rate information. You can use the Events API to query events.
Reward distributionβ
A stake deposit request goes into a pending state immediately in the staking pool as soon as it is made. Wallets like [Slush] reflect any pending stake deposit requests for the user's account.
At the end of each epoch, gas fees collected and stake subsidies are distributed among validators and stakers as staking rewards. The rewards a validator receives depend on:
-
Performance: If a validator does not operate performantly, other validators can report them through the tallying rule. The validator's staking rewards for that epoch are then slashed.
-
Commission rate: The commission rate determines the portion of staking rewards the validator keeps. For example, if a validator has a 10% commission rate, then 10% of the staking rewards of their stakers go to the validator each epoch as new stake objects owned by the validator.
Rewards withdrawalβ
Validator rewards are distributed as regular stake objects, so withdrawal works the same for validators and stakers. A validator can call the request_withdraw_stake function in the sui_system module to withdraw stake and receive rewards.
Stake withdrawals are processed immediately with the exchange rate prevailing at the previous epoch's exchange rate. Withdrawals do not have to wait for the current epoch to close. Withdrawals include both the original stake the user deposited and all the stake rewards accumulated up to the previous epoch. Stakers do not earn the rewards accruing to their stake during the epoch at which they withdraw. Since there is no way to know how many stake rewards are accumulated during the current epoch until the epoch closes, these cannot be included in the withdrawal. Hence, any user can withdraw their stake immediately and receive: