Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/fuseio/fuse-docs/llms.txt

Use this file to discover all available pages before exploring further.

The Staking API provides endpoints to interact with token staking contracts on the Fuse network. It lets you discover available staking options with their current APR and TVL, generate the encoded transaction data needed to stake or unstake tokens, and query the staked token balances for any wallet address. The API returns encoded contract ABI calldata that your application submits to the network rather than submitting the transaction itself, giving you full control over gas and signing.

Base URL

https://api.fuse.io/api/v0/staking

Authentication

Pass your public API key as a query parameter on every request:
?apiKey=YOUR_PUBLIC_API_KEY
Get your key from the Fuse Console.

Endpoints

GET /staking_options — Retrieve staking options

Returns all available staking pools on the Fuse network, including the staking token, annual percentage rate (APR), total value locked (TVL), and the staking provider identifier. Endpoint: GET https://api.fuse.io/api/v0/staking/staking_options?apiKey={apiKey}

Request parameters

apiKey
string
required
Your public API key.

Response

Returns an array of staking option objects.
tokenAddress
string
The contract address of the token that can be staked.
tokenSymbol
string
Ticker symbol for the stakeable token (e.g., "FUSE").
tokenName
string
Full name of the stakeable token.
tokenLogoURI
string
URL to the token’s logo image.
unStakeTokenAddress
string
The contract address of the token received when unstaking (the receipt/staked token).
stakingProviderId
string
Identifier for the staking provider or contract.
stakingApr
number
Current annual percentage rate for this staking pool.
tvl
number
Total value locked in this staking pool, in USD.
expired
boolean
Whether this staking option is still active.

Example

curl "https://api.fuse.io/api/v0/staking/staking_options?apiKey=YOUR_API_KEY"
[
  {
    "tokenAddress": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
    "tokenSymbol": "FUSE",
    "tokenName": "Fuse Token",
    "tokenLogoURI": "https://assets.fuse.io/fuse-logo.png",
    "unStakeTokenAddress": "0xb1DD0B683d9A56525cC096fb0Cb8c6aE753a1922",
    "stakingProviderId": "fuse-staking-v2",
    "stakingApr": 12.5,
    "tvl": 4200000,
    "expired": false
  }
]

POST /stake — Stake tokens

Generates the encoded ABI calldata required to stake a specified amount of tokens. Submit the returned contractAddress and encodedABI in a transaction from the user’s wallet. Endpoint: POST https://api.fuse.io/api/v0/staking/stake?apiKey={apiKey}

Request parameters

apiKey
string
required
Your public API key.

Request body

accountAddress
string
required
The wallet address that will perform the staking.
tokenAddress
string
required
The contract address of the token to stake.
tokenAmount
string
required
The amount to stake in the token’s base unit (e.g., wei for 18-decimal tokens).

Response

contractAddress
string
The staking contract address to send the transaction to.
encodedABI
string
Hex-encoded ABI calldata to include in the transaction’s data field.

Example

curl -X POST "https://api.fuse.io/api/v0/staking/stake?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accountAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "tokenAddress": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
    "tokenAmount": "1000000000000000000"
  }'
{
  "contractAddress": "0xb1DD0B683d9A56525cC096fb0Cb8c6aE753a1922",
  "encodedABI": "0xa9059cbb000000000000000000000000..."
}

POST /unstake — Unstake tokens

Generates the encoded ABI calldata required to unstake (withdraw) a specified amount of staked tokens. The request body mirrors the /stake endpoint. Endpoint: POST https://api.fuse.io/api/v0/staking/unstake?apiKey={apiKey}

Request parameters

apiKey
string
required
Your public API key.

Request body

accountAddress
string
required
The wallet address performing the unstaking.
tokenAddress
string
required
The contract address of the staked token to withdraw.
tokenAmount
string
required
The amount to unstake in the token’s base unit.

Response

contractAddress
string
The staking contract address to send the transaction to.
encodedABI
string
Hex-encoded ABI calldata to include in the transaction’s data field.

Example

curl -X POST "https://api.fuse.io/api/v0/staking/unstake?apiKey=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "accountAddress": "0x1234567890abcdef1234567890abcdef12345678",
    "tokenAddress": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
    "tokenAmount": "1000000000000000000"
  }'

GET /staked_tokens/ — Get staked tokens by wallet

Retrieves all staked token positions for a specific wallet address, including total USD value staked and total earnings. Endpoint: GET https://api.fuse.io/api/v0/staking/staked_tokens/{accountAddress}?apiKey={apiKey}

Request parameters

accountAddress
string
required
The wallet address to query staked tokens for.
apiKey
string
required
Your public API key.

Response

totalStakedAmountUSD
number
Total current value of all staked tokens for this wallet, in USD.
totalEarnedAmountUSD
number
Total earnings accumulated across all staking positions, in USD.
stakedTokens
object[]
Array of staking positions. Each item follows the same structure as a staking option (see /staking_options response fields).

Example

curl "https://api.fuse.io/api/v0/staking/staked_tokens/0x1234567890abcdef1234567890abcdef12345678?apiKey=YOUR_API_KEY"
{
  "totalStakedAmountUSD": 840.50,
  "totalEarnedAmountUSD": 42.25,
  "stakedTokens": [
    {
      "tokenAddress": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
      "tokenSymbol": "FUSE",
      "tokenName": "Fuse Token",
      "stakingProviderId": "fuse-staking-v2",
      "stakingApr": 12.5,
      "tvl": 4200000,
      "expired": false
    }
  ]
}

Error responses

StatusDescription
403Forbidden — invalid or missing API key

Build docs developers (and LLMs) love