> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Wallet API Overview (Beta)

> Query Solana wallet data with the Wallet API. Get balances, transaction history, transfers, identity information, and funding sources in a single request.

<Note>
  The Wallet API is in Beta. Endpoints and response formats may change.
</Note>

## What is the Wallet API?

The Wallet API provides high-level REST endpoints for querying complete Solana wallet data — balances, transaction history, token transfers, identity resolution, historical balances, and funding sources. Instead of making multiple RPC calls and parsing raw blockchain data, you get structured, human-readable information with USD pricing in a single request.

It is built for wallets, portfolio trackers, explorers, payment processors, tax tools, and compliance and AML systems. All endpoints share the base URL `https://api.helius.xyz` and return amounts in human-readable units (no lamport conversion needed).

## Why Helius for wallet data?

<CardGroup cols={2}>
  <Card title="One REST call" icon="bolt">
    Structured balances, history, and transfers without stitching together raw RPC responses.
  </Card>

  <Card title="USD pricing built in" icon="dollar-sign">
    Token balances include USD values and portfolio totals, sourced from DAS.
  </Card>

  <Card title="Identity resolution" icon="address-card">
    12,500+ labeled accounts and programs plus 10.7M+ categorical tags for exchanges, protocols, and institutions.
  </Card>

  <Card title="Human-readable output" icon="book-open">
    Clear, decimal-adjusted data instead of raw lamports and instructions.
  </Card>
</CardGroup>

## Key endpoints

<CardGroup cols={2}>
  <Card title="Wallet Identity" icon="address-card" href="/wallet-api/identity">
    Identify known wallets by address or SNS/ANS domain — exchanges, protocols, institutions.
  </Card>

  <Card title="Wallet Balances" icon="scale-balanced" href="/wallet-api/balances">
    All token and NFT balances with USD values, logos, and metadata.
  </Card>

  <Card title="Historical Balance" icon="clock" href="/wallet-api/balance-at">
    A token or SOL balance at a past timestamp, datetime, or slot.
  </Card>

  <Card title="Wallet History" icon="clock-rotate-left" href="/wallet-api/history">
    Complete transaction history with balance changes for each transaction.
  </Card>

  <Card title="Token Transfers" icon="arrow-right-arrow-left" href="/wallet-api/transfers">
    All incoming and outgoing transfers with sender/recipient info.
  </Card>

  <Card title="Funding Source" icon="money-bill-transfer" href="/wallet-api/funded-by">
    The original funding source of a wallet, traced to its first incoming SOL.
  </Card>
</CardGroup>

## Which endpoint should I use?

| You need                                    | Use this                                     | Returns                                                  |
| ------------------------------------------- | -------------------------------------------- | -------------------------------------------------------- |
| Who a wallet is (exchange, protocol, label) | [Identity](/wallet-api/identity)             | Name, category, and tags for known addresses             |
| A wallet's current portfolio                | [Balances](/wallet-api/balances)             | All tokens and NFTs with USD values                      |
| A balance at a past point in time           | [Historical Balance](/wallet-api/balance-at) | One token or SOL balance as of a timestamp/datetime/slot |
| Full transaction activity                   | [History](/wallet-api/history)               | Parsed transactions with per-transaction balance changes |
| Only sent/received transfers                | [Transfers](/wallet-api/transfers)           | Transfer-level view with counterparty and direction      |
| Where a wallet's funds originated           | [Funding Source](/wallet-api/funded-by)      | First incoming SOL transfer and its sender               |

Quick reference of the underlying routes (base URL `https://api.helius.xyz`):

* `GET /v1/wallet/{wallet}/identity` — get wallet identity by address or SNS/ANS domain
* `POST /v1/wallet/batch-identity` — batch identity lookup (up to 100 addresses and/or domains)
* `GET /v1/wallet/{wallet}/balances` — get all token and NFT balances
* `GET /v1/wallet/{wallet}/balance-at` — get a token or SOL balance at a past timestamp, datetime, or slot
* `GET /v1/wallet/{wallet}/history` — get transaction history with balance changes
* `GET /v1/wallet/{wallet}/transfers` — get all token transfer activity
* `GET /v1/wallet/{wallet}/funded-by` — find the original funding source

## Authentication

All Wallet API requests require an API key. You can pass it as a query parameter or as a header:

<Tabs>
  <Tab title="Query Parameter">
    ```bash theme={"system"}
    curl "https://api.helius.xyz/v1/wallet/{wallet}/balances?api-key=YOUR_API_KEY"
    ```
  </Tab>

  <Tab title="Header">
    ```bash theme={"system"}
    curl "https://api.helius.xyz/v1/wallet/{wallet}/balances" \
      -H "X-Api-Key: YOUR_API_KEY"
    ```
  </Tab>
</Tabs>

## Amounts and units

The Wallet API is a high-level abstraction over raw Solana data. All `amount` fields in responses are **human-readable** — already divided by the token's `decimals` — so you can display them directly without any conversion. Raw Solana RPC calls return values in lamports (the smallest unit, 10⁻⁹ SOL); the Wallet API does not. `"amount": 1.5` means 1.5 SOL, not 1.5 lamports.

Where exact arithmetic is required, some endpoints also expose `amountRaw`: the same value as a raw integer serialized as a string to avoid floating-point precision loss. The conversion formula is:

`amount = parseInt(amountRaw) / 10**decimals`

| Endpoint                       | Human-readable `amount`              | Raw `amountRaw` string |
| ------------------------------ | ------------------------------------ | ---------------------- |
| **Balances**                   | `balance` field                      | Not available          |
| **Balance-at**                 | `balance` field (decimal **string**) | `balanceRaw` field     |
| **Funded-by**                  | `amount` field                       | `amountRaw` field      |
| **Transfers**                  | `amount` field                       | `amountRaw` field      |
| **History** (`balanceChanges`) | `amount` field                       | Not available          |

Use `amount` for display. Use `amountRaw` when passing values to on-chain instructions or other systems that require exact integer arithmetic.

## Get started

<Steps>
  <Step title="Get your API key">
    Sign up at [dashboard.helius.dev](https://dashboard.helius.dev) to get your API key.
  </Step>

  <Step title="Choose your endpoint">
    Use the table above to pick the endpoint that matches your use case.
  </Step>

  <Step title="Make your first request">
    Start with a simple balance query:

    ```bash theme={"system"}
    curl "https://api.helius.xyz/v1/wallet/86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY/balances?api-key=YOUR_API_KEY"
    ```
  </Step>

  <Step title="Handle the response">
    Parse the JSON response and display the data in your application.
  </Step>
</Steps>

## Next steps

<CardGroup cols={3}>
  <Card title="Getting Data" icon="database" href="/getting-data">
    Explore every way to query Solana data on Helius.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/wallet-api">
    Request and response schemas for all Wallet API endpoints.
  </Card>

  <Card title="Contact Support" icon="headset" href="/support/contact-support">
    Get help through Discord, chat, or email.
  </Card>
</CardGroup>
