> ## 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.

## 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?

> [card] One REST call
>
> Structured balances, history, and transfers without stitching together raw
> RPC responses.

> [card] USD pricing built in
>
> Token balances include USD values and portfolio totals, sourced from DAS.

> [card] Identity resolution
>
> 32,500+ labeled accounts and programs plus 21.5M+ categorical tags for
> exchanges, protocols, and institutions.

> [card] Human-readable output
>
> Clear, decimal-adjusted data instead of raw lamports and instructions.

## Key endpoints

> [card] [Wallet Identity](https://www.helius.dev/docs/wallet-api/identity.md)
>
> Identify known wallets by address or SNS/ANS domain — exchanges, protocols,
> institutions.

> [card] [Wallet Balances](https://www.helius.dev/docs/wallet-api/balances.md)
>
> All token and NFT balances with USD values, logos, and metadata.

> [card] [Historical Balance](https://www.helius.dev/docs/wallet-api/balance-at.md)
>
> A token or SOL balance at a past timestamp, datetime, or slot.

> [card] [Wallet History](https://www.helius.dev/docs/wallet-api/history.md)
>
> Complete transaction history with balance changes for each transaction.

> [card] [Token Transfers](https://www.helius.dev/docs/wallet-api/transfers.md)
>
> All incoming and outgoing transfers with sender/recipient info.

> [card] [Funding Source](https://www.helius.dev/docs/wallet-api/funded-by.md)
>
> The original funding source of a wallet, traced to its first incoming SOL.

## Which endpoint should I use?

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

> [tab] Query Parameter
>
> ```bash theme={"system"}
> curl "https://api.helius.xyz/v1/wallet/{wallet}/balances?api-key=YOUR_API_KEY"
> ```

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

## Plan requirements

The identity and funding-source endpoints require a paid plan. On the Free plan, requests to these endpoints return `403 Forbidden`. Every other endpoint is open on all plans, including Free.

| Endpoint | Free plan |
| - | - |
| `GET /v1/wallet/{wallet}/identity` | `403` — paid plans only |
| `POST /v1/wallet/batch-identity` | `403` — paid plans only |
| `GET /v1/wallet/{wallet}/funded-by` | `403` — paid plans only |
| `GET /v1/wallet/{wallet}/balances` | Available |
| `GET /v1/wallet/{wallet}/balance-at` | Available |
| `GET /v1/wallet/{wallet}/history` | Available |
| `GET /v1/wallet/{wallet}/transfers` | Available |

Any paid tier unlocks the gated endpoints — Developer, Business, and every higher tier (such as Enterprise). To enable identity and funding-source lookups, [upgrade your plan in the dashboard](https://dashboard.helius.dev).

## 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

**1. Get your API key**

Sign up at [dashboard.helius.dev](https://dashboard.helius.dev) to get your API key.

**2. Choose your endpoint**

Use the table above to pick the endpoint that matches your use case.

**3. 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"
```

**4. Handle the response**

Parse the JSON response and display the data in your application.

## Next steps

> [card] [Getting Data](https://www.helius.dev/docs/getting-data.md)
>
> Explore every way to query Solana data on Helius.

> [card] [API Reference](https://www.helius.dev/docs/api-reference/wallet-api.md)
>
> Request and response schemas for all Wallet API endpoints.

> [card] [Contact Support](https://www.helius.dev/docs/support/contact-support)
>
> Get help through Discord, chat, or email.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.