Overview
Staking using Substrate Network SDK on networks like Polkadot and Kusama involves locking up tokens to support the network's security and operations. In return, stakers earn rewards.
The Chorus One SDK simplifies this process, providing developers with the tools needed to build, sign, and broadcast staking transactions.
This guide will walk you through the fundamentals of staking on Substrate using the Chorus One SDK.
Setting Up the Staker
To get started with staking on the Substrate network using the Chorus One SDK, you will first need to initialize the SDK for Substrate.
Note: For testing purposes, we will use the Westend testnet.
First, create an instance of SubstrateStaker with the necessary configuration:
import { SubstrateStaker, RewardDestination } from '@chorus-one/substrate'
const staker = new SubstrateStaker({
rpcUrl: 'wss://westend-rpc.polkadot.io',
rewardDestination: RewardDestination.STASH
})Configuration Parameters:
rpcUrl: The URL of the Substrate network RPC endpoint
rewardDestination: This parameter defines the reward destination for staking rewards. The options are
RewardDestination.STASHorRewardDestination.STAKED.RewardDestination.STASH: Rewards are added to the stash account.RewardDestination.CONTROLLER: Rewards are added to the controller account.
fee: (Optional) The fee to be paid for each transaction.
indexerUrl: (Optional) The URL of the Substrate network indexer. It is required for fetching the transaction status.
Initializing the Staker
After configuring the SubstrateStaker, initialize it to prepare for staking operations.
This can be done via the following input:
The init method establishes a connection with the configured RPC endpoint and prepares the staker for operations such as building and broadcasting transactions.
Building Transactions
Once the staker and signer are set up, you can start building transactions for staking operations.
The SubstrateStaker class provides methods to build transactions for staking, unstaking, and withdrawing rewards.
You can learn more about these methods in the Methods section.
Example of building a staking transaction:
Getting the Validator Address provided by Chorus One
The @chorus-one/substrate module includes a list of Chorus One validators for the Substrate networks. You can use these addresses when building transactions.
Signing the Transaction
Once the transaction is built, you can sign that transaction using your own signing solution e.g.:
Additionally, you can use the Chorus One SDK to sign transactions using Fireblocks, mnemonic or other methods.
For detailed information on setting up and configuring these options, please refer to the What is a Signer? section.
By integrating Fireblocks, you can leverage its robust security features to sign transactions on the Substrate network. To set up Fireblocks, provide the necessary API key, secret key, and vault ID:
For more information please refer to the Signing with Fireblocks
Broadcasting the Transaction
After signing the transaction, you need broadcast it to the network. You can do this using the broadcast method:
And now you can track the transaction status:
Closing the Connection
After completing the staking operations, close the connection to the Substrate network:
Next Steps
In this section you learned how to set up the Chorus One SDK for the Substrate network using the Substrate testnet, which included how to build staking transactions, sign, broadcast, and track them.
To learn more about the available methods on
SubstrateStaker, continue to the Methods section.
Further Reading
Last updated
Was this helpful?