Staking AVAX, by Validating or Delegating, with the Avalanche Wallet

Rado Minchev
6 min readSep 22, 2020

--

Learn how you can earn AVAX rewards for staking your tokens and securing the Avalanche platform.

An Introduction to Staking

Staking is a natural mechanism for participation in an open network and offers a direct economic argument: the probability of success of an attack is directly proportional to a well-defined monetary cost function. Staking nodes are economically motivated to act virtuously and avoid behavior that might hurt the value of their stake.

A node wishing to enter the network can freely do so by first putting up and locking a stake that cannot be moved for a defined period of time determined by the token holder. Once accepted, a stake cannot be reverted or unlocked to ensure that nodes share the same, stable view of the network. And better yet, for both the token holder and the network, is that this stake does not incur any additional upkeep costs.

Unlike other systems that also propose a proof-of-stake (PoS) mechanism, AVAX does not use slashing, and therefore, all stake is returned when the staking period expires.

Slashing is a protocol-driven action where a validator is forced to forfeit a proportion of its staked tokens because of behavior the network reads as dishonest or malfunctioning. These penalties are imposed without any human intervention and can be carried out for something as honest as a power failure taking a node offline.

There’s been significant debate around slashing, but the reality is that it makes staking unpredictable (which could discourage participation) and is more effective at punishing innocent bugs in client software or hardware than any security assurances.

We believe in building “calm technology” that is powerful, but predictable. In technology engineered for the challenges of the real-world, rather than overconfident in its adherence to perfect conditions.

With Avalanche, staked tokens are never at risk of a faulty network crackdown.

How to Stake AVAX through your Avalanche Wallet:

Avalanche token holders can participate in primary network staking as Validators and Delegators using the Avalanche Wallet.

Validator

A validator is a token holder who operates a node and wants to participate in staking and validating the Primary Network issues a special “addValidator” transaction to the Platform Chain (P-Chain). Those transactions specify: Staking amount, Node ID (own), Start & End time, Delegation Fee, and Reward Address.

Once the transaction is accepted, the funds will be locked until the end of the staking period. The minimum amount required to stake as a validator is 2,000 AVAX. The stake amount placed by a participant has implications for both the amount of influence the participant has in the consensus process, as well as their reward.

Delegator

A delegator is a token holder, who wants to participate in staking, but chooses to trust an existing validating node through delegation. Delegations are initiated through a special “addDelegator” transaction issued to the Platform Chain (P-Chain). The transaction specifies: Node ID (of the chosen validator), Start & End Time, and Reward Address.

Let’s have a quick look in those inputs:

  • Node ID: A unique ID derived from each individual node’s staker certificate
  • Start Time: The date and time a delegator or validator staking is activated
  • End Time: The date and time a delegator or validator staking is completed
  • Delegation Fee: The delegation fee is specified by each validator as they join the network. Delegators pay a delegation fee to the validator they delegated to.
  • Reward Address: A reward address is the destination address of the accumulated staking rewards.

Staking Parameters

  • The minimum amount that a validator must stake is 2,000 AVAX
  • The minimum amount that a delegator must stake is 25 AVAX
  • The minimum amount of time one can stake funds for validation is 2 weeks
  • The maximum amount of time one can stake funds for validation is 1 year
  • The minimum amount of time one can stake funds for delegation is 2 weeks
  • The maximum amount of time one can stake funds for delegation is 1 year
  • The minimum delegation fee rate is 2%
  • The maximum weight of a validator (their own stake + stake delegated to them) is the minimum of 3 x 106 AVAX and 5 times the amount the validator staked. For example, if you staked 2,000 AVAX to become a validator, only 8000 AVAX can be delegated to your node total (not per delegator)
  • The minimum percentage of the time a validator must be correct and online in order to receive a reward is 60%

Find out more about staking here.

Note that once you issue the transaction to add a node as a validator, there is no way to change the parameters. You can’t remove your stake early or change the stake amount, node ID, or reward address. Please make sure you’re using the correct values in the API calls below. If you’re not sure, ask for help on Discord or browse our Developer FAQs.

Staking with the Avalanche Wallet

The Avalanche Wallet is a web-based application with no middleware or any kind of server communication. The Avalanche Wallet is written in Vue JS and can be either accessed online or compiled and run locally.

The Avalanche Wallet can be accessed here.
The Avalanche Wallet source code can be found here.

Let’s get staking!

Step 1 — Open the Avalanche Wallet

You can access your wallet using your key phrase, keystore file, or Ledger Nano S (coming soon!)

Step 2 — Navigate to “Earn” section

To stake, you need to have your funds available on the Platform Chain (P-Chain)! If your funds are on the Exchange Chain (X-Chain), we will need to transfer them to the P-Chain by initiating a cross-chain transfer. If your tokens are locked they are already on the P-Chain, so you don’t need to perform the Cross Chain Transfer from X-Chain to P-Chain.
Enter the amount you wish to transfer to your P-Chain and complete the transfer by clicking the “Transfer” button below.
Voila!
Now, we have our funds ready for staking on the P-Chain. Next, you can add a validator or a delegator to your wallet.

Step 3A: Become a validator!

To add a validator, we need to have a node running. We can set one up using the released binaries or build them from the AvalancheGo source code.

Using the binaries is easy and convenient and sets you up to be a validator in 4 steps:

  • Download the latest release tar.gz (zip for osx and windows) found here
  • Unpack into a folder of our choosing:

* Linux: tar -xvf avalanchego-linux-<VERSION>.tar.gz

* OSX: unzip avalanchego-macos-<VERSION>.zip

* Windows: unzip avalanchego-win-<VERSION>.zip

  • Navigate to the binaries directory cd avalanchego-<VERSION>
  • Run the binary with ./avalanchego on Linux and OSX and AvalancheGo on Windows

We will let our node bootstrap and sync with the rest with the network, and we are ready to roll.

We will need our Node ID. Let’s find that using the info API here is how!

If you need any help setting up your node, join us on Discord.

Fill the fields and confirm!
Carefully check the details, and click “Confirm” again!
Congratulations. You are now validating the Avalanche Primary Network!

Step 3B: Add a Delegator!

Select a validator you want to delegate your tokens with from the list of active network validators.
Specify your staking period and stake amount. Pay attention to the end time of the selected validator. Your delegation period cannot be set to end past the end date that the validator has set.
Confirm the details!
Congratulations. You are now delegating the Avalanche Primary Network!

About Avalanche

Avalanche is an open-source platform for launching decentralized finance applications and enterprise blockchain deployments in one interoperable, highly scalable ecosystem. Developers who build on Avalanche can easily create powerful, reliable, and secure applications and custom blockchain networks with complex rulesets or build on existing private or public subnets.

Website | Whitepapers | Twitter | Discord | GitHub | Documentation | Explorer | Avalanche-X | Telegram | Facebook | LinkedIn | Reddit | YouTube

--

--