Helius Tokens API
Complete token account data, on-chain and off-chain metadata, and detailed information for both fungible and non-fungible Solana tokens.
Complete token account data, on-chain and off-chain metadata, and detailed information for both fungible and non-fungible Solana tokens.
openapi: 3.1.0
info:
title: Helius API Catalog Addresses Tokens 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: Tokens
description: Complete token account data, on-chain and off-chain metadata, and detailed information for both fungible and non-fungible Solana tokens.
paths:
/v0/tokens/metadata:
post:
tags:
- Tokens
summary: Returns token metadata (whether NFT or Fungible) for a given token address.
operationId: enhancedApi_getTokenMetadata
parameters:
- $ref: '#/components/parameters/apiKeyParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_TokensMetadataRequest'
responses:
'200':
description: Returns the token metadata.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EnhancedApi_TokenMetadataResponse'
'400':
$ref: '#/components/responses/EnhancedApi_400-BadRequest'
'401':
$ref: '#/components/responses/EnhancedApi_401-Unauthorized'
'403':
$ref: '#/components/responses/EnhancedApi_403-Forbidden'
'404':
$ref: '#/components/responses/EnhancedApi_404-NotFound'
'429':
$ref: '#/components/responses/EnhancedApi_429-TooManyRequests'
'500':
$ref: '#/components/responses/EnhancedApi_500-InternalServerError'
'503':
$ref: '#/components/responses/EnhancedApi_503-ServiceUnavailable'
'504':
$ref: '#/components/responses/EnhancedApi_504-GatewayTimeout'
x-amazon-apigateway-integration:
httpMethod: POST
type: http_proxy
uri: http://PLACEHOLDER_VIEW_LAYER_DNS_NAME/tokens/metadata
connectionType: VPC_LINK
connectionId: PLACEHOLDER_VPC_LINK_ID
servers:
- url: https://api-mainnet.helius-rpc.com
description: Mainnet RPC endpoint
- url: https://api-devnet.helius-rpc.com
description: Devnet RPC endpoint
/v0/token-metadata:
post:
tags:
- Tokens
summary: Returns all metadata associated with an account, including data from the old token list.
operationId: enhancedApi_queryMetadataV1
parameters:
- $ref: '#/components/parameters/apiKeyParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_TokensMetadataRequestV1'
responses:
'200':
description: Query result.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_TokensMetadataResponseV1'
'400':
$ref: '#/components/responses/EnhancedApi_400-BadRequest'
'401':
$ref: '#/components/responses/EnhancedApi_401-Unauthorized'
'403':
$ref: '#/components/responses/EnhancedApi_403-Forbidden'
'404':
$ref: '#/components/responses/EnhancedApi_404-NotFound'
'429':
$ref: '#/components/responses/EnhancedApi_429-TooManyRequests'
'500':
$ref: '#/components/responses/EnhancedApi_500-InternalServerError'
'503':
$ref: '#/components/responses/EnhancedApi_503-ServiceUnavailable'
'504':
$ref: '#/components/responses/EnhancedApi_504-GatewayTimeout'
x-amazon-apigateway-integration:
httpMethod: POST
type: http_proxy
uri: http://PLACEHOLDER_VIEW_LAYER_DNS_NAME/tokens/metadata-v1
connectionType: VPC_LINK
connectionId: PLACEHOLDER_VPC_LINK_ID
servers:
- url: https://api-mainnet.helius-rpc.com
description: Mainnet RPC endpoint
- url: https://api-devnet.helius-rpc.com
description: Devnet RPC endpoint
components:
schemas:
EnhancedApi_OffChainMetadata:
type: object
description: Metaplex metadata that is stored off-chain.
properties:
name:
type: string
symbol:
type: string
attributes:
type: array
items:
properties:
traitType:
type: string
value:
type: string
sellerFeeBasisPoints:
type: integer
image:
type: string
properties:
type: object
properties:
category:
type: string
files:
type: array
items:
properties:
uri:
type: string
type:
type: string
creators:
type: array
items:
properties:
address:
type: string
share:
type: string
EnhancedApi_TokensMetadataRequest:
type: object
properties:
mintAccounts:
type: array
items:
type: string
description: The mint account of the token to retrieve metadata for.
maxItems: 100
EnhancedApi_TokensMetadataResponseV1:
type: array
items:
type: object
description: Token metadata stored both on-chain and in the old token list.
properties:
account:
type: string
onChainAccountInfo:
$ref: '#/components/schemas/EnhancedApi_OnChainAccountInfoResult'
onChainMetadata:
$ref: '#/components/schemas/EnhancedApi_OnChainMetadataResult'
offChainMetadata:
$ref: '#/components/schemas/EnhancedApi_OffChainMetadataResult'
legacyMetadata:
$ref: '#/components/schemas/EnhancedApi_LegacyMetadata'
EnhancedApi_OnChainMetadataResult:
type: object
properties:
metadata:
$ref: '#/components/schemas/EnhancedApi_OnChainMetadata'
error:
$ref: '#/components/schemas/EnhancedApi_AccountErrorType'
EnhancedApi_OnChainMetadata:
type: object
description: Metaplex metadata that is stored on-chain.
properties:
key:
type: string
mint:
type: string
updateAuthority:
type: string
data:
type: object
properties:
name:
type: string
symbol:
type: string
uri:
type: string
sellerFeeBasisPoints:
type: integer
creators:
type: array
items:
type: object
properties:
address:
type: string
share:
type: string
verified:
type: boolean
tokenStandard:
type: string
primarySaleHappened:
type: boolean
isMutable:
type: boolean
editionNonce:
type: integer
collection:
type: object
properties:
key:
type: string
verified:
type: boolean
collectionDetails:
type: object
properties:
size:
type: integer
uses:
type: object
properties:
useMethod:
type: string
remaining:
type: integer
total:
type: integer
EnhancedApi_TokensMetadataRequestV1:
type: object
properties:
mintAccounts:
type: array
items:
type: string
description: The mint account of the token to retrieve metadata for.
maxItems: 100
includeOffChain:
type: boolean
default: false
description: Include offchain data referenced in the uri of the metadata account. Omitting defaults to false.
disableCache:
type: boolean
default: false
description: Disable usage of cache, useful for monitoring metadata changes.
EnhancedApi_LegacyMetadata:
type: object
description: Data from the old SPL token list.
properties:
chainId:
type: integer
address:
type: string
symbol:
type: string
name:
type: string
decimals:
type: integer
logoURI:
type: string
tags:
type: array
items:
type: string
extensions:
type: object
EnhancedApi_AccountErrorType:
type: string
example: ''
enum:
- UNKNOWN
- EMPTY_ACCOUNT
- TIMEOUT
- INVALID_ACCOUNT
- INVALID_PUBKEY
EnhancedApi_OffChainMetadataResult:
type: object
properties:
metadata:
$ref: '#/components/schemas/EnhancedApi_OffChainMetadata'
uri:
type: string
error:
$ref: '#/components/schemas/EnhancedApi_AccountErrorType'
EnhancedApi_TokenMetadataResponse:
type: object
description: Metaplex metadata stored both on-chain and off-chain.
properties:
mint:
type: string
onChainData:
$ref: '#/components/schemas/EnhancedApi_OnChainMetadata'
offChainData:
$ref: '#/components/schemas/EnhancedApi_OffChainMetadata'
EnhancedApi_OnChainAccountInfo:
type: object
description: Account data that is stored on-chain.
properties:
key:
type: string
isSigner:
type: boolean
isWritable:
type: boolean
lamports:
type: integer
data:
type: object
properties:
parsed:
type: object
properties:
info:
type: object
properties:
decimals:
type: integer
freezeAuthority:
type: string
isInitialized:
type: boolean
mintAuthority:
type: string
supply:
type: string
type:
type: string
program:
type: string
space:
type: integer
owner:
type: string
executable:
type: boolean
rentEpoch:
type: integer
EnhancedApi_ErrorResponse:
type: object
description: JSON-RPC error response format
properties:
jsonrpc:
type: string
example: '2.0'
description: JSON-RPC version
error:
type: object
properties:
code:
type: integer
description: Error code
example: -32602
message:
type: string
description: Error message
example: Invalid params
id:
type: string
description: Request identifier
example: '1'
required:
- jsonrpc
- error
- id
EnhancedApi_OnChainAccountInfoResult:
type: object
properties:
accountInfo:
$ref: '#/components/schemas/EnhancedApi_OnChainAccountInfo'
error:
$ref: '#/components/schemas/EnhancedApi_AccountErrorType'
responses:
EnhancedApi_401-Unauthorized:
description: Unauthorized request.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32001
message: Unauthorized
id: '1'
EnhancedApi_400-BadRequest:
description: Invalid request.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32602
message: Invalid params
id: '1'
EnhancedApi_404-NotFound:
description: The specified resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32601
message: Method not found
id: '1'
EnhancedApi_503-ServiceUnavailable:
description: The service is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32002
message: Service unavailable
id: '1'
EnhancedApi_500-InternalServerError:
description: The server encountered an unexpected condition that prevented it from fulfilling the request.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32603
message: Internal error
id: '1'
EnhancedApi_504-GatewayTimeout:
description: The request timed out.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32003
message: Gateway timeout
id: '1'
EnhancedApi_403-Forbidden:
description: Request was forbidden.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32003
message: Forbidden
id: '1'
EnhancedApi_429-TooManyRequests:
description: Exceeded rate limit.
content:
application/json:
schema:
$ref: '#/components/schemas/EnhancedApi_ErrorResponse'
example:
jsonrpc: '2.0'
error:
code: -32005
message: Rate limit exceeded
id: '1'
parameters:
apiKeyParam:
name: api-key
in: query
required: true
description: Helius API key. Obtain from https://dashboard.helius.dev or via `helius signup --json`.
schema:
type: string
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