Anchorage Digital Balances API

Operations for querying wallet balances and staking positions

Operations 3

GET /wallets/{walletId}/balances Get Wallet Balances #
GET /wallets/{walletId}/staking-positions/{positionId}/balances Get Staking Position Balances #
GET /wallets/{walletId}/staking-positions Get Wallet Staking Positions #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anchorage-balances-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

anchorage-balances-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  title: Anchorage Digital API Reference Balances API
  contact:
    email: api@anchorage.com
  description: '# Introduction

    *CONFIDENTIAL: Please do not distribute this documentation externally without prior Anchorage Digital approval.*


    The Anchorage Digital REST API v2.0 provides a set of operations and resources that allow Anchorage Digital clients and partners to:

    - Programmatically transfer funds from an Anchorage Digital vault or wallet without human intervention

    - Create and list deposit addresses in a vault

    - Read and monitor vault balances

    - Query transaction history including deposits

    …'
servers:
- url: https://api.anchorage-staging.com/v3
security:
- Api-Access-Key: []
tags:
- description: Operations for querying wallet balances and staking positions
  name: Balances
paths:
  /wallets/{walletId}/balances:
    get:
      operationId: getWalletBalances
      summary: Get Wallet Balances
      description: 'Permissions required: **Read vault activity**


        Get current balances for a specific wallet. Returns all balance types including wallet-level balances and aggregated staking position balances.'
      parameters:
      - name: walletId
        in: path
        description: The unique identifier of the wallet
        required: true
        schema:
          type: string
      - name: assetType
        in: query
        description: Filter balances by asset type.
        required: false
        schema:
          type: string
        example: ETH
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletBalancesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Balances
  /wallets/{walletId}/staking-positions/{positionId}/balances:
    get:
      operationId: getStakingPositionBalances
      summary: Get Staking Position Balances
      description: 'Permissions required: **Read vault activity**


        Get current balances for a specific staking position (e.g., validator, stake account).'
      parameters:
      - name: walletId
        in: path
        description: The unique identifier for the wallet
        required: true
        schema:
          type: string
      - name: positionId
        in: path
        description: The unique identifier of the staking position (e.g., validator, stake account)
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingPositionBalancesResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Balances
  /wallets/{walletId}/staking-positions:
    get:
      operationId: getWalletStakingPositions
      summary: Get Wallet Staking Positions
      description: 'Permissions required: **Read vault activity**


        Get staking positions for a specific wallet.'
      parameters:
      - name: walletId
        in: path
        description: The unique identifier for the wallet
        required: true
        schema:
          type: string
      - name: after
        in: query
        description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
        schema:
          type: string
      - name: first
        in: query
        description: Maximum number of results to return per query
        schema:
          type: integer
          format: int64
          default: 25
          maximum: 100
          minimum: 1
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StakingPositionsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '401':
          description: Unauthenticated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDetails'
      tags:
      - Balances
components:
  schemas:
    Amount:
      description: Combines an asset identifier with a decimal string value
      type: object
      properties:
        amount:
          description: Amount as a decimal string. Amounts never include fees.
          type: string
          example: '10.45234733'
        assetType:
          description: A unique string identifying a specific asset on a specific blockchain and environment (testnet, mainnet).
          type: string
          example: ETH
      required:
      - assetType
      - amount
    AvalanchePChainStakingPositionDetails:
      description: Avalanche P-Chain-specific staking position information. P-Chain staking is time-locked with no early exit; funds are returned automatically at the end of the staking period.
      type: object
      properties:
        type:
          description: Discriminator field
          type: string
          default: AVALANCHE_PCHAIN
          enum:
          - AVALANCHE_PCHAIN
        validatorAddress:
          description: Node ID of the validator this stake is delegated to (e.g. NodeID-abc123). Null when the position cannot be correlated to a specific validator.
          type:
          - string
          - 'null'
          example: NodeID-CaBYJ9kzHvrQFiYCckne1QM8R9zMjgVzp
      required:
      - type
      title: Avalanche P-Chain Staking Position Details
    SolanaStakingPositionDetails:
      description: Solana-specific staking position information
      type: object
      properties:
        stakeAccountAddress:
          description: Address of the Solana stake account
          type: string
          example: 7NMw8RfMFLc6WZvyuJQbAF5yVhxFMkH9mKzPP2JVYKjL
        stakeAuthority:
          description: Address of the stake authority for the stake account
          type: string
          example: 8Y6tQ5yCjWm4LRa1kLzk5QyYa8sF3GMIeRkL4YrH8W9v
        stakingProvider:
          description: The entity running the validator infrastructure
          type:
          - string
          - 'null'
          example: Anchorage Digital
        type:
          description: Discriminator field
          type: string
          default: SOLANA
          enum:
          - SOLANA
        validatorPublicKey:
          description: Public Key of the validator
          type:
          - string
          - 'null'
          example: E7RDqAkZrZ8agpxEWhy9Eeu2T3qwbmHLtaSwQZDz5y84
        validatorVoteAccount:
          description: Vote address of the validator
          type:
          - string
          - 'null'
          example: CcaHc2L43ZWjwCHART3oZoJvHLAe9hzT2DJNUpBzoTN1
        withdrawAuthority:
          description: Address of the withdraw authority for the stake account
          type: string
          example: 5Z7sP4xCiVj3KQzqkHzh4QxYZ7sE2FLHdQjK3XqG7V8u
      required:
      - type
      - stakeAccountAddress
      - withdrawAuthority
      - stakeAuthority
      title: Solana Staking Position Details
    WalletBalanceType:
      description: 'The type of balance. Includes both wallet-level balances and aggregated staking position balances.


        * `AVAILABLE` - Balance available for withdrawal

        * `TOTAL` - Total balance including all states

        * `HELD` - Sum of all holds that apply to the primary address of the wallet, such as pending withdrawals and settlements. This balance is held and not available for withdrawal.

        * `ACTIVE_STAKE` - Sum of all active stake across staking positions

        * `INACTIVE_STAKE` - Sum of all inactive stake across staking positions

        * `ACTIVATING_STAKE` - Sum of all activating stake across staking positions

        * `DEACTIVATING_STAKE` - Sum of all deactivating stake across staking positions'
      type: string
      enum:
      - AVAILABLE
      - TOTAL
      - HELD
      - ACTIVE_STAKE
      - INACTIVE_STAKE
      - ACTIVATING_STAKE
      - DEACTIVATING_STAKE
    HyperCoreStakingPositionDetails:
      description: HyperCore-specific staking position information. HyperCore delegates directly to validators (no third-party staking provider), so the validator address is the position identifier.
      type: object
      properties:
        delegationUnlockAt:
          description: Timestamp (RFC 3339) until which this delegated position is locked — i.e. when it first becomes eligible to undelegate (HyperCore's ~1-day delegation lock). Present only for actively delegated positions; null for wallet-level UNBOND/UNBONDED positions or when the validator has not reported a lock.
          type:
          - string
          - 'null'
          format: date-time
          example: '2026-06-07T12:00:00Z'
        type:
          description: Discriminator field
          type: string
          default: HYPERCORE
          enum:
          - HYPERCORE
        validatorAddress:
          description: Address of the validator this stake is delegated to. Empty for wallet-level positions in the unbonding (UNBOND) or unbonded (UNBONDED) states, which HyperCore does not associate with a specific validator.
          type:
          - string
          - 'null'
          example: '0xa012b9d2a8b1f7b8f8b9b3a1f0c9d8e7f6a5b4c3'
      required:
      - type
      title: HyperCore Staking Position Details
    StakingPositionBalanceType:
      description: 'The type of balance for a staking position.


        * `ACTIVE_STAKE` - Currently active stake

        * `INACTIVE_STAKE` - Inactive stake

        * `ACTIVATING_STAKE` - Stake that is in the process of activating

        * `DEACTIVATING_STAKE` - Stake that is in the process of deactivating'
      type: string
      enum:
      - ACTIVE_STAKE
      - INACTIVE_STAKE
      - ACTIVATING_STAKE
      - DEACTIVATING_STAKE
    WalletBalancesResponse:
      description: Response containing wallet balance details
      type: object
      properties:
        balances:
          description: Array of balance entries for this wallet
          type: array
          items:
            $ref: '#/components/schemas/WalletBalanceEntry'
      required:
      - balances
    WalletBalanceEntry:
      description: A single balance entry with type and amount
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        balanceType:
          $ref: '#/components/schemas/WalletBalanceType'
      required:
      - balanceType
      - amount
    StakingPositionBalanceEntry:
      description: A single balance entry for a staking position
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        balanceType:
          $ref: '#/components/schemas/StakingPositionBalanceType'
      required:
      - balanceType
      - amount
    ErrorDetails:
      type: object
      properties:
        message:
          description: A human-readable message providing more details about the error.
          type: string
          example: Missing required field 'amount'.
      required:
      - message
      title: ErrorDetails
    StakingPositionBalancesResponse:
      description: Response containing staking position balance details
      type: object
      properties:
        balances:
          description: Array of balance entries for this staking position
          type: array
          items:
            $ref: '#/components/schemas/StakingPositionBalanceEntry'
      required:
      - balances
    Page:
      description: Pagination info
      type: object
      properties:
        endCursor:
          description: Submit this parameter in the "after" field to fetch the next page.
          type:
          - string
          - 'null'
      title: Page
    EthereumStakingPositionDetails:
      description: Ethereum-specific staking position information
      type: object
      properties:
        stakingProvider:
          description: The entity running the validator infrastructure
          type:
          - string
          - 'null'
          enum:
          - FIGMENT
          - BLOCKDAEMON
        type:
          description: Discriminator field
          type: string
          default: ETHEREUM
          enum:
          - ETHEREUM
        validatorPublicKey:
          description: BLS12-381 public key of the validator (48 bytes, hex encoded)
          type:
          - string
          - 'null'
          example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a'
      required:
      - type
      title: Ethereum Staking Position Details
    StakingPosition:
      description: High-level information about a staking position
      type: object
      properties:
        networkId:
          description: A unique string identifying a combination of blockchain and environment (testnet, mainnet).
          type: string
        networkSpecific:
          description: Network-specific staking position details
          discriminator:
            propertyName: type
            mapping:
              ETHEREUM: '#/components/schemas/EthereumStakingPositionDetails'
              SOLANA: '#/components/schemas/SolanaStakingPositionDetails'
              HYPERCORE: '#/components/schemas/HyperCoreStakingPositionDetails'
              AVALANCHE_PCHAIN: '#/components/schemas/AvalanchePChainStakingPositionDetails'
          oneOf:
          - $ref: '#/components/schemas/EthereumStakingPositionDetails'
          - $ref: '#/components/schemas/SolanaStakingPositionDetails'
          - $ref: '#/components/schemas/HyperCoreStakingPositionDetails'
          - $ref: '#/components/schemas/AvalanchePChainStakingPositionDetails'
        positionId:
          description: Unique identifier for this staking position
          type: string
      required:
      - positionId
      - networkId
      - networkSpecific
    StakingPositionsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/StakingPosition'
        page:
          $ref: '#/components/schemas/Page'
      required:
      - data
      - page
  securitySchemes:
    Api-Access-Key:
      type: apiKey
      name: Api-Access-Key
      in: header
      description: An API key associated with a security role
x-tagGroups:
- name: Under Development
  tags:
  - Atlas Settlement Network
- name: API Endpoints
  tags:
  - Addresses
  - Wallets
  - Stablecoins
  - Wallet Operations
  - Blockchain Events
  - Balances
  - Asset Types & Networks
  - Transaction Creation
  - Transaction Construction
  - Fiat Banking Operations
  - AML