Helius Tokens API

Complete token account data, on-chain and off-chain metadata, and detailed information for both fungible and non-fungible Solana tokens.

Specifications

OpenAPI Specification

helius-tokens-api-openapi.yml Raw ↑
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