Helius Unleashes `getTransfersByAddress` RPC for Streamlined Solana Transaction History
Helius introduces a powerful new RPC method, `getTransfersByAddress`, significantly simplifying the retrieval and parsing of Solana transfer history for developers, poised to enhance dApp and wallet functionality.
Helius Revolutionizes Solana Transfer History Access
Helius has announced the release of getTransfersByAddress, a new exclusive Solana RPC method designed to drastically simplify how developers access and parse token and SOL transfer records for any wallet address. This method returns clean, human-readable transfer objects in a single API call, equipped with native filters for mint, time, amount, slot, direction, and counterparty.
This new RPC method stands as the ideal complement to getTransactionsForAddress (gTFA). While gTFA provides comprehensive transaction payloads, getTransfersByAddress distills the data down to concise transfer objects, clearly detailing who sent what, to whom, when, and how much.
The Problem: The Complexity of Parsing Solana Transfers
Historically, obtaining clean Solana transfer history has been a significant hurdle for developers. Most wallet, payments, and portfolio products primarily need transfer details, not entire transaction payloads. Yet, until now, developers faced a multi-step, error-prone process:
- Pulling signatures with
getSignaturesForAddress. - Fetching each signature individually with
getTransaction. - Manually parsing pre/post balances, token balances, and inner instructions.
- Reconstructing transfers, addressing intricate details like SPL Token vs. Token-2022 fee semantics, and untangling WSOL wrap/unwrap noise.
- Repeating these steps across multiple pages, handling retries, and managing storage.
Even with getTransactionsForAddress streamlining the initial signature and transaction fetching, the complex parsing and reconstruction (steps 3-5) remained solely on the developer.
The Solution: getTransfersByAddress
getTransfersByAddress automates this intricate parsing, returning a structured list of transfer objects, eliminating the need for client-side logic to manage edge cases. Each transfer object includes vital information:
signature,slot,blockTimetype: (e.g.,transfer,transferFee,mint,burn,wrap,unwrap,changeAccountOwner,withdrawWithheldFee)fromUserAccount,toUserAccountfromTokenAccount,toTokenAccountmint,amount(raw and UI),decimalsconfirmationStatus,transactionIdx,instructionIdx,innerInstructionIdx
This robust output ensures accurate representation of transfer events, allowing developers to filter and utilize data precisely.
Addressing Solana's Transfer Nuances
Solana transfers present several unique challenges that getTransfersByAddress expertly handles:
- SOL vs. WSOL: Native SOL and Wrapped SOL, despite appearing similar to users, reside differently on the network. The method intelligently distinguishes or merges them based on
solModesettings, preventing double-counting or data corruption from wrap/unwrap events. - Token-2022 Transfer Fees: The new
TransferCheckedWithFeeextension introduces scenarios where sender debit doesn't match recipient credit. The Helius RPC correctly identifies and separates these into a transfer plus a withheld-fee accrual. - Mints and Burns: These events, which look like transfers in balance deltas but lack a true counterparty, are correctly categorized as
mintorburntypes withnullfromUserAccountortoUserAccountfields, avoiding distorted analytics.
Powerful Filtering and Configuration Options
Developers can now perform sophisticated queries directly via the RPC, which previously demanded extensive client-side processing:
- Search by Mint: Filter transfers for a specific token.
- Search by Amount: Use
gt,gte,lt,ltecomparisons to find transfers within a specified raw amount range. - Search by Time: Query by Unix timestamp or slot ranges for precise historical data.
- Search by Counterparty: Combine
withanddirectionparameters to target transfers between specific wallets. solModeParameter: Toggle betweenmerged(default, treats WSOL as native SOL, excludes wrap/unwrap) andseparate(preserves WSOL as distinct, includes wrap/unwrap) for auditability or simplified product views.- Pagination and Ordering: Standard cursor-based pagination (
paginationToken) andsortOrder(asc/desc) for efficient data retrieval.
Availability and Pricing
The getTransfersByAddress method is now live and available on all Helius paid plans, starting with the Developer plan. Each request costs 10 credits and falls under standard RPC rate limits. Developers can integrate this new functionality using their existing Helius RPC URL.
This release significantly elevates the Solana developer experience, enabling the creation of more robust, accurate, and efficient applications on the network.