file icon

Why is the amount of XRD that is staked or unstaked sometimes very slightly different than what I requested?

Staking on Radix uses an accounting mechanism that calculates stakes and emissions in a way that makes it possible to distribute emissions tokens at every epoch’s end fairly and automatically restake those tokens for the validator component without creating a significant network burden. A consequence of this implementation is that the requested number of staked or unstaked tokens sometimes has to be “rounded” a bit to match how the accounting mechanism tracks them.

This is not a bug, it’s just the result of the math of dealing with tokens of finite precision. The differences in question here are extremely small, e.g. if you specified a stake of 1,000 XRD, you may see that the value of Liquid Stake Unit (LSU) tokens you receive are “only” 999.999999234 XRD.

Further reading: