Helius Identity API

Lookup wallet identities and known addresses

Operations 2

GET /v1/wallet/{wallet}/identity Get wallet identity #
POST /v1/wallet/batch-identity Batch identity lookup #

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/helius-identity-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

helius-identity-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Helius API Catalog Identity 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.
  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: Identity
  description: Lookup wallet identities and known addresses
paths:
  /v1/wallet/{wallet}/identity:
    get:
      tags:
      - Identity
      summary: Get wallet identity
      description: 'Retrieve identity information for a known wallet (exchanges, protocols, etc.). Accepts

        either a Solana wallet address or an SNS (`.sol`) / ANS custom TLD domain name

        (e.g. `toly.sol`, `miester.bonk`). Domain resolution is mainnet-only.


        The response is the standard identity object for the **resolved address**. No domain

        marker (`inputDomain`) is attached on this endpoint — use `POST /v1/wallet/batch-identity`

        if you need to correlate inputs with outputs.


        Returns `404` if the wallet has no identity entry, or if a domain input cannot be resolved.

        Returns `400` if the input is neither a valid address nor a valid domain name, or if a

        domain input is sent on a non-mainnet deployment.'
      operationId: walletApi_getWalletIdentity
      parameters:
      - $ref: '#/components/parameters/WalletApi_WalletOrDomain'
      responses:
        '200':
          description: Identity information found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletApi_Identity'
        '400':
          $ref: '#/components/responses/WalletApi_BadRequest'
        '401':
          $ref: '#/components/responses/WalletApi_Unauthorized'
        '404':
          description: No identity information available, or domain could not be resolved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletApi_Error'
        '429':
          $ref: '#/components/responses/WalletApi_RateLimited'
        '500':
          $ref: '#/components/responses/WalletApi_InternalError'
      servers:
      - url: https://api.helius.xyz
        description: Production server
  /v1/wallet/batch-identity:
    post:
      tags:
      - Identity
      summary: Batch identity lookup
      description: 'Retrieve identity information for multiple entries in a single request. Each entry may be

        either a Solana wallet address or an SNS (`.sol`) / ANS custom TLD domain name. Domain

        resolution is mainnet-only.


        Unresolvable domain entries do not fail the batch — they come back as

        `{ "address": null, "type": "unknown", "inputDomain": "...", "unresolved": true }`

        in request order. Resolved domain entries carry an `inputDomain` field so callers can

        correlate responses with the original input.'
      operationId: walletApi_batchIdentityLookup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - addresses
              properties:
                addresses:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  maxItems: 100
                  description: Array of Solana wallet addresses and/or SNS/ANS domain names to look up (up to 100 per request).
                  example:
                  - HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664
                  - toly.sol
                  - miester.bonk
      responses:
        '200':
          description: Identity information for requested entries, in request order
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WalletApi_BatchIdentityEntry'
        '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_UnresolvedDomainEntry:
      description: 'A batch entry returned when a domain name could not be resolved. Only appears as an

        element of the array returned by `POST /v1/wallet/batch-identity` — the single-endpoint

        returns `404` instead of this shape.

        '
      type: object
      properties:
        address:
          type: string
          nullable: true
          enum:
          - null
          description: Always `null` for unresolved entries.
        type:
          type: string
          enum:
          - unknown
          description: Always the literal string `"unknown"` for unresolved entries.
        inputDomain:
          type: string
          description: The domain name the caller queried that could not be resolved.
          example: nonexistent-xyz.sol
        unresolved:
          type: boolean
          enum:
          - true
          description: Always `true` for unresolved entries.
      required:
      - address
      - type
      - inputDomain
      - unresolved
    WalletApi_BatchIdentityEntry:
      description: 'One element of the array returned by `POST /v1/wallet/batch-identity`. Resolved entries

        match `BatchResolvedIdentity` (possibly with `inputDomain`); unresolvable domain entries

        match `UnresolvedDomainEntry`. Distinguish at runtime by checking `unresolved === true`

        or `address === null`.

        '
      oneOf:
      - $ref: '#/components/schemas/WalletApi_BatchResolvedIdentity'
      - $ref: '#/components/schemas/WalletApi_UnresolvedDomainEntry'
    WalletApi_BatchResolvedIdentity:
      description: 'A resolved entry in a batch identity response. Extends `Identity` with an optional

        `inputDomain` field that is present when the original batch input for this entry was a

        domain name. Returned only from `POST /v1/wallet/batch-identity`.

        '
      allOf:
      - $ref: '#/components/schemas/WalletApi_Identity'
      - type: object
        properties:
          inputDomain:
            type: string
            description: The domain name the caller queried. Present only when a domain (not an address) was provided as input for this batch entry.
            example: toly.sol
    WalletApi_Identity:
      type: object
      properties:
        address:
          type: string
          description: Solana wallet address
          example: HXsKP7wrBWaQ8T2Vtjry3Nj3oUgwYcqq9vrHDM12G664
        type:
          type: string
          description: Type of entity
          example: exchange
        name:
          type: string
          description: Display name
          example: Binance 1
        category:
          type: string
          description: Category classification
          example: Centralized Exchange
        tags:
          type: array
          items:
            type: string
          description: Additional classification tags
          example:
          - Centralized Exchange
        domainNames:
          type: array
          items:
            type: string
          description: All on-chain domain names owned by this address, including SNS (.sol) and ANS custom TLDs (.bonk, .wen, etc.). The favorite .sol domain is first if set; remaining domains are sorted alphabetically. Omitted if the wallet owns no domains.
          example:
          - toly.sol
          - kash.superteam
      required:
      - address
      - type
      - name
      - category
      - tags
    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
  responses:
    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_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'
    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_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
  parameters:
    WalletApi_WalletOrDomain:
      name: wallet
      in: path
      required: true
      description: 'Solana wallet address (base58 encoded) or SNS/ANS domain name (e.g. `toly.sol`,

        `miester.bonk`). Domain resolution is mainnet-only. Any non-`.sol` domain is treated

        as an ANS custom TLD — there is no fixed TLD whitelist.

        '
      schema:
        type: string
      examples:
        address:
          summary: Solana address
          value: GQUtvPx89ZNCwmvQqFmH59bJcU8fW8siETpaxod7Aydz
        snsDomain:
          summary: SNS (.sol) domain
          value: toly.sol
        ansDomain:
          summary: ANS custom TLD
          value: miester.bonk
  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