SOL API Overview

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.