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