openapi: 3.1.0
info:
title: Helius API Catalog Addresses Balances API
version: 1.0.0
summary: Machine-readable discovery document for every Helius API surface on Solana.
description: 'This document is a discovery catalog — not an operational spec. It exists so
AI agents, codegen tools, and SDK generators can locate the canonical
OpenAPI document for every Helius API in one request instead of crawling
the docs site.
Start with the `x-apis` array: each entry links a Helius API surface to its
canonical OpenAPI spec (`specUrl`) and human-readable docs (`docsUrl`).
Follow `externalDocs` for the full developer documentation site.
## A note on JSON-RPC APIs
Several Helius APIs (Solana RPC, DAS, Sender, Mint, Priority Fee,
ZK Compression) follow the JSON-RPC 2.0 convention where every method POSTs
to `/` with a `method` field in the request body. For each such API the
repository ships both per-method fragment YAMLs (used to render the
Mintlify reference pages) and an auto-generated `_combined.yaml` that
merges every method into a single OpenAPI document. In the combined
documents, colliding paths are disambiguated with a URL-fragment suffix
(e.g. `/#getAccountInfo`) and each operation carries an `x-actual-path`
extension that records the real request path (`/`). The fragment syntax is
schema-only — real calls still go to the `url` in `servers`.
All `specUrl` values below point to raw GitHub files on the `main` branch
of `helius-labs/docs`. They are stable URLs suitable for downstream tools
to pin or fetch.
'
contact:
name: Helius Support
url: https://www.helius.dev/contact
email: support@helius.dev
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://mainnet.helius-rpc.com
description: Solana mainnet RPC endpoint (Solana RPC, DAS, Priority Fee, ZK Compression)
- url: https://devnet.helius-rpc.com
description: Solana devnet RPC endpoint
- url: https://sender.helius-rpc.com
description: Helius Sender — global transaction submission
- url: https://api.helius.xyz
description: Helius REST APIs (Wallet API, Enhanced API, Webhooks)
- url: https://admin-api.helius.xyz
description: Helius Admin API — project usage and billing
- url: https://api-mainnet.helius-rpc.com
description: Mainnet RPC endpoint
- url: https://api-devnet.helius-rpc.com
description: Devnet RPC endpoint
- url: http://slc-sender.helius-rpc.com
description: Salt Lake City
- url: http://ewr-sender.helius-rpc.com
description: Newark
- url: http://lon-sender.helius-rpc.com
description: London
- url: http://fra-sender.helius-rpc.com
description: Frankfurt
- url: http://ams-sender.helius-rpc.com
description: Amsterdam
- url: http://sg-sender.helius-rpc.com
description: Singapore
- url: http://tyo-sender.helius-rpc.com
description: Tokyo
tags:
- name: Balances
description: Query token and NFT balances
paths:
/v1/wallet/{wallet}/balances:
get:
tags:
- Balances
summary: Get wallet balances
description: 'Retrieve token and NFT balances for a wallet. **Pagination is manual** - the API returns up to 100 tokens per request.
Results are sorted by USD value in descending order. Tokens with pricing data appear first, followed by tokens without prices.
**Pagination:** Use the `page` parameter to fetch additional pages. The response includes `pagination.hasMore`
to indicate if more results are available. Each request makes a single API call and costs 100 credits.
'
operationId: walletApi_getWalletBalances
parameters:
- $ref: '#/components/parameters/WalletApi_WalletAddress'
- name: page
in: query
description: Page number for pagination (1-indexed)
schema:
type: integer
minimum: 1
default: 1
example: 1
- name: limit
in: query
description: Maximum number of tokens per page
schema:
type: integer
minimum: 1
maximum: 100
default: 100
example: 100
- name: showZeroBalance
in: query
description: Include tokens with zero balance
schema:
type: boolean
default: false
- name: showNative
in: query
description: Include native SOL in results
schema:
type: boolean
default: true
- name: showNfts
in: query
description: Include NFTs in results (max 100, first page only)
schema:
type: boolean
default: false
responses:
'200':
description: Wallet balances retrieved successfully
content:
application/json:
schema:
$ref: '#/components/schemas/WalletApi_BalancesResponse'
'400':
$ref: '#/components/responses/WalletApi_BadRequest'
'401':
$ref: '#/components/responses/WalletApi_Unauthorized'
'429':
$ref: '#/components/responses/WalletApi_RateLimited'
'500':
$ref: '#/components/responses/WalletApi_InternalError'
servers:
- url: https://api.helius.xyz
description: Production server
components:
schemas:
WalletApi_Nft:
type: object
properties:
mint:
type: string
description: NFT mint address
example: 7Xq8wXyXVqfBPPqVJjPDwG9zN5wCVxBYZ6z7vPYBzr6F
name:
type: string
nullable: true
description: NFT name
example: Degen Ape
imageUri:
type: string
nullable: true
description: NFT image URI
example: https://example.com/nft.png
collectionName:
type: string
nullable: true
description: Collection name
example: Degen Ape Academy
collectionAddress:
type: string
nullable: true
description: Collection address
example: DegN1dXmU2uYa4n7U9qTh7YNYpK4u8L9qXx7XqYqJfGH
compressed:
type: boolean
description: Whether this is a compressed NFT
example: false
required:
- mint
- compressed
WalletApi_BalancesResponse:
type: object
properties:
balances:
type: array
items:
$ref: '#/components/schemas/WalletApi_TokenBalance'
description: 'Array of token balances for the current page, including native SOL.
When showNative=true, SOL appears as the first element with mint address So11111111111111111111111111111111111111112.
Other tokens are sorted by USD value (descending).
'
nfts:
type: array
items:
$ref: '#/components/schemas/WalletApi_Nft'
description: Array of NFT holdings (only included if showNfts=true, max 100, first page only)
totalUsdValue:
type: number
description: Total USD value of balances on this page (not total portfolio value)
example: 217.98
pagination:
type: object
description: Pagination metadata. Users must manually request additional pages using the page parameter.
properties:
page:
type: integer
description: Current page number
example: 1
limit:
type: integer
description: Number of items per page
example: 100
hasMore:
type: boolean
description: True if more results are available. Increment the page parameter to fetch the next page.
example: true
required:
- page
- limit
- hasMore
required:
- balances
- totalUsdValue
- pagination
WalletApi_Error:
type: object
properties:
error:
type: string
description: Error message
example: Invalid wallet address
code:
type: integer
description: HTTP status code
example: 400
details:
type: string
description: Additional error details
example: '''invalid-address'' is not a valid Solana address'
required:
- error
- code
WalletApi_TokenBalance:
type: object
properties:
mint:
type: string
description: Token mint address
example: So11111111111111111111111111111111111111112
symbol:
type: string
nullable: true
description: Token symbol
example: SOL
name:
type: string
nullable: true
description: Token name
example: Solana
balance:
type: number
description: Token balance (adjusted for decimals)
example: 1.5
decimals:
type: integer
description: Number of decimal places
example: 9
pricePerToken:
type: number
nullable: true
description: Price per token in USD
example: 145.32
usdValue:
type: number
nullable: true
description: Total USD value of holdings
example: 217.98
logoUri:
type: string
nullable: true
description: URL to token logo image
example: https://example.com/sol-logo.png
tokenProgram:
type: string
enum:
- spl-token
- token-2022
description: Token program type (spl-token for legacy, token-2022 for new standard)
example: spl-token
required:
- mint
- balance
- decimals
- tokenProgram
responses:
WalletApi_RateLimited:
description: Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/WalletApi_Error'
example:
error: RATE_LIMIT_EXCEEDED
code: 429
details: Too many requests. Retry after 2 seconds.
WalletApi_InternalError:
description: Transient server error. Retryable with exponential backoff.
content:
application/json:
schema:
$ref: '#/components/schemas/WalletApi_Error'
example:
error: INTERNAL_ERROR
code: 500
details: An unexpected error occurred. Please retry.
WalletApi_Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/WalletApi_Error'
example:
error: API key required. Pass via ?api-key=xxx or X-Api-Key header
code: 401
WalletApi_BadRequest:
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/WalletApi_Error'
example:
error: Invalid wallet address
code: 400
details: '''invalid-address'' is not a valid Solana address'
parameters:
WalletApi_WalletAddress:
name: wallet
in: path
required: true
description: Solana wallet address (base58 encoded)
schema:
type: string
pattern: ^[1-9A-HJ-NP-Za-km-z]{32,44}$
example: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: api-key
description: Your Helius API key. You can get one for free in the [dashboard](https://dashboard.helius.dev/api-keys).
ApiKeyHeader:
type: apiKey
in: header
name: X-Api-Key
description: API key passed in request header
externalDocs:
description: Helius Documentation (canonical)
url: https://www.helius.dev/docs
x-apis:
- id: rpc-http
name: Solana RPC (HTTP)
description: JSON-RPC 2.0 methods for Solana mainnet and devnet, plus Helius extensions such as `getTransactionsForAddress` with server-side filtering and token account helpers (`getTokenAccountsByOwnerV2`, `getProgramAccountsV2`).
specUrl: https://www.helius.dev/openapi/rpc-http.json
docsUrl: https://www.helius.dev/docs/rpc/overview
tags:
- rpc
- json-rpc
- solana
- accounts
- transactions
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/rpc-http
- id: das-api
name: Digital Asset Standard (DAS) API
description: Unified NFT and token queries for Solana — regular NFTs, compressed NFTs, and fungible tokens — indexed for fast lookups by owner, creator, authority, collection, or search.
specUrl: https://www.helius.dev/openapi/das-api.json
docsUrl: https://www.helius.dev/docs/das-api
tags:
- nft
- tokens
- compressed-nft
- digital-assets
- json-rpc
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/das-api
- id: sender-api
name: Helius Sender
description: Ultra-low-latency transaction submission with dual routing to validators and Jito infrastructure. Regional endpoints for Salt Lake City, Newark, London, Frankfurt, Amsterdam, Singapore, and Tokyo.
specUrl: https://www.helius.dev/openapi/sender-api.json
docsUrl: https://www.helius.dev/docs/sending-transactions/sender
tags:
- transactions
- sender
- low-latency
- jito
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/sender-api
- id: wallet-api
name: Wallet API
description: High-performance REST API for Solana wallet data — identity, balances, transaction history, transfers, and funding lineage. Returns pre-indexed results suitable for wallet and portfolio UIs.
specUrl: https://www.helius.dev/openapi/wallet-api.json
docsUrl: https://www.helius.dev/docs/wallet-api/overview
tags:
- wallet
- portfolio
- history
- rest
status: beta
- id: priority-fee-api
name: Priority Fee API
description: Real-time priority fee recommendations across multiple priority levels, derived from recent network activity. Accepts either account keys or a serialized transaction.
specUrl: https://www.helius.dev/openapi/priority-fee-api.json
docsUrl: https://www.helius.dev/docs/priority-fee-api
tags:
- priority-fee
- transactions
- fees
- json-rpc
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/priority-fee-api
- id: zk-compression
name: ZK Compression Indexer
description: Indexer API for Solana state compression — compressed accounts, compressed token balances, Merkle proofs, and validity proofs. Enables up to 1000x lower storage costs relative to regular accounts.
specUrl: https://www.helius.dev/openapi/zk-compression.json
docsUrl: https://www.helius.dev/docs/zk-compression/introduction
tags:
- zk-compression
- state-compression
- accounts
- proofs
- json-rpc
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/zk-compression
- id: admin-api
name: Admin API
description: Programmatic access to Helius project usage and billing data — credits consumed, credits remaining, prepaid balances, and subscription details for the current billing cycle.
specUrl: https://www.helius.dev/openapi/admin-api.json
docsUrl: https://www.helius.dev/docs/api-reference/admin
tags:
- admin
- billing
- usage
- rest
status: stable
x-specFragments: https://github.com/helius-labs/docs/tree/main/openapi/admin-api
- id: enhanced-api
name: Enhanced API
description: Decoded, human-readable transaction history, NFT events, and address activity on Solana. Returns typed, parsed data instead of raw instruction bytes.
specUrl: https://www.helius.dev/openapi/enhanced-api.json
docsUrl: https://www.helius.dev/docs/enhanced-transactions/overview
tags:
- enhanced
- parsed-transactions
- nft-events
- history
- rest
status: stable
- id: webhooks
name: Helius Webhooks
description: Real-time HTTP notifications for Solana on-chain events — configure account, transaction, or NFT event subscriptions and receive parsed payloads via HTTPS POST.
specUrl: https://www.helius.dev/openapi/webhooks.json
docsUrl: https://www.helius.dev/docs/webhooks
tags:
- webhooks
- events
- notifications
- rest
status: stable