The purpose of staking is to secure the network. See Start Here! Radix Staking Introduction for more on why it’s important and for the key articles you should read to understand how staking works on Radix.
For those familiar with the previous Olympia Mainnet, staking on Radix’s Babylon Mainnet has changed. Staking is now done via the Radix Dashboard (or other third party dApp websites set up to do this) which can set up the appropriate transaction which you just need to approve in your Radix Wallet. The act of staking also returns you Liquid Stake Unit tokens, LSUs, which you can freely transfer or make use of as you see fit.
So how does it work?
When you use the Radix Dashboard (which replaced Olympia’s Radix Explorer) or an equivalent website to stake, the site translates your staking intent to a transaction manifest transferring the desired amounts of XRD to one or more validator components. This sends XRD from your Smart Account to the stake() method on a validator component, which is a special type of system component with logic guaranteed by the Radix Protocol itself, not by any smart contract developer Each validator node-runner that registers with the network as a validator will have their own validator component on-ledger in which to receive stake. As validator components are system components, validator node-runners do not have access to your staked XRD - it’s safe.
When receiving XRD, validator components add it to their pool of staked XRD, and mint an appropriate quantity of a Liquid Stake Unit (LSU) token that is specific to that validator. Liquid Stake Units function similarly to a Liquidity Provider, or LP, token, for those familiar with the concept from Uniswap and other DeFi applications. These LSU tokens are returned to the staker, and the Radix Wallet recognizes these tokens and shows their current redemption value in XRD.
Liquid Stake Units are normal fungible resources, and specific to the validator component which minted them. That is, tokens minted by Alice's validator component will have a different resource address than the tokens generated by Bob's validator. See Why are Liquid Stake Units (LSUs) unique to each validator for more on why this is the case.
Liquid Stake Units contain metadata showing which validator component they are associated with (and vice versa). This metadata is locked and can not be altered, so it’s not possible to fake this association.
Requesting an Unstake
To unstake, again the user visits the Radix Dashboard or equivalent site, and approves a transaction that sends a quantity of Liquid Stake Units to the appropriate validator component.
The validator component then calculates the appropriate amount of XRD that the LSUs represent ownership of, and moves that XRD to a separate "unstaked" pool. It then burns the Liquid Stake Units, mints a non-fungible claim token (NFT), and returns it to the unstaker. The claim token has embedded data which defines the expected amount of XRD of the requested unstake, and the time after which that XRD can be claimed (calculated using the network-wide unstaking delay) by turning in the claim NFT. As long as the validator does not undergo a slashing event during the unstaking period, the amount of XRD it redeems for will be exactly as defined by the claim NFT.
Once the unstaking period has passed, the claim token can be sent back to the validator component, which will burn it and return the appropriate amount of XRD from the "unstaked" pool.
The Radix Wallet recognizes these claim tokens and warns the user when XRD is eligible to be claimed from one or more validators, and sets up the appropriate transaction for approval, making this second step a snap.
See the following two articles to learn how XRD emissions work:
- How do XRD emissions work?
- How XRD staking emissions rewards & penalties are calculated - general for more detail on how emissions are calculated.
In the previous Olympia mainnet, validator node-runners could designate a specific address as their personal account, and any XRD staked from that account would show up as part of the owner stake in the validator list—a public way to show that the owner had “skin in the game” and would suffer the same lack of emissions as their stakers if the node missed proposals.
The existence of Liquid Stake Units means the representation of stake is transferable, and so this same goal is achieved in a different way. On Babylon, the owner of a validator node may lock some or all of their stake to their node, if they so choose, using LSUs. The validator component includes a method available to the owner which will accept a deposit of Liquid Stake Units, preventing them from being transferrable and for which the owner must undergo a similar process to unstaking in order to withdraw them again (that is, they will issue a request to remove some number of them, those tokens will be placed in a holding vault, and they will receive a claim NFT. Then they must wait until a certain amount of time has passed before they can reclaim them. Unlocking locked owner LSUs takes 8064 epochs, targeting 28 days. This is longer than the usual unstake period of 2,016 epochs, or 7 days.
The balance of these locked Liquid Stake Units in a validator component is the Babylon equivalent of “owner stake.” Naturally, such tokens continue to benefit from network emissions while they are held in the validator component, because the underlying pool of XRD is growing.