These are the steps for staking and unstaking SOL. For technical specifications including delegation requirements, reward mechanisms, slashing conditions, see our Solana Protocol Knowledge doc.

You can decode transactions using the Transaction Decoder
Create Stake Account
This creates a new stake account and returns a delegating transaction for you to sign.
Sign & Broadcast the Transaction
Sign the transaction with the signing methods of your custody solutions. Examples:
Once signed, broadcast the signed transaction and check transaction status via Figment API.
Track Stake Accounts Activation
This returns a list of all your stake accounts, with on-chain status and balances.
Track Rewards
Returns rewards (protocol and MEV) and balances for all stake accounts, broken down by epoch and staking account.
Claim MEV Rewards
Withdraw JITO MEV rewards (shown as inactive balance on-chain) from an active stake account. The endpoint returns a withdraw transaction for you to sign and broadcast.
To auto-compound the MEV rewards you withdrawn, create a new stake account to stake it. The endpoint returns a delegating transaction for you to sign and broadcast.
Manage Stake Accounts
Merge two active stake accounts. This step is optional. The endpoint returns a merge transaction for you to sign and broadcast.
Split a stake account. This endpoint is useful if you want to undelegate a specific amount, while keeping the rest delegated. After splitting, undelegate the new child account. The endpoint returns a split transaction for you to sign and broadcast.
Undelegate
This returns an unsigned transaction to undelegate SOL from an active stake account. Sign and broadcast the undelegation transaction.
Withdraw
This returns an unsigned transaction to withdraw the SOL from your deactivated stake account. Sign and broadcast the withdraw transaction.
Durable Nonce Transactions (for multi-signer workflows)
Solana transactions reference a recent blockhash and expire after approximately 60–90 seconds. If your signing workflow takes longer — such as collecting approvals through Fireblocks TAP, an HSM committee, or an internal compliance review — the transaction may expire before it is broadcast.
Durable nonces eliminate the expiry window. A nonce account stores a value on-chain that replaces the blockhash, the transaction stays valid indefinitely until it is submitted.
How to use
Pass two optional parameters to any Solana transaction-building endpoint (/solana/stake, /solana/undelegate, /solana/withdraw, /solana/split, /solana/merge):
When nonce_account is provided, the response returns nonce_value and is_durable_nonce: true instead of last_valid_block_height. Sign the transaction offline at any time and broadcast when ready.
Fireblocks users — Send the transaction to Fireblocks as a PROGRAM_CALL operation, with useDurableNonce: false. Your vault key signs as fee payer and nonce authority in one signature, so no partial signing is needed when both roles share the same key.
A single nonce account can be reused across multiple transactions — each broadcast automatically advances the nonce for the next one.
