Skip to main content

Quick setup

Every example below needs only your Helius API key from dashboard.helius.dev. Replace YOUR_API_KEY, then pick the path that matches what you’re fetching:
You wantUse thisReturns
An address’s full transaction historygetTransactionsForAddressDecoded transactions for one address
An address’s full transfers historygetTransfersByAddressToken and native SOL transfers for one address
Tokens, NFTs, and assets owned by a walletDAS APIgetAssetsByOwnerAssets with metadata, ownership, and balances
Wallet balances with USD values over RESTWallet API/balancesToken and NFT balances with USD pricing

Option 1: Backfill transaction history (getTransactionsForAddress)

getTransactionsForAddress returns the full, decoded transaction history for an address in a single method — the fastest way to backfill data for indexing. Pass the address first, then an options object with optional filters.
const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getTransactionsForAddress',
    params: [
      '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
      {
        transactionDetails: 'full',
        sortOrder: 'desc',
        limit: 100,
      },
    ],
  }),
});

const { result } = await response.json();
console.log(`Fetched ${result.data.length} transactions`);

getTransactionsForAddress guide

Filters, pagination, response format, and best practices.

Indexing guide

Build, backfill, and keep a Solana index up to date.

Option 2: Get transfer history (getTransfersByAddress)

getTransfersByAddress returns parsed token and native SOL transfer history for an address — at the transfer level rather than the transaction level, ready for reconciliation. Pass the address; add an options object for filters.
const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: 1,
    method: 'getTransfersByAddress',
    params: ['86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY'],
  }),
});

const { result } = await response.json();
console.log(`Fetched ${result.data.length} transfers`);

getTransfersByAddress guide

Transfer types, filters, reconciliation, and response format.

getTransfersByAddress reference

Full parameters and response schema.

Option 3: Get a wallet’s assets (DAS API)

The DAS API returns the NFTs, fungible tokens, and compressed assets a wallet owns in a single call — the most common starting point for wallets, portfolio views, and analytics.
const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    jsonrpc: '2.0',
    id: '1',
    method: 'getAssetsByOwner',
    params: {
      ownerAddress: '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY',
      page: 1,
      limit: 1000,
      options: {
        showFungible: true,
        showNativeBalance: true,
      },
    },
  }),
});

const { result } = await response.json();
console.log(`Found ${result.total} assets`);

DAS API overview

All asset methods, special asset types, and best practices.

getAssetsByOwner reference

Full parameters and response schema.

Option 4: Get wallet balances over REST (Wallet API)

The Wallet API is a high-level REST API. The balances endpoint returns a wallet’s token and NFT holdings with USD values — no JSON-RPC envelope required.
const address = '86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY';
const response = await fetch(
  `https://api.helius.xyz/v1/wallet/${address}/balances?api-key=YOUR_API_KEY`,
);

const data = await response.json();
console.log(`Current page value: $${data.totalUsdValue}`);

Wallet API overview

All wallet endpoints, authentication, and units.

Wallet Balances reference

Query parameters and full response schema.

Next steps

Getting Data overview

Compare every data API and choose the right one for your use case.

API Reference

Complete method and endpoint documentation.
Need help? Join our Discord or see the support docs.