Get Every Transaction for a Wallet on Robinhood Chain (Not Just Transfers)

Wait 5 sec.

A common indexing requirement: given a wallet address, return every transaction hash it has ever been involved in. On Alchemy, teams reach for alchemy_getAssetTransfers for this, and it mostly works, until it doesn’t. The method returns asset transfers: external value transfers, internal transfers, and token movements. A transaction that moves no assets, like a contract deployment, an approval, or a failed transaction, never shows up. So the hash list it produces is not the address’s full transaction history, it’s the subset where value moved.This post shows how to get the complete picture on Robinhood Chain with Bitquery: the transfer-level equivalent of alchemy_getAssetTransfers, plus the Transactions API that fills the gap Alchemy leaves open.The Bitquery equivalentBitquery indexes Robinhood Chain from the genesis block and exposes it through the standard EVM schema, so network: robinhood on the EVM root gives you the same cubes you’d use on Ethereum or Arbitrum. All transfers touching an address, as sender or receiver, live in the Transfers cube, each with its transaction hash.▶️ Run in IDE{ EVM(network: robinhood, dataset: realtime) { Transfers( where: { any: [ { Transfer: { Sender: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } { Transfer: { Receiver: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } ] } limit: { count: 100 } orderBy: { descending: Block_Time } ) { Transfer { Amount AmountInUSD Sender Receiver Currency { Name Symbol SmartContract Native } } Transaction { Hash From To } Block { Number Time } } }}The any clause is an OR filter: it matches transfers where the address is either the sender or the receiver, which is exactly what alchemy_getAssetTransfers does when you run it twice: once with fromAddress and once with toAddress. Here it’s one query.If you only need the hashes, trim the selection down to Transaction { Hash }. Smaller payloads, faster responses.Paginating through full historyTo walk an address’s complete history, page with limit and offset, or anchor on Block_Number ranges for stable cursors:{ EVM(network: robinhood, dataset: archive) { Transfers( where: { Block: { Number: { gt: "1500000" } } any: [ { Transfer: { Sender: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } { Transfer: { Receiver: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } ] } limit: { count: 1000 } orderBy: { ascending: Block_Number } ) { Transaction { Hash } Block { Number } } }}Dataset selection matters here: use archive for deep history, realtime for the latest activity, and combined when you need both in one call. See the EVM Transfers docs for the full field reference.Streaming instead of pollingThis changes the economics at a million requests a day. Most high-volume alchemy_getAssetTransfers workloads are really polling loops that ask the same question over and over to catch new activity. With Bitquery you subscribe once and get new transfers pushed as they happen:▶️ Run in IDEsubscription { EVM(network: robinhood) { Transfers( where: { any: [ { Transfer: { Sender: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } { Transfer: { Receiver: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } ] } ) { Transfer { Amount Sender Receiver Currency { Symbol SmartContract } } Transaction { Hash } Block { Number Time } } }}One WebSocket subscription replaces thousands of polling calls. For monitoring many addresses, widen the filter or drop it entirely and filter client-side. For production pipelines at the highest volumes, the same data is available as Kafka streams with sub-500ms delivery, and full-history datasets can be exported to S3, Snowflake, or BigQuery via Cloud Export if you’d rather query it in your own warehouse.Getting transactions directly: the Transactions APIHere’s a gap worth knowing about: Alchemy has no endpoint that returns transactions by address. Their own transaction history tutorial points at the Transfers API for this, since standard eth_* JSON-RPC methods can’t filter by address without scanning every block. So alchemy_getAssetTransfers ends up doing double duty as a transaction-history API even though it only surfaces transfer events. Bitquery has a dedicated Transactions API for this. Same schema across chains, so any example from the Ethereum Transactions docs works on Robinhood Chain by swapping the network:▶️ Run in IDE{ EVM(network: robinhood, dataset: realtime) { Transactions( where: { any: [ { Transaction: { From: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } { Transaction: { To: { is: "0xcaf681a66d020601342297493863e78c959e5cb2" } } } ] } limit: { count: 100 } orderBy: { descending: Block_Time } ) { Transaction { Hash From To Value Gas CallCount Type } TransactionStatus { Success FaultError EndError } Block { Number Time } } }}This also returns things alchemy_getAssetTransfers doesn’t: gas used, call counts, transaction type, and success/failure status per transaction, so failed transactions are visible instead of silently absent. In practice the two cubes cover the full requirement together: Transactions for everything the wallet signed or was the direct recipient of, Transfers for token movements where the wallet appears only inside the transfer event. Both return Transaction { Hash }, so deduplicating the union client-side gives you the complete hash list for an address.Side-by-side with alchemy_getAssetTransfersThe practical differences at 1M requests/day: each alchemy_getAssetTransfers call costs 120 compute units, so a million calls a day is roughly 120M CU/day before anything else your app does. On the Bitquery side, the two-directional query halves your call count immediately, field selection shrinks payloads, and moving the “what’s new for this address” workload from polling to subscriptions usually removes the bulk of the request volume outright. What remains is backfill and ad-hoc lookups, which the archive dataset handles.Getting startedCreate a free account at ide.bitquery.io, run the queries above against network: robinhood, and see the Robinhood Transfers documentation for more examples: token-specific transfers, supply tracking, and DEX trades. Paid plans start at $39/month with the Personal tier (100k API points, non-commercial use; commercial plans from $79/month), full details on the Bitquery pricing page. For throughput planning at millions of requests per day, talk to us. High-volume workloads usually land on a mix of streams and warehouse export rather than raw API calls, and it’s cheaper to plan that before you build..lwrp.link-whisper-related-posts{ margin-top: 40px;margin-bottom: 30px; } .lwrp .lwrp-title{ }.lwrp .lwrp-description{ } .lwrp .lwrp-list-container{ } .lwrp .lwrp-list-multi-container{ display: flex; } .lwrp .lwrp-list-double{ width: 48%; } .lwrp .lwrp-list-triple{ width: 32%; } .lwrp .lwrp-list-row-container{ display: flex; justify-content: space-between; } .lwrp .lwrp-list-row-container .lwrp-list-item{ width: calc(25% - 20px); } .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){ } .lwrp .lwrp-list-item img{ max-width: 100%; height: auto; object-fit: cover; aspect-ratio: 1 / 1; } .lwrp .lwrp-list-item.lwrp-empty-list-item{ background: initial !important; } .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text, .lwrp .lwrp-list-item .lwrp-list-no-posts-message{ }@media screen and (max-width: 480px) { .lwrp.link-whisper-related-posts{ } .lwrp .lwrp-title{ }.lwrp .lwrp-description{ } .lwrp .lwrp-list-multi-container{ flex-direction: column; } .lwrp .lwrp-list-multi-container ul.lwrp-list{ margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; } .lwrp .lwrp-list-double, .lwrp .lwrp-list-triple{ width: 100%; } .lwrp .lwrp-list-row-container{ justify-content: initial; flex-direction: column; } .lwrp .lwrp-list-row-container .lwrp-list-item{ width: 100%; } .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){ } .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text, .lwrp .lwrp-list-item .lwrp-list-no-posts-message{ }; } Related Posts Agreeable Smart ContractsEquifax Partners With Blockchain Firm Oasis Labs To Build a Web3 KYC SolutionMetamask vs Coinbase Wallet: Lowest Fee Crypto WalletVitalik Buterin advocates for Layer-2 strategies adoption by Bitcoin Lawsuit against DeFi firm PoolTogether dismissed in courtDispelling Rumors: Binance CEO Refutes Interpol Red Notice ClaimsRippleX Reveals Technical Glitch Affecting AMM Pools on XRP LedgerA Guide to Bybit Margin Trading