BotanaryBotanary

Balance

Unified multi-stablecoin balance (presentation-only) + reference data (chains, adapters).

Get the unified multi-stablecoin balance (presentation-only)

GET
/balance

Authorization

sessionToken
AuthorizationBearer <token>

Botanary session token from POST /auth/session. Not a key - a revocable session bearer.

In: header

Query Parameters

accountId?string

Scope the read to this specific account of the caller's (must belong to the authenticated signer - a foreign or unknown id is rejected, never silently ignored). Omitted defaults to the signer's lowest-visible-index account.

Response Body

application/json

application/json

application/json

curl -X GET "https://api.app.botanary.xyz/balance"
{
  "totalFiat": 12480.06,
  "change24h": 2.4,
  "stablecoinFiat": 12235.32,
  "asOf": "2026-07-07T09:42:00Z",
  "tokens": [
    {
      "symbol": "USDC",
      "name": "USD Coin",
      "chain": "Arbitrum",
      "chainId": 42161,
      "tokenAddress": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
      "decimals": 6,
      "amount": 6420.5,
      "fiat": 6420.5,
      "price": 1,
      "change24h": 0,
      "isStablecoin": true,
      "peg": {
        "symbol": "USDC",
        "price": 1,
        "target": 1,
        "deviationBps": 0,
        "status": "ok",
        "observedAt": "2026-07-07T09:40:00Z",
        "source": "chainlink"
      },
      "spendable": true,
      "source": "registry"
    },
    {
      "symbol": "USDT",
      "name": "Tether",
      "chain": "Arbitrum",
      "chainId": 42161,
      "tokenAddress": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
      "decimals": 6,
      "amount": 2100,
      "fiat": 2100.42,
      "price": 1.0002,
      "change24h": 0.01,
      "isStablecoin": true,
      "peg": {
        "symbol": "USDT",
        "price": 0.9938,
        "target": 1,
        "deviationBps": -62,
        "status": "watch",
        "observedAt": "2026-07-07T09:40:00Z",
        "source": "chainlink"
      },
      "spendable": true,
      "source": "registry"
    },
    {
      "symbol": "ETH",
      "name": "Ether",
      "chain": "Arbitrum",
      "chainId": 42161,
      "tokenAddress": "0x0000000000000000000000000000000000000000",
      "decimals": 18,
      "amount": 0.0921,
      "fiat": 244.74,
      "price": 2657.3,
      "change24h": -1.2,
      "isStablecoin": false,
      "peg": null,
      "spendable": true,
      "source": "registry"
    }
  ]
}
{
  "error": {
    "code": "unauthorized",
    "message": "Session token missing or expired."
  }
}
{
  "error": {
    "code": "out_of_scope",
    "message": "This action exceeds the per-action cap.",
    "declineReason": "cap_exceeded",
    "details": {},
    "requestId": "string"
  }
}

List the SNAL stablecoin adapter registry

GET
/adapters

Authorization

sessionToken
AuthorizationBearer <token>

Botanary session token from POST /auth/session. Not a key - a revocable session bearer.

In: header

Response Body

application/json

application/json

curl -X GET "https://api.app.botanary.xyz/adapters"
[
  {
    "id": "usdc-arbitrum",
    "symbol": "USDC",
    "name": "USD Coin",
    "chain": "Arbitrum",
    "chainId": 42161,
    "tokenAddress": "0x8f2A9c4419aD77b0392bC41D8123aa77c0Fe41D0",
    "decimals": 6,
    "transferMechanism": "erc20",
    "gasModel": "circle-paymaster",
    "cctpSupported": true,
    "enabled": true
  }
]
{
  "error": {
    "code": "unauthorized",
    "message": "Session token missing or expired."
  }
}

List supported chains

GET
/chains

Authorization

sessionToken
AuthorizationBearer <token>

Botanary session token from POST /auth/session. Not a key - a revocable session bearer.

In: header

Response Body

application/json

application/json

curl -X GET "https://api.app.botanary.xyz/chains"
[
  {
    "name": "Arbitrum",
    "chainId": 42161,
    "shortName": "arb",
    "testnet": false,
    "nativeSymbol": "ETH",
    "tier": "botanary",
    "explorerUrl": "https://base-sepolia.blockscout.com",
    "blockscoutUrl": "https://base-sepolia.blockscout.com",
    "gasTokens": [
      "native",
      "USDC"
    ]
  }
]
{
  "error": {
    "code": "unauthorized",
    "message": "Session token missing or expired."
  }
}