Skip to main content
Version: Pre-Release

Staking guide

Select an operator to nominate

note

Three important factors to pay attention to are minimumNominatorStake, nominationTax, and status.

  1. Visit Subspace Staking Interface. N-nominators-1
  2. Click on Operators to view the list of available operators. N-nominators-4
  3. Scroll the page down, pay close attention to the Nominator Tax, Min Nominator Stake, and Nominators Count, as these three parameters help you choose an operator to nominate. N-nominators-5

Alternativaly, you can use PolkadotJS interface to view the list of available operators.

  1. Visit PolkadotJS Network Explorer.
  2. Go to Developer -> Chain state.

Staking-16 3. Select domains under selected state query and choose operators, exclude option and click on + to run the query. 4. Browse the list of available operators, make sure the status is Registered and that minimumNominatorStake is lower than your staking amount.

Staking-17

note

Number 17 on the screenshot above corresponds to operatorId.

Operator Nomination using Subspace Staking Interface

Any account can nominate any existing operator with at least a minimum nominator stake set by the operator.

info

The only staking mechanism available to non-operators is nominating an operator.

  1. Visit Subspace Staking Interface. N-nominators-1
  2. Connect your PolkadotJS or Subwallet wallet. N-nominators-2
  3. As soon as you connect your wallet, you will see your available and locked(stakes) wallet balance. N-nominators-3
  4. Click on Operators to view the list of available Operators. N-nominators-4
  5. Scroll the page down, pay close attention to the Nominator Tax, Min Nominator Stake, and Nominators Count, as these three parameters help you choose an operator to nominate. N-nominators-5
  6. You can toggle the view between the table and a pallet. N-nominators-6
  7. Once you picked the operator to nominate, click on Action -> AddFunds. N-nominators-7
  8. Choose the token amount you want to nominate the operator with. It is also possible to nominate multiple operators. Click on Submit and approve the transaction in a pop-up window. N-nominators-9
  9. Wait for the transaction to go through. It takes 100 blocks (1 epoch duration) to complete the nomination. N-nominators-10
  10. You will see the previously available become locked amount. Congratulations, you succesfully became a nominator. N-nominators-11

Operator Nomination using Polkadot.js

Any account can nominate any existing operator with at least a minimum nominator stake set by the operator.

info

The only staking mechanism available to non-operators is nominating an operator.

  1. Make sure to select the correct network at the top-left corner.

  2. Select the account you want to use in using the selected account.

  3. Select domains under submit the following extrinsic and choose nominateOperator(operatorId, amount) in the dropdown.

  4. Set an operatorId - in the example, it's set to 17.

    note

    In the example below, 1 TSSC is selected for staking. 18 zeros are added because of the u128 type, so make sure to put 1000000000000000000 instead.

  5. Enter the desired amount in the amount field for staking. Staking-18

  6. Submit the signed transaction.

Once nomination is finalized when the domain epoch is complete, the nominator will start receiving rewards.

Any nominator can add more stake by using the same functionality.

Check if your nomination worked succesfully.

There are two ways to check your nomination:

  1. You can use PolkadotJS Network Explorer.

Staking-7 2. Browse the recent events and you should see domains.OperatorNominated event.

Staking-19 3. Click on the dropdown arrow to view the domainId and operatorId.


Alternatively, you can use Subscan which is a little easier to navigate for this job.

  1. Navigate to Subspace Subscan portal.
  2. Click on Blockchain -> Extrinsics.

Staking-9

  1. Scroll to the bottom of the page to view all recent events, search for nominate_operator event.

Staking-20

  1. Click on Extrinsic ID for the desired event.

  2. Scroll to Parameters to view the stake value.

Staking-21

  1. Scroll to Events and click on dropdown arrow for domains(OperatorNominated).

Staking-22

  1. Inspect and ensure that nominatorId matches your id.

Stake withdrawal using Polkadot.js

Any operator or nominator can initiate withdrawal. They can withdraw the total staked amount or a portion of their stake.

  • If an operator is initiating a withdrawal, then their remaining balance should be at least the minimum operator stake, otherwise the request is rejected.
  • If a nominator is initiating a withdrawal, and the remaining balance is less than the operator-defined minimum nominator stake, then the total nominator stake is unlocked otherwise, only the requested amount is unlocked.
  1. Proceed to PolkadotJS.
  2. Navigate to Developer -> Extrinsics.
  3. Select the account you want to use in using the selected account.
  4. Select domains under submit the following extrinsic and choose withdrawStake(operatorId, withdraw) 5n the dropdown.
  5. Choose an operator by selecting an operatorId - in the example, it's set to 17.
  6. Choose the withdrawal amount in the withdraw field - you can specify to withdraw all or some staking amount.
note

Example of withdrawal of 1 TSSC stake amount from nominating an operator 17.

Staking-23

Once the withdrawal is submitted, it's finalized after the domain epoch is completed. All the withdrawn funds are unlocked after the locking period is complete. The current locking period is set to 28,800 blocks, or about 48 hours. The locking period is necessary to ensure that the domain block executing the withdrawal is confirmed and not challenged by a fraud proof and to increase the economic stability of domains.

After the locking period, the withdrawn amount can be unlocked in the user's account with the unlock_funds extrinsic.

  1. Proceed to PolkadotJS.
  2. Navigate to Developer -> Extrinsics.
  3. Select the account you want to use in using the selected account.
  4. Select domains under submit the following extrinsic and choose unlockFinds(operatorId) in the dropdown.
  5. Provide the operatorID you were staking with.
  6. Submit the transaction, your funds should be unclocked and available once the epoch is complete (up to 10 minutes).

Staking-29

Calculating your nominator balance

  1. Proceed to PolkadotJS Network Explorer.
  2. Go to Developer -> Chain state.
  3. Select domains under selected state query and nominators(u64, AccoundId32).
  4. Provide the operatorId and select your account from the dropdown.
  5. Run the query, remember the shares number. Staking-25
  6. On the same screen, choose domainStakingSummary(u32).
  7. Provide the domainId.
  8. Run the query, remember the currentTotalStake number. Staking-26
  9. Without leaving the page, select operators(u64).
  10. Provide operatorId that you nominated previously.
  11. Run the query, remember the currentTotalStake number. Staking-27

To calculate your nominator balance:

  1. Calculate share price by dividing currentTotalStake from the domain by operator currentTotalStake.
  2. Multiply share price and your nominator shares number.