Quick Start Guide for Adaptive Issuance

Chris Pinnock
Tezos Commons
Published in
8 min readApr 30, 2024

--

Tezos has a fixed issuance model where bakers get fixed rewards for each block they bake or attest. A consequence of this model is a yearly inflation rate of approximately 4.6%. The inflation rate is not sustainable for our blockchain. It doesn’t compare well to other chains. Furthermore, coins used in smart contracts and smart rollups may suffer from deflation as they cannot be delegated.

The latest Tezos protocol proposal ParisB includes a new issuance model. It introduces Adaptive Issuance (AI) alongside the current fixed model. One of its aims is to reduce the inflation rate on the chain.

Adaptive Issuance will activate 5 cycles after the ParisB protocol activates. At the time of writing, Adaptive Issuance is active on the Parisnet test network. If ParisB passes the governance process, it will activate on mainnet in June 2024.

In ParisB the current fixed issuance reward model will continue alongside Adaptive Issuance. Delegators can stake their coins and the protocol will handle the reward payment.

In this short article, we describe the steps most Tezos bakers and users will need to use the new model. You can work with the examples below on Parisnet today. We do not attempt to cover the full details of Adaptive Issuance or the rewards model here — this is a Quick Start guide.

Bakers

Users of Tezos can delegate their wallets to a baker. Today, public bakers provide a service where delegators receive rewards from the baker. These rewards have to be managed by hand or with additional software. The baker freezes a security deposit of 10% of the total balance of the baker plus that of its delegates.

In Adaptive Issuance, the key changes for bakers are:

  1. The baker can stake any size of bond from their spendable balance. This stake replaces the security bond of the previous issuance model.
  2. The minimum stake is 600tz.
  3. Delegators to the baker can also stake, but the baker needs to be set up to allow its delegators to become stakers.
  4. The baker can accept up to 5 times its own stake from stakers (the multiplier is called the limit of staking over baking).
  5. The baker can set the staker fee it receives (called the edge of baking over staking). It defaults to 100%.
  6. The stakers receive their proportion of the baking reward due to their stake directly from the protocol.
  7. The stake is subject to slashing if the baker misbehaves (e.g. double baking).
  8. The stake needs to be unstaked and finalized to withdraw the baker from operation.
  9. It is up to the baker if they continue to pay out delegation rewards. These still have to be handled manually.

A baker still needs 6000tz (1 roll) to participate in baking.

Baking rights are allocated based on stake rather than the full baking balance. Old delegations still influence the baking rights but 1tz delegated has half the rights of 1tz staked. Accordingly, the rewards due for delegation are smaller than that for staking. The new reward model is outside the scope of this article.

The slashing model to punish malicious baking activity has changed in ParisB. A full in-depth description of Adaptive Slashing is in the Paris announcement.

Setting Up a New Baker

If your baker was active before the AI activation, the current security deposit has been automatically staked. This is usually 10% of the sum of your baker’s balance and your delegators’ balances.

If you are setting up a baker after the AI activation, you will need to self-delegate and stake a bond yourself. For example, here we set up a key to bake with a stake of 600tz (the minimum).

octez-client register key my_baker as delegate
octez-client stake 600 for my_baker

It is no longer enough to just register your key. You must stake as well. It now takes 2 cycles before your baker receives baking rights. You can stake the entire value of your spendable balance if you want, but you should leave some balance free for staking, unstaking and finalization fees.

Changing Your Stake

You can change the size of the stake at any time, but the change will take 2 cycles to take effect. The change will affect your baking rights. You can stake any amount from your spendable balance. Here we raise the stake by an additional 700tz:

octez-client stake 700 for my_baker

To reduce the stake, use the unstake command. Here we reduce the stake by 300tz:

octez-client unstake 300 for my_baker

This only removes the funds from staking. After 2 cycles they no longer contribute to baking rights calculations, but they are still frozen. To unfreeze them and return them to the spendable balance, you must wait 4 cycles and issue the finalization command:

octez-client finalize unstake for my_baker

If you unstake too many coins and your stake is below 600tz, you will lose all baking rights after 2 cycles.

Allowing Others To Stake On Your Baker

Anyone can delegate their Tezos coins to your baker. But by default, other users are not allowed to stake on your baker. You can allow them by setting the delegate parameters. Here is the prototype command:

octez-client set delegate parameters for my_baker \
--limit-of-staking-over-baking 5 \
--edge-of-baking-over-staking 1

The limit of staking over baking is the multiplier of the allowed stake on your baker. The number can be between 0 and 5. The default value is 0, i.e. no allowed stakers. The allowed stake is this number multiplied by your baker’s stake. Anything staked over the limit is considered as a normal delegation.

The edge of baking over staking is a number between 0 and 1 representing a percentage. This percentage is the proportion of the baking or attesting reward that the baker receives. The rest of the reward goes directly to the staker. The default value is 1, i.e. all of the baking reward goes to the baker.

For example, to allow 3 times your stake and take a 15% commission use the following command:

octez-client set delegate parameters for my_baker \
--limit-of-staking-over-baking 3 \
--edge-of-baking-over-staking 0.15

Remote Signers

The staking operation and changing the delegate parameters are management operations. Many bakers protect their keys with a remote signer and a hardware security module. You will need to do slightly more work when setting up staking if you use them.

If you use a Ledger device, use the Ledger’s Tezos Wallet app whilst issuing the staking commands.

If you use a remote signer, it will need to be reconfigured to allow the staking commands to pass. For octez-signer you will need to allow operations with magic byte 0x03. During normal operations, you will probably not want to allow these. For Signatory please refer to the user guide.

Decommissioning a Baker

To decommission your baker properly, you will need to unstake your entire bond first. During a period of 4 cycles, the baker still has some baking rights and the funds are still frozen. After this period has expired, you can finalize the operation. To unstake your entire bond, issue the following command:

octez-client unstake everything for my_baker

Once the 4 cycle period is up, you can return your stake to your spendable balance by issuing the following:

octez-client finalize unstake for my_baker

Then you can turn off your baker processes.

Users or Delegators

We will use the Octez command-line wallet octez-client in this section. By the time that ParisB is accepted and goes live, other wallets will support Adaptive Issuance.

The key differences for users of Tezos:

  1. The general Tezos user can still delegate their coins to a baker and be a delegator.
  2. Additionally they can stake their coins and become a staker if the baker accepts staking.
  3. You can stake any amount in your spendable balance, but you should reserve some funds for staking, unstaking and finalization fees.
  4. You can stake more or unstake at any time, but changes take 2 cycles to affect baking rights and hence any rewards.
  5. Unstaked funds are still frozen. The unstaking needs to be finalized after 4 cycles.
  6. The user’s wallet receives any baking rewards due to the staking directly from the Tezos protocol. The baker is not involved in this process. The rewards are automatically staked.
  7. The user’s stake is subject to slashing should the baker misbehave.
  8. You can liquidate your stake by unstaking everything, waiting 4 cycles, and then by issuing the finalization command.

If the baker you have delegated your coins to does not accept staking, you will need to find another baker who does accept staking.

Staking To a Baker Using Octez-client

The user can stake in the same way that a baker can. They must delegate to the baker first. For example to delegate and then stake 700tz:

octez-client set delegate for my_wallet to my_baker
octez-client stake 700 for my_wallet

The stake is immediately locked and contributes to baking rights within 2 cycles.

If you receive an error like this:

“The delegate currently does not accept staking operations from sources other 
than itself: its `limit_of_staking_over_baking` parameter is set to 0.”

then the baker is not set up to receive staking.

Changing Your Stake

You can change your stake in a similar way to a baker. To increase your stake you use the stake command. To decrease your stake you use the unstake command.

To increase your stake by 500tz, use:

octez-client stake 500 for my_wallet

To decrease your stake by 400tz, use:

octez-client unstake 400 for my_wallet

After a period of 4 cycles, you can finalize the unstaking action and return the funds to a spendable state.

octez-client finalize unstake for my_wallet

Fully Unstaking

To completely unstake your Tezos coins, use the following command:

octez-client unstake everything for my_wallet

After a period of 4 cycles, you can finalize the unstaking action and return the funds to a spendable state. Also you will need to withdraw your delegation.

octez-client finalize unstake for my_wallet
octez-client withdraw delegate from my_wallet

References

  1. Nicolas Ochem, A Walkthrough of Tezos’s New Staking Mechanism.
  2. Nomadic Labs, Prepare for Oxford.
  3. Nomadic Labs, Paris announcement.
  4. Nomadic Labs, Adaptive Issuance in Paris.
  5. Nomadic Labs, Developers UX guide to Adaptive Issuance, in preparation.
  6. Beata Lipska, New Staking UX for Adaptive Issuance (video).

Acknowledgements

Many thanks to Zaynah Dargaye, Lucas Randazzo, Yann Regis-Gianas and Corey Soreff who checked the details and made suggestions to improve the article.

--

--

Crypto. Blockchain. IT Infrastructure. Languages. I do stuff on Tezos ꜩ.