Staking guide
Select an operator to nominate
Three important factors to pay attention to are minimumNominatorStake
, nominationTax
, and status
.
- Visit Subspace Staking Interface.
- Click on Operators to view the list of available operators.
- 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.
Alternativaly, you can use PolkadotJS interface to view the list of available operators.
- Visit PolkadotJS Network Explorer.
- Go to
Developer
->Chain state
.
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.
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.
The only staking mechanism available to non-operators is nominating an operator.
- Visit Subspace Staking Interface.
- Connect your PolkadotJS or Subwallet wallet.
- As soon as you connect your wallet, you will see your available and locked(stakes) wallet balance.
- Click on Operators to view the list of available Operators.
- 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.
- You can toggle the view between the table and a pallet.
- Once you picked the operator to nominate, click on Action -> AddFunds.
- 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.
- Wait for the transaction to go through. It takes 100 blocks (1 epoch duration) to complete the nomination.
- You will see the previously available become locked amount. Congratulations, you succesfully became a nominator.
Operator Nomination using Polkadot.js
Any account can nominate any existing operator with at least a minimum nominator stake set by the operator.
The only staking mechanism available to non-operators is nominating an operator.
Make sure to select the correct network at the top-left corner.
Select the account you want to use in
using the selected account
.Select
domains
undersubmit the following extrinsic
and choosenominateOperator(operatorId, amount)
in the dropdown.Set an
operatorId
- in the example, it's set to 17.noteIn 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.Enter the desired amount in the
amount
field for staking.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:
- You can use PolkadotJS Network Explorer.
2. Browse the recent events and you should see domains.OperatorNominated event.
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.
- Navigate to Subspace Subscan portal.
- Click on
Blockchain
->Extrinsics
.
- Scroll to the bottom of the page to view all recent events, search for
nominate_operator
event.
Click on
Extrinsic ID
for the desired event.Scroll to
Parameters
to view the stake value.
- Scroll to
Events
and click on dropdown arrow fordomains(OperatorNominated)
.
- Inspect and ensure that
nominatorId
matches yourid
.
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.
- Proceed to PolkadotJS.
- Navigate to Developer -> Extrinsics.
- Select the account you want to use in
using the selected account
. - Select
domains
undersubmit the following extrinsic
and choosewithdrawStake(operatorId, withdraw)
5n the dropdown. - Choose an operator by selecting an
operatorId
- in the example, it's set to17
. - Choose the withdrawal amount in the
withdraw
field - you can specify to withdrawall
orsome
staking amount.
Example of withdrawal of 1 TSSC stake amount from nominating an operator 17
.
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.
- Proceed to PolkadotJS.
- Navigate to Developer -> Extrinsics.
- Select the account you want to use in
using the selected account
. - Select
domains
undersubmit the following extrinsic
and chooseunlockFinds(operatorId)
in the dropdown. - Provide the
operatorID
you were staking with. - Submit the transaction, your funds should be unclocked and available once the epoch is complete (up to 10 minutes).
Calculating your nominator balance
- Proceed to PolkadotJS Network Explorer.
- Go to
Developer
->Chain state
. - Select
domains
underselected state query
andnominators(u64, AccoundId32)
. - Provide the
operatorId
and select youraccount
from the dropdown. - Run the query, remember the
shares
number. - On the same screen, choose
domainStakingSummary(u32)
. - Provide the
domainId
. - Run the query, remember the
currentTotalStake
number. - Without leaving the page, select
operators(u64)
. - Provide
operatorId
that you nominated previously. - Run the query, remember the
currentTotalStake
number.
To calculate your nominator balance:
- Calculate share price by dividing currentTotalStake from the domain by operator currentTotalStake.
- Multiply share price and your nominator shares number.