Skip to main content
A tax or accounting record is built from a few core data sources: the full movement of funds, token transfers, point-in-time balances, and readable address labels. This guide shows the endpoints behind each piece. New to the API? Start with Make your first call.
Every endpoint in this guide works on all 60+ supported chains, just switch the chainid. For example, set chainid=42161 to read the same address on Arbitrum. See Supported chains for the full list.

Transaction history

Reconstruct the complete movement of funds in and out of an address, in chronological order.
1

Get normal transactions

The transactions the address signed: native sends, receives, and contract calls. Sort ascending (sort=asc) to build the ledger from the first transaction forward.
Sync incrementally. For ongoing tracking, store the latest processed block and request only newer activity after the initial import.
2

Get internal transactions

Value transfers triggered during contract execution, such as native coin received from a protocol withdrawal. These are separate from normal transactions, so include them for a complete record.
3

Get token transfers

ERC-20 token transfers in and out of the address, to include token activity in the record.

Historical balances

Snapshot holdings at a specific point in time for period-end reporting.
1

Convert a date to a block

Map a reporting date to the closest block before that timestamp. Use the returned block number in the balance calls below.
2

Get the native balance at that block

The native coin balance of an address at the selected block. The value is returned in wei, so divide by 10^18 for display. This is a PRO endpoint, available to the Standard plan and above.

Token balances

Combine current and historical token holdings for portfolio reconciliation.
1

Get current ERC-20 holdings

The ERC-20 tokens currently held by an address, for reconciling against your ledger. This is a PRO endpoint, available to the Standard plan and above.
Normalize token amounts. Token values are returned in their smallest unit. Use each token’s tokenDecimal value to convert amounts before calculations.
2

Get historical ERC-20 balances

The balance of a specific token at a given block, for period reporting. This is a PRO endpoint, available to the Standard plan and above.

Address labels

Attach names and labels to addresses so reports and audit trails read clearly.
1

Look up an address name tag and labels

Returns the same name tag and labels shown on etherscan.io, part of Etherscan Metadata. Use it to attribute counterparties in a transaction ledger. This is a PRO endpoint, available on the Pro Plus plan.

Putting it together

Combine these endpoints to build common tax and accounting workflows:
  • Transaction ledger: txlist + txlistinternal + tokentx
  • Portfolio reconciliation: addresstokenbalance + balancehistory + tokenbalancehistory
  • Cost-basis calculations: ordered transfers with timestamps, values, and token decimals
  • Entity attribution: getaddresstag
For multi-chain entities, repeat the same workflow for each chainid and combine the results into a unified view.