Delegated Staking

This section delivers step by step instructions for staking $EWT by delegating to a collator on EWX, via the Polkadot.js explorer “Extrinsics” tab.

Anyone can delegate to a collator candidate by staking at or above the minimum delegated stake threshold (MinNominationPerCollator) currently at 1 $EWT.

A delegator can stake with multiple collators, but can only choose one collator per staking action.

Prerequisites

  • A funded EWX account with enough $EWT to cover your stake plus fees (keep a small buffer for future actions).

  • Polkadot.js extension, browser wallets (SubWallet, Nova Wallet etc) installed and your account added (or Ledger/Trezor via polkadot.js if you use hardware).

Becoming a Delegator

  1. Open Polkadot.js Apps connected to EWX

    1. Open Polkadot JS App and navigate to EWX, or click here to open the URL with the public EWX endpoint.

    2. In the Polkadot JS App go to Developer → Extrinsics → Submission.

    3. Click Accounts → Accounts and confirm your account appears and shows your EWT balance.

  2. Choose a Collator

    1. Go to Developer → Chain State

    2. Select the staking pallet, parachainStaking, from the “Select State Query” field

    3. Then in the adjacent field select: candidateInfo(AccountId)

    4. Alternatively, select candidatePool to get a quick summary of the collator accounts and their total stake.

    5. Toggle “Include Option” off in order to view all active collator candidates

    6. Click the + Icon to return the following for each collator:

      1. Collator Account Address

      2. Self Stake (bond)

      3. Number of nominations to that collator (Note: it states nominationCount but it actually represents candidateNominationCount)

      4. Total Stake (self stake + total delegated stake) (totalCounted)

      5. Amount of stake delegated from the lowest ranked nominator (lowestTopNominationAmount)

      6. Amount of stake delegated from the highest of the next in line delegators, not actively delegating (highestBottomNominationAmount)

      7. Liveness Status (Active or Inactive)

    7. Make sure to note down the address of the collator you wish to nominate and their nominationCount as this is required for delegating stake in the next section.

    8. You will also need to know how many collators you have nominated. If you do not know this query the following:

      1. parachainStaking → nominatorState(AccountId)

      2. Select your own account from the AccountId field on the next line (ensure “Include Option” is toggled on)

      3. Click the “+” Icon

      4. Note the number of unique nominations.

  1. Delegate (Nominate) Stake via Extrinsic

    1. Go to Developer → Extrinsics

    2. Select parachainStaking extrinsic

    3. Choose the nominate(candidate, amount, candidateNominationCount, nominationCount) call

    4. In the input fields, enter:

      1. The collator candidate’s address

      2. The amount of EWT you wish to stake in Wei (1 EWT = 1 × 10^18 wei = 1000000000000000000)

      3. Input candidateNominationCount (see Section “2) f)” above on how to find this)

      4. Input nominationCount (See Section “2) h)” above on how to find this)

        1. If this is your first stake delegation, put 0

        2. See FAQ 1. on why iii) & iv) are required.

    5. Click Submit Transaction → Sign with your wallet

      1. Verify: You can verify your stake delegation by:

        1. going to Network → Explorer → Recent Events;

        2. or by querying nominatorState again for your account on the Chain State;

        3. or by going to Accounts tab → Accounts, and querying your account.

Adjust Your Delegated Stake

Delegators can increase or decrease their stake via the Developer → Extrinsics tab.

  1. Increasing stake

    1. Go to Developer → Extrinsics

    2. Select your desired account

    3. Select parachainStaking → bondExtra

    4. Fill the input fields as follows:

      1. Candidate: AccountId: Enter the account of the collator you wish to increase your delegation

      2. More (balanceOf): Enter the amount of EWT in Wei you wish to increase your stake position by (1 EWT = 1 × 10^18 wei = 1000000000000000000)

      3. Submit Transaction → Sign with your wallet

  2. Decreasing stake

    1. Go to Developer → Extrinsics

    2. Select your desired account

    3. Select parachainStaking → scheduleNominatorUnbond

    4. Fill the input fields as follows:

      1. Candidate: Enter the account of the collator you wish to decrease your delegation

      2. Less (balanceOf): Enter the amount of EWT in Wei you wish to decrease your stake position by (1 EWT = 1 × 10^18 wei = 1000000000000000000)

      3. Submit Transaction → Sign with your wallet

    5. The current unbond delay is set to 2 eras which is ~ 2 days

    6. After the delay call executeNominationRequest(nominator, candidate) to finalize the reduction and free the tokens.

      1. Nominator is your account address, candidate is the collator’s.

Unstaking

We have covered how to decrease your stake for a particular collator in “Adjust Your Delegated Stake: 2)”. This section will cover how to unbond your entire stake delegation with a particular collator, or unbond completely unbond from all collators.

  1. Stop delegating to a specific collator

    1. Go to Developer → Extrinsics → parachainStaking

    2. Select the call: scheduleRevokeNomination(collator)

    3. Input the collator’s address in the collator:AccountId field

    4. Submit Transaction → Sign with your wallet

    5. Then, after waiting the unbond delay (2 eras), call:

      1. executeNominationRequest(nominator, candidate)

      2. In the nominator field, select your account

      3. In the candidate field, select the collator’s account.

  2. Stop delegating to all collators (unstake all)

    1. Go to Developer → Extrinsics → parachainStaking

    2. Select the call: scheduleLeaveNominators()

    3. Submit Transaction → Sign with your wallet

    4. Then, after waiting the unbond delay (2 eras), call:

      1. executeLeaveNominators(nominator, nominationCount)

      2. In the nominator field, select your account

      3. In the nominationCount field, put the number of nominations from your account. See “Become a Collator 2) f) iii)” on how to retrieve your nominationCount

    5. If during the unbonding delay period you decide to cancel the request, call:

      1. cancelLeaveNominators()

FAQs

  1. Why is candidateNominationCount and nominationCount are required to delegate stake?

Polkadot/Substrate fees are based on execution weight, which depends on how many items the call must touch. Supplying candidateNominationCount (how many delegators the candidate already has), and nominationCount (how many candidates you already delegate to) lets the runtime estimate weight accurately instead of charging a worst-case amount and refunding later. In short: these two numbers are hints for precise fee/weight calculation.

  1. What are topNominations and bottomNominations? How many delegators per collator contribute to the total stake and receive staking rewards?

The top delegators per collator candidate (topNominations) receive a share of staking rewards; currently the top 300 delegators per collator are included in the total staking contribution and receive staking rewards.

The pallet also tracks and stores the “next in line” delegators, just outside of the top 300 (currently tracks the next 20). These are called bottomNominations, and help to determine the additional stake required to break into the top nominator set for each collator candidate.

  1. How are staking rewards distributed?

There are two types of rewards for staking: rewards from transaction fees which are paid out at the end of every era, and staking rewards from growth. Staking rewards from growth are paid at the end of each growth period (currently every 28 eras). For each collator, the reward allocated to that collator are distributed among the collator and its delegators in that collator’s topNominations set pro rata, i.e., each delegator receives a fraction equal to their staked amount divided by the sum of all counted total stake for that collator at the snapshot.

Last updated