Every transaction a wallet made, including internal transfers, each token's price on the day it moved, and balances on any date for period-end close. One API key across 100+ chains, Bitcoin included, so you build the tax engine instead of the indexer.
| Token | Balance | Value |
|---|---|---|
| USDT | 3,007 | $2,961.09 |
| USDC | 1,632 | $1,607.94 |
| WBTC | 0.01572 | $1,345.42 |
| BNB | 1 | $839.19 |
| ETH | 0.1191 | $344.44 |
| cETH | 4.99 | $290.02 |
historical_balances with date=2025-12-31, 1 credit. Block 24,128,884, valued at prices from that day.A historical balances call returns every token an address held on the date you pass, each priced that day. Three fields carry a year-end valuation: the block the balances were read at, the price, and the value. Here is the Ether item from the call behind the panel above, and what to do with each.
/v1/eth-mainnet/address/demo.eth/historical_balances/?date=2025-12-31&no-spam=true{ "contract_decimals": 18, "contract_name": "Ether", "contract_ticker_symbol": "ETH", "contract_address": "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee", "block_height": 24128884, "is_native_token": true, "type": "cryptocurrency", "is_spam": false, "balance": "119077849440095085", "quote_rate": 2892.5405, "quote": 344.4375, "pretty_quote": "$344.44"}one of data.itemshistorical_balances response for demo.eth on Ethereum, with date=2025-12-31 and no-spam=true. 1 credit per call. Captured 29 Oct 2026; a past date returns the same balances every time.Add with-classification=true to a transactions call and every transaction comes back with a type, a category, a one-line description and the assets the wallet sent and received. Map the types to your tax events instead of writing a decoder for every protocol.
// data.items[n].classification{ "type": "swap", "category": "defi", "description": "Swapped 872.59 AERO for 0.279091760280112109 WETH.", "sent": [ { "action": "token_sent", "amount": "872.59", "token": { … } }, { "action": "paid_gas", "amount": "0.0000…", "token": { … } } ], "received": [ { "action": "token_received", "amount": "0.2790…", "token": { … } } ]}# Two query parameters on the paginated transactions endpointGET /v1/{chainName}/address/{walletAddress}/transactions_v3/page/{page}/ ?with-classification=true&with-internal=trueA type such as swap, send_token, receive_token or add_liquidity, in a category such as defi, nft, transfer or lending.
Sent and received amounts are adjusted for decimals, include gas, and are relative to the account you pass, so one transaction reads correctly for each party.
The plain-English description can go straight into a ledger note or a client report.
Classification adds 0.05 credits per transaction on Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Smart Chain and 17 more chains, the same chains as internal transfers.
Each step of a tax or accounting workflow maps to an endpoint or two. Credit costs are per call unless a row says per item.
Page through every transaction an address made, oldest first if you need it. with-internal=true adds internal transfers, the ETH that moves inside contract calls, and with-classification=true labels each transaction as a swap, a send or a receive. Both work on select EVM chains.
Look up a token's daily price over any date range, in any of 16 fiat currencies, to value each acquisition and disposal on the day it happened. Token transfers come back with the price at the time.
Read every token an address held at a block height or on a date, priced that day, for year-end statements and period-end close. Block heights turns a date range into the blocks it spans.
Read the balance of every address derived from an xPub, yPub or zPub, the transactions of a single Bitcoin address, and a Bitcoin balance on a past date, with the same API key.
Find every chain an address has used in one call, then get each chain's transaction count and first and last transaction, so a client's ledger can be checked chain by chain.
The hosted GoldRush MCP server gives Claude, Cursor and other MCP clients 37 tools, including transactions_for_address, historical_token_balances, historical_token_prices and block_heights. GoldRush Agent Skills give coding agents the endpoints, parameters and credit costs, so the code they write calls the API correctly. Both work in Claude Code and Cursor, among other agents, and agents without an API key can pay per request in stablecoins on Base through x402.
# MCP server: 37 tools, hosted by GoldRushclaude mcp add --transport http goldrush \ https://mcp.goldrushdata.com/mcp \ --header "Authorization: Bearer $GOLDRUSH_API_KEY" # Agent Skills: Foundational API, x402 and CLInpx skills add covalenthq/goldrush-agent-skillsRead each of a client's wallets on 31 December and draft a statement with that day's prices.
Find disposals with no matching acquisition and trace where those tokens came from.
Compare each treasury wallet's onchain balance with the ledger and flag the differences.
Both return decoded wallet history with internal transactions and balances on past dates. The differences are chain coverage, how usage is billed, and how agents pay.
| Moralis | GoldRush | |
|---|---|---|
| Chains | 30+, with 26 listed for wallet history | 100+, including Bitcoin and Solana |
| Internal transactions | include_internal_transactions=true | with-internal=true, on select EVM chains |
| What happened | A category and a summary per transaction | A type, a category, a description, and the assets sent and received |
| Balances on a past date | Supported | By date or by block height, priced that day |
| Billing | Compute units that vary by endpoint | Credits, with the cost listed on every endpoint |
| Pay per request without an account | Not advertised as of 31 May 2026 | x402, in stablecoins on Base |
Sources: Moralis wallet history API, GoldRush vs Moralis, paginated transactions and Bitcoin HD wallet balances.
GoldRush is SOC 2 Type 2 compliant. Data is encrypted at rest with AES-256 and in transit with TLS 1.2, and we work with security firms to take down phishing sites and impersonators.

Every account starts with a 14-day free trial: 25,000 API credits and 4 requests per second, with no credit card. A historical balances call costs 1 credit, so the trial covers 25,000 year-end snapshots. Paid plans start at $10 a month.
Your first API call in a few minutes.
Balances, transactions, prices and approvals on one key.
Every chain, and which endpoints each one supports.
Every endpoint and its credit cost, on one page.
Full history, with internal transfers and classification.
Every token held on a date or at a block.
Daily prices over any date range.
Chain coverage, pricing model and x402.
Two wallet data APIs, side by side.
Decoded data and JSON-RPC on one key or two.