Staking
APIs for staking ADA and managing stake pools.
Delegate ADA to Stakepool
Delegation is the process by which ADA holders delegate the stake associated with their ADA to a stake pool. Doing so, this allows ADA holders to participate in the network and be rewarded in proportion to the amount of stake delegated.
import { Transaction } from '@meshsdk/core'; const rewardAddress = 'stake1qdzmqvfdnxsn4a3hd57x435madswynt4hqw8n7f2pdq05g4995re'; const poolId = 'pool1mhww3q6d7qssj5j2add05r7cyr7znyswe2g6vd23anpx5sh6z8d'; const tx = new Transaction({ initiator: wallet }); tx.delegateStake(rewardAddress, poolId); const unsignedTx = await tx.build(); const signedTx = await wallet.signTx(unsignedTx); const txHash = await wallet.submitTx(signedTx);
Register Stake Address
New address must "register" before they can delegate to stakepools. To check if a reward address has been register, use blockchainProvider.fetchAccountInfo(rewardAddress). For example this account information, active
shows the address is registered.
{ "active": true, "poolId": "pool1mhww3q6d7qssj5j2add05r7cyr7znyswe2g6vd23anpx5sh6z8d", "balance": "389290551", "rewards": "0", "withdrawals": "0" }
You can chain with delegateStake()
to register and delegate to a stake pool.
import { Transaction } from '@meshsdk/core'; const rewardAddress = 'stake1qdzmqvfdnxsn4a3hd57x435madswynt4hqw8n7f2pdq05g4995re'; const poolId = 'pool1mhww3q6d7qssj5j2add05r7cyr7znyswe2g6vd23anpx5sh6z8d'; const tx = new Transaction({ initiator: wallet }); tx.registerStake(rewardAddress); tx.delegateStake(rewardAddress, poolId); const unsignedTx = await tx.build(); const signedTx = await wallet.signTx(unsignedTx); const txHash = await wallet.submitTx(signedTx);