Polymath Logo

Polymesh Testnet

How to Stake POLYX

All documentation pertains to a testing environment for Polymesh. All tokens, operations, and actions on the testnet are for testing purposes only and therefore not real. This includes both Ethereum Kovan POLY (“POLY”) and Polymesh Testnet POLYX (“POLYX”) which are for testing purposes only.
In order to stake you must have a Polymesh Account, the Polymesh Testing Wallet wallet and a verified Polymesh Identity.  If you do not have these, follow the steps in the Getting Started section.

Stakers secure the network staking POLYX on operators as a show of confidence. 

There are two ways to earn POLYX as a part of the Polymesh ecosystem. You can do so as an Operator, a limited, invite-only opportunity during the Polymesh testnet, or you can earn POLYX by staking. The POLYX you stake on an Operator needs to be bonded (locked). You can receive new POLYX in your account but you cannot stake as an Operator or transfer POLYX away from your account. You can stop staking at any time to unlock your POLYX. Keep in mind that when you stop staking it is effective in the next era.

How to Start Staking

The first thing you need to do is make sure that you have created a Polymesh account and completed going through the bridge in order to upgrade your Kovan POLY to Polymesh POLYX.

Configuring your Accounts

To properly set up staking in Polymesh, it is highly recommended that you use two keys.

Note: there is a discrepancy between the Polymesh UI application and the Polymesh Dashboard.  The Polymesh UI application uses the label “account” and the Polymesh Dashboard uses the term “keys”.  These are the same thing.  Since we are migrating the staking features from the Polymesh UI into the Polymesh Dashboard we will continue to use all labels associated with Polymesh applications.

Your primary key (referred to as the “stash account” in the Polymesh UI staking interface), and a secondary key (referred to as the “controller account” in the staking interface). Now that you have successfully bridged POLYX head over to the Polymesh Dashboard where you will complete your account setup for Staking.

1. Once you have landed on the Polymesh Dashboard you can click on the Account tab (the last tab in the navigation bar at the top of the screen)

2. On the account tab you will see your details, under the “Your Keys” section on the right. Create a label for your primary key by hovering over [No Label] and then clicking on the pencil icon which appears on the right of your screen. In the following example, we will use “Stash” but you can use whatever label you like.

PRO Tip: To avoid confusion you should make the dashboard key label the same as the name that you gave the account in your Polymesh wallet.

3. At this point you will need to create a new key through the Polymesh Wallet extension. This new “secondary” key will then be linked to your primary key and we will then walk through how to “join” this new secondary key to your account for use as your “controller account” in the staking interface.

Note: Click here if you need help setting up another account.

4. Now that you have created another key in the Polymesh Wallet Extension, click on the “Assign a key” button at the top right of your screen. The “Assign a key to your ID” menu will slide out from the left.

5. Click on the Polymesh wallet extension, copy the key that you just created (in this example the Controller(test) key), paste the key in the Key field in the “Assign a key to your ID” slide out menu on the left, give this new key a nickname (optional), and click “Assign key”. Click “confirm” on the pop-up window that appears and then sign the transaction for the wallet extension that appears.

PRO Tip: To avoid confusion you should make the dashboard key label the same as the name that you used in your Polymesh wallet.

You will now see a “pending” label beside the key you just added to your account. We need to “switch the context” of the Polymesh Dashboard so that the key you just created becomes the primary key. We need to do this because the action we just initiated (i.e. we asked this new key to join our account as a secondary key) must be confirmed by the recipient. It’s a general theme in Polymesh, the initiator confirms their instructions and then the recipient has to accept.


6. In order to “switch the context” we need to temporarily “disable” the primary key. We do this by “hiding” the primary key in the Polymesh Wallet Extension in order to allow the newly created key to load as the Primary key in the Polymesh Dashboard. Click on the Polymesh Wallet Extension in your browser and click on the 3 dots beside the key that is your Primary key in the Polymesh Dashboard.  Then de-select the “Visible (always inject) check box. Your browser will automatically refresh.

7. The dashboard is now in the context of the newly created key, in our example Controller(Test). Click on the blue Accept button at the top of the page and then confirm (in the pop-up window) followed by signing in the wallet extension when that pops up. Afterwards click “done” on the window that appears.

8. Your screen will automatically refresh. And you will notice that the newly joined account, Controller(test) in our example, is highlighted by a grey bar.

This is how you know which account the dashboard has “set the context” on. In order to switch the context back to the Primary key, re-select the “Visible (always inject) checkbox in the Polymesh wallet extension that we de-selected in Step 6.

Once again, your screen will refresh automatically and the grey bar, which indicates the context for the dashboard, will now be shaded over the Primary key.

Now you are ready to head over to the Polymesh UI to bond your tokens.

Bonding your tokens

1. On the Polymesh UI navigate to the "Staking" tab.

The "Staking Overview" subsection will show the active Operators, labelled as validators in the screenshots (note: some sections of the Polymesh UI will have incorrect labels for this testnet release). Since Polymath is running all nodes during the testnet release most of the sub-section tabs are not relevant at this time. The only tab required to stake is the Account Actions.

2. Select "Account Actions", then click the “plus plus” button beside the Nominator label in the top right corner button to begin bonding. You will see a modal window that looks like the below:

You will see a modal window that looks like the below:

If you see a screen like this, you must transfer funds to the Controller to be able to pay for fees.  When Staking fees for bonding and unbonding POLYX are paid from the Controller account.  Click cancel to continue.


Click “Transfer” on the left hand nav bar.  Change the “sent to address” to Controller, include an amount (in this example we chose 1000 POLYX), and click Make Transfer.

You will now have enough funds in the Controller account to pay for transactions.  You can now click on the “blue plus” button beside the Nominator label.

3.  When the window opens change the controller account to the account that you transferred POLYX to (the “Controller(test) account in this example), enter the amount you want to bond, and select the payment destination for your staking rewards. You can:

  • Select "Stash account (increase amount at stake)" to add your rewards to your staked amount in your stash account.
  • Select “do not increase the amount at stake” to receive rewards in your stash account, but not increase your stake.
  • Select your controller account and receive rewards directly in that account.

Click on the “next” button to continue. 


4.  On the following screen you will be able to select the Node Operators that you want to bond your stake to.  Select Node Operators from the list under the “Candidate Accounts” list.  When you are done click “Bond & Nominate”.

Click on the “Sign & Submit” button when the “Authorize transaction” window opens.

Congratulations, you are now staking an operator! 

Your stake will become active in the next era. Eras last approximately 6 hours on Polymesh testnet, so your wait time may vary based on how much time is left in the era when you stake. You can check how far along the blockchain is in the current era on the Staking page.

You can change your stake or stop staking operators at any point in time. You cannot, however, withdraw your POLYX tokens unless you unbond them (see below).

How to stop staking

The following details how to stop staking and withdraw your tokens. Please note that on the testnet you will have a delay before you can withdraw your tokens, called the unbonding period (7 days). You will not be able to transfer your tokens before this period has ended.

Stop Staking 

1. On the Polymesh UI navigate to the "Staking" tab and then click on the "Account Actions" tab at the top of the screen.

2. Next, click the "Stop" button to the right of the account you want to stop staking with. Then sign the transaction when the pop-up window appears.

After confirming this transaction, your tokens remain bonded. This means they stay ready to be staked again. To withdraw your POLYX tokens, you need to unbond.

Unbonding an amount

1. Go to the “Staking” tab and navigate to the “Account Actions” tab at the top of the screen.

2. To unbond the amount, click the gear icon next to the account you want to unbond money for, and select "Unbond funds".

3. Select the amount you want to unbond and click Unbond, then sign the transaction when the pop-up window appears. Note: the cooling down period lasts 7 days on the Polymesh testnet.

4. If successful, the amount you have selected to unbond will have a clock icon beside it. Click on that icon and a tooltip will show how many blocks remain until the amount is fully unbonded.

5. Once the unbonding process is complete you will have to issue a final transaction: Withdraw Unbonded. Afterwards, your balance that is transferable will increase by the amount of tokens you have unbonded.

Claiming Staking Rewards

After you have successfully started staking you will begin to earn rewards. Rewards can be claimed at any time and are paid out at the start of each era.

To claim your rewards navigate to the Payouts tab, located at the top of the Staking Page (shown below).

1. Select how many days (2, 6, 18, or max 84) for which you want to claim rewards.

2.  Click on the payout button located at the right side of the screen.

3.  Select which account you want to request the payout from, this is the account that will pay the transaction fees required, then click “Payout.”

Sign and submit the transaction and your rewards will be added to the account (either stash or controller) that you designated to receive rewards when you started Staking.

Any further questions? Contact our support team for assistance.

To see the Polymesh testnet codebase, head over to our Github.