A Closer Look Into Snapshots on Tezos — Why Does it Take 7 Cycles for My Delegation to Start Baking?
More and more delegators are used to the fact that a newly made delegation would take 7 cycles (~21 natural days) to start producing rewards. Rather than simply accepting the fact, at Cryptium Labs, we prefer that Tezos token holders or delegators understand the why behind the facts, no matter who they delegate to.
Without understanding how baking rights are assigned and what role snapshots play in the process, it is only natural that delegators do not know what happens when a new delegation is made or is changed. This series of articles are my attempt to explain better how snapshots work and its implications for both bakers and delegators.
Understanding Baking Rights and Snapshots
In October 2018, I published “Tempus Fugit — Understanding Cycles, Snapshots, Locking and Unlocking Periods in the Tezos Protocol”. As the title states, all these basic concepts are described in detail and with examples, I strongly recommend reading the summary at least before continuing.
What are Snapshots and Why Do They Matter?
Snapshots are records of the state of rolls distributions. Snapshots are currently taken 16 times per cycle or every 256 blocks (~4 hours).
Snapshots are essential for assigning baking rights. As stated on the official documentation:
The right to publish a block in cycle n is assigned to a randomly selected roll in a randomly selected roll snapshot from cycle n-PRESERVED_CYCLES-2.
Why Does it Take 7 Cycles for My Delegation to Start Baking?
Let’s consider a very simple scenario of a baker, Liptium Crabs, who has a Total Staking Balance (TSB) of 100,000 XTZ (10 Rolls).
Liptium Crab’s TSB does not change until Cycle 18, where it receives a new delegation of 10,000 XTZ. As the diagram below shows, the baker’s TSB at Cycle 18 has changed to 110,000 XTZ. For simplicity, Liptium Crabs’ STB remains unchanged for the following cycles.
Although the baker’s STB changed on Cycle 18 and snapshots are taken once every 256 blocks, why does the new roll not count until 7 cycles after?
The key to the answer is in the assignment of baking slots: “The right to publish a block in
cycle n is assigned to a randomly selected roll in a randomly selected roll snapshot from
Because the protocol tracks the changes on the baker’s TSB, a delegator can always see the most updated value. In fact, bakers by using the endpoint provided by the Tezos RPC, can track and check exactly which snapshot was chosen from the set of snapshots from that cycle.
It is natural to think that this delegation should immediately (already at Cycle 18) be productive and generate rewards, as snapshots are taken quite frequently during every cycle. However, this is not the case, because the baking slots were already assigned back in Cycle 11 where the snapshots taken during that cycle were considered:
n = 18PRESERVED_CYCLES = 5 (the current constant)# the chosen snapshot is from cycle:18 - 5 - 2 = Cycle 11
As this diagram shows, the snapshots considered for assigning slots at Cycle 18 are the records taken during Cycle 11, slots at Cycle 19 during Cycle 12, and so on.
Following this pattern, the snapshots taken during Cycle 18 will be considered for the baking slots of Cycle 25. This is the reason why when a delegation is made, it only starts producing rewards 7 cycles after the cycle the delegation was made.
- A Closer Look Into Snapshots on Tezos — What Happens When I Change the Amount of a Delegation?
- A Closer Look Into Snapshots on Tezos — What Happens When I Change the Baker of a Delegation?