Skip to main content
POST
getTransfersByAddress
curl --request POST \
  --url 'https://mainnet.helius-rpc.com/?api-key=' \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "getTransfersByAddress",
  "params": [
    "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "limit": 50
    }
  ]
}
'
{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "data": [
      {
        "signature": "5GEX7Q3X5Q8yJGbKYoR7mtzQmG8tpoEwzjPgqVmn3y5xg3yKwqXcDdN5YVcc9V6vA4TuH5iM6FHRVhTxvz4AX2zG",
        "slot": 315073428,
        "blockTime": 1736159420,
        "type": "transfer",
        "fromUserAccount": "7hPhaUpydpvm8wtiS3k4LPZKUmivQRs7YQmpE1hFshHx",
        "toUserAccount": "86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
        "fromTokenAccount": "HcvK3EJ74iM9g11cUgsaPvLSrhCvCwcrWxBNd87LsC1x",
        "toTokenAccount": "CBcYniR9G9CN3zGMnwNE4SWbqkYWvCFVreEob9xHnQCY",
        "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "amount": "2500000",
        "decimals": 6,
        "uiAmount": "2.5",
        "confirmationStatus": "finalized",
        "transactionIdx": 35,
        "instructionIdx": 1,
        "innerInstructionIdx": 0
      }
    ],
    "paginationToken": "315073428:35:1:0:splTransfer"
  }
}

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.

Overview

getTransfersByAddress returns parsed, human-readable transfer objects for token and native SOL movement involving a wallet address. Use filters to narrow results by mint, block time, amount, slot, direction, or counterparty. The response is designed for accurate wallet activity views, payment tracking, and balance reconciliation without reimplementing Solana transfer parsing.
Mint and burn transfers are one-sided. Mints have fromUserAccount: null and can only be returned as inbound transfers for the recipient. Burns have toUserAccount: null and can only be returned as outbound transfers for the burning owner.

Request Parameters

The address parameter is the wallet owner address, not an associated token account (ATA). The API finds transfer activity for token accounts owned by that wallet.
address
string
required
Base58-encoded owner wallet address to query transfers for. Pass the wallet owner address, not an associated token account (ATA).
config
object
Optional configuration object.
with
string
Filter by counterparty address. Returns only transfers to or from this address.
direction
string
default:"any"
Filter by transfer direction relative to address.
  • in
  • out
  • any
mint
string
Filter by token mint address. Use So11111111111111111111111111111111111111111 for native SOL and So11111111111111111111111111111111111111112 for WSOL.
solMode
string
default:"merged"
SOL/WSOL display mode.
  • merged: Treat WSOL as native SOL and exclude wrap/unwrap lifecycle rows so SOL-denominated history is easier to reconcile.
  • separate: Preserve WSOL as a distinct SPL token mint and include wrap/unwrap lifecycle rows.
filters
object
Additional filters for amount, block time, and slot.
filters.amount
object
Filter by raw transfer amount, not UI amount.
filters.amount.gt
number
Amount must be greater than this raw integer value.
filters.amount.gte
number
Amount must be greater than or equal to this raw integer value.
filters.amount.lt
number
Amount must be less than this raw integer value.
filters.amount.lte
number
Amount must be less than or equal to this raw integer value.
filters.blockTime
object
Filter by block timestamp in Unix seconds.
filters.blockTime.gt
number
Block time must be greater than this Unix timestamp.
filters.blockTime.gte
number
Block time must be greater than or equal to this Unix timestamp.
filters.blockTime.lt
number
Block time must be less than this Unix timestamp.
filters.blockTime.lte
number
Block time must be less than or equal to this Unix timestamp.
filters.slot
object
Filter by slot number.
filters.slot.gt
number
Slot must be greater than this value.
filters.slot.gte
number
Slot must be greater than or equal to this value.
filters.slot.lt
number
Slot must be less than this value.
filters.slot.lte
number
Slot must be less than or equal to this value.
limit
number
default:"100"
Maximum number of transfers to return. Range: 1 to 100.
paginationToken
string
Cursor from the previous response for pagination.
commitment
string
default:"finalized"
Data commitment level.
  • finalized
  • confirmed
minContextSlot
number
Minimum context slot to use for request (optional).
sortOrder
string
default:"desc"
Result ordering.
  • desc
  • asc

Authorizations

api-key
string
query
required

Your Helius API key. You can get one for free in the dashboard.

Body

application/json
jsonrpc
enum<string>
default:2.0
required

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string
default:1
required

A unique identifier for the request.

Example:

"1"

method
enum<string>
default:getTransfersByAddress
required

The name of the RPC method to invoke.

Available options:
getTransfersByAddress
Example:

"getTransfersByAddress"

params
tuple
required

Array containing the required wallet address and optional configuration object.

Example:
[
"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY",
{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"limit": 50,
"sortOrder": "desc"
}
]

Response

Successfully retrieved transfers for the specified address.

jsonrpc
enum<string>

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string

Identifier matching the request.

Example:

"1"

result
object

Transfer data and pagination information.