Elrond Genesis Staking, Process And Flow — Part 3

Lucian Todea
Elrond Network
Published in
11 min readMay 10, 2020

--

We are excited that the Genesis Smart Contract will start on Tuesday at 13:00 UTC. As you may know, we have already published two posts on the Elrond Genesis staking. In Part 1, we have covered the general aspects, and in Part 2 we went into more detail on the Genesis launch, bootstrapping process, structure and rewards.

Part 3 will cover the process of how to stake and delegate safely to the Genesis Smart Contract via MetaMask, and also some technical details about the states of the Genesis Smart Contract.

While we understand that the staking process done via Ethereum is quite complex and difficult, we are putting a lot of effort in so that it will become a lot easier after the Mainnet launch, once everything is done via Elrond.

So let’s get into it.

If you want to take one important idea with you from this article, it’s that the sooner and the longer you will stake or delegate, the more pre-Mainnet rewards you will get.

1. Staking options

There are two types of possible staking if you’re an ERD holder. The first one involves delegating the stake to Elrond and receiving a percentage of the rewards collected by the nodes we manage. The second involves actually becoming a validator on the Elrond blockchain.

Delegator — Elrond supporters can stake their ERD for 25% APR pre-Mainnet and 29% APR after Mainnet.

  • Get an Elrond wallet
  • Have ERC-20 ERD tokens in a MetaMask wallet (and some ETH to pay for gas)
  • Delegate stake in Genesis SC, redeem stake + rewards on Mainnet
  • No minimum limit
  • Total overall delegation capped at 2.51 Billion ERD
  • OK to delegate multiple times from the same address

Validator — Battle of Nodes veterans can run nodes at Genesis & earn 25% APR pre-Mainnet and 36% APR after Mainnet.

  • Whitelist amount of nodes in this form
  • Battle of Nodes participants have priority
  • Not too late to join: https://t.me/BattleOfNodes & https://t.me/ElrondValidators for instructions
  • Not whitelisted for Genesis? No problem, delegate for now, join as validator later. Applying now increases your chances to join as early as possible

2. Delegation, the easy way to stake

Anyone holding ERD tokens will be able to participate in staking indirectly by delegation (available until the limit of 2.51 Bil ERD is reached). For security reasons, at Genesis all the delegations will go towards the Elrond foundational nodes. Community nodes will put up their own stake, and Staking as a Service providers will temporarily receive stake delegated from the special Elrond company reserve.

Thus, Elrond will act briefly as a staking as a service provider at the launch of the Mainnet. Since there will be a fixed number of 1005 nodes run by Elrond, and a fixed stake per node of 2.5 Mil ERD, the maximum amount of ERD possible staked via delegation to Elrond at launch is: 2 512 500 000 ERD (2.51 Bil ERD). To be safe, make sure you delegate your ERD as early as possible.

A. Delegation parameters:

  • Amount delegated — any amount but no more than 2.51 Bil ERD.
  • Rewards address — once submitted this cannot be changed. See FAQ for more details and how to create one why this address is important.
  • Delegation in this phase is done by default to Elrond foundational nodes — after the launch of the Mainnet delegation will be opened to more staking providers.
  • You can increase delegation if you decide you want to delegate more. Since multiple transactions and withdrawals are allowed, the rewards will be calculated per transaction and based on the date when each transaction took place. At the Genesis rewards will be aggregated and minted in one amount per reward address.
  • Before Mainnet, the APR will be 25%. The reward rate before Mainnet begins once a transaction of delegation is successfully registered into the Genesis SC, and will last until the first day when the launch of the Mainnet takes place. Only full days will be considered. If there are multiple delegations, then for each delegation the starting day will be the day of the actual delegation transaction. If you withdraw the entire amount before the Mainnet you will NOT be eligible for any rewards. If you withdraw only a partial amount and multiple delegations were made, the withdrawals will be first subtracted from the last transaction(s) and you will be eligible to receive rewards only for those ERD that were swapped at Mainnet. If you withdraw and then delegate again the same amount or different, your starting date for rewards will be reset to the day you delegated again.
  • The pre-Mainnet rewards will only be distributed once the Mainnet is launched and tokens have been swapped into native ERD tokens.
  • After Mainnet, APR for delegation will be 29%. Once the auction smart contract goes live and delegation is also open for multiple staking providers, the APR for delegation might change depending on each staking provider.

B. Delegation withdrawal

Withdrawal in the context of delegation means that any user will be able to decrease the amount submitted for delegation even to the withdrawing the full amount.

Withdrawal can happen at any time except the following:

  • A user cannot withdraw anything in the Validation phase (more details below on the Genesis SC States section). That phase is used to validate and prepare our Genesis file, and changes during that period will impede us from properly implementing the process. Note this is the only phase where withdrawal is fully disabled.
  • In the Finalized and Retired states, the user cannot withdraw anymore since these states mean that the snapshot for Genesis is established, and the submitted tokens will be minted for him and staked on the Elrond Mainnet (more details below on the Genesis SC States section). Should the user want to withdraw, he will be able to un-stake from the delegation contract after the Mainnet is launched and un-staking is enabled (at least one month after the Mainnet launch).
  • Notice that if you choose to withdraw a part or the entire amount it will reset the starting date from which the 25% APR pre-Mainnet rewards are calculated.

3. Staking, becoming a validator

While we’re excited to have more validators on Elrond, for security reasons becoming a validator will only be available to pre-approved third-party validators at launch. We will whitelist an ERD ERC-20 (Ethereum) address for each third-party validator and will enable that address to submit stake for an established number of nodes. Please be sure to apply here and join the Validator Community on Telegram for more details on this process.

For each staking request, the SC owner will first whitelist an ERD ERC-20 (Ethereum) address and assign a maximum number of nodes the validator can run. Then and only then, the validator can initiate the Stake action from that address. Up to 20 nodes can be assigned per whitelisted address.

A. Process to get your nodes approved:

  • Validators will submit one BLS key and one reward address for each node. NO duplicate BLS keys are allowed. However, the rewards address can be different for each node or the same for all nodes.
  • ! If you lose access to the private key associated with the rewards address, you will not be able to access your rewards and staked funds once the Mainnet is live. Please backup your private key and your seed words.
  • If you lose access to the private key associated with your validator public key (BLS key), you will not be able to run your node and you will need to unstake and re-stake using a new BLS key. Or you will need to change your BLS key (changeValidatorKey). This might affect your rating and rewards.
  • If you don’t know what is the BLS key or how to generate one please join our Validator Community on Telegram for more information
  • Each validator can submit BLS keys only for the maximum number of nodes that were assigned and whitelisted for him. He can do so in multiple transactions.
  • The staking transaction will transfer the ERD amount calculated as a multiple of stake per node (2.5 Mil ERD) and the number of nodes for which a BLS key and a rewards address are submitted.

B. Node parameters — represented by a single BLS key

  • Status: approved (if is allowed to go into Genesis), pending, rejected
  • BLS key — unique public key
  • Rewards address — once submitted this cannot be changed. See FAQ for more details on how to generate one and its importance.

C. Staking rewards

  • The sooner and longer one stakes the more pre-Mainnet rewards he will get.
  • Before Mainnet, the APR will be 25%. The reward rate before Mainnet begins once a transaction of staking is successfully registered into the Genesis SC, and will last until the first day when the launch of the Mainnet takes place. Only full days will be considered. If multiple staking transactions, for each transaction the starting day for pre-Mainnet rewards will be the day of the actual staking transaction. If you withdraw the entire amount before the Mainnet you will NOT be eligible for any rewards. If you withdraw only a partial number of nodes and multiple stakings were made, the withdrawals will be first subtracted from the last transaction(s) and you will be eligible to receive rewards only for those ERD that were swapped at Mainnet. If you withdraw and then stake again, your starting date for rewards will be reset to the day you staked again.
  • The pre-Mainnet rewards will only be distributed once the Mainnet is launched and tokens have been swapped into native ERD tokens.
  • After Mainnet, APR for staking will be 36%. Once the auction Smart Contract goes live which will determine the optimal stake/node ratio dynamically, the APR for staking will change in tandem with the stake per node (nodePrice). More details on staking APR will be available in the Economics paper.

D. Staking withdrawal

Withdrawal in this situation represents the action of removing a node (BLS key) or multiple nodes that a validator submitted and refunding the stake associated with those keys. This action can happen at any time except some defined situations:

  • Validators can withdraw only stake associated with the BLS keys submitted by him and only ERD multiple of the stake per node, also known as node price (nodePrice * withdrawnBlsKeys.length)
  • A validator cannot withdraw anything in the Validation phase (more details below on the Genesis SC States section). That phase is used to validate and prepare our Genesis file, and changes during that period will impede us from properly implementing the process. Note this is the only phase where withdrawal is fully disabled.
  • In the Finalized and Retired states (more details below on the Genesis SC States section) the user can only withdraw funds associated with BLS keys that were NOT approved beforehand.

4. Genesis SC States

The Genesis Smart Contract has multiple states. Each state influences the number of actions the users or the owner of the SC can take.

  • Initializing: This is the initial state the contract will take upon deployment. This state is introduced as a safety measure so we can make initial preparations and only let users send transactions to this contract once we are sure that everything is put in place.
  • Staking: In this phase, submitting node keys, delegation and withdrawal transactions are open.
  • Validating: This is the state where the withdrawals are closed, giving us time to evaluate the submitted nodes data and check for possible mistakes. From this state, if everything is correct, all the nodes will be approved and we will switch to the Finalized state, waiting for our Mainnet launch. Should we discover any mistakes, we will contact the validators who made them, and switch the contract back to Staking mode in order to correct errors. Thus, if we switch back to Staking phase, delegation and node submission will be open again for everyone, until returning back to the Validating phase.
  • Finalized: This is the state that follows after the Validation phase once submitted data was checked and everything was correct. During this phase, withdrawals will be closed for delegated stake and approved nodes. Beside that, unapproved nodes can still withdraw the stake that was submitted for them
  • Retired: This is the state signaling that our Mainnet was launched, and that the contract is no longer maintained. Users that have unapproved nodes can still withdraw the stake that was submitted for them. During this phase we will burn all ERD ERC20 that were staked, delegated and approved on the Genesis SC. At the same time we will also mint the new native ones, so that the supply remains the same on all blockchains where ERD is issued (Binance Chain, Ethereum and Native Elrond Network at Mainnet).

Thank again for your support, the Genesis is just the start.

FAQ

What is the rewards address and why is it important?

Your rewards address is the ERD address you will use to receive the rewards and the staked or delegated ERD once the Mainnet is launched. It is the address that will hold your native ERD tokens once minted at Genesis. As a safety measure be sure to check that the address for the Elrond blockchain always starts with these 3 letters: erd.

Example of and ERD address that can be used for rewards address is this: erd14sy7elr5fh8hrlxm4srv4xr3z86jxcxfn33zwf433uu…(we intentionally made the address shorter in case someone tries to use this one :)).

Important note: If you lose access to the private key associated with this address, you will NOT be able to access your delegated or staked funds, once the Mainnet is live. Please backup your private key and your seed words in one or two safe locations. These 24 seed words (also called seed phrase or secret words) are the keys to your address. Never share your secret phrase or private key with anyone!

How to create my ERD Mainnet rewards address?

The easiest way to create your rewards address is by going to https://wallet.elrond.com/.

Although the wallet at the mentioned address is connected to the testnet Elrond Network and not to the Mainnet this address is going to be perfectly usable when the Mainnet is launched.

If you want to be 100% sure no one can intercept, copy or save the secret phrase without you knowing, after https://wallet.elrond.com/ web page is loaded, you can disconnect from the internet and continue the process offline until you finish. After you save your secret phrase and the private key (password protected of course) you can close the page and connect back to the internet after that.

We are using this library on the wallet site in order to generate the secret phrase and the keys: https://www.npmjs.com/package/@elrondnetwork/elrond-core-js

Can I change my reward address after I delegate?

Once a reward address is submitted, it cannot be changed. However, if you need to change the rewards address, withdraw all the delegated ERD, move them to a new ETH address, and restart the delegation process from this new ETH address. Thus you can choose a different rewards address. Notice that if you choose to withdraw a part or the entire amount it will reset the starting date from which the 25% APR pre-Mainnet rewards are calculated.

Can I stake or delegate multiple times using the same wallet address?

Yes, more staking and delegation transactions per address are possible. If you want to stake or delegate multiple times you will NOT need a different address each time.

Disclaimer: Nothing in this article or elrond.com website is an offer to sell, or the solicitation of an offer to buy, any tokens. Elrond is publishing this post solely to receive feedback and comments from the public. Nothing in this post should be treated or read as a guarantee or promise of how Elrond’s business or the tokens will develop or of the utility or value of the tokens. This post and elrond.com website outlines current plans, which could change at its discretion, and the success of which will depend on many factors outside Elrond’s control, including market-based factors and factors within the data and cryptocurrency industries, among others. Any statements about future events are based solely on Elrond’s analysis of the issues described in this post or elrond.com website. That analysis may prove to be incorrect.

--

--