Etherscan

App · Cryptocurrency · 51 actions

Read blockchain data through Etherscan's official API: native and token balances, full transaction and transfer history, internal transactions, event logs, verified contract source and ABIs, gas prices and network statistics. One API key reaches Ethereum and 60+ other EVM chains - Base, Arbitrum, Optimism, Polygon, BNB Chain and the rest - picked per step from a dropdown. Also reaches a node directly for blocks, receipts, read-only contract calls and gas estimates. Every action works on Etherscan's free plan.

Actions

ActionWhat it does
Call a contract (read-only)Read a contract without sending a transaction and without paying gas.
Check a transaction's receipt statusCheck whether a transaction succeeded, from the status flag on its receipt.
Check whether a transaction revertedCheck whether a transaction's contract call reverted, and read the reason when it did ("Out of gas", "Bad jump destination").
Count a block's transactionsCount the transactions in a block, read straight from a node.
Count a block's transactions by kindCount what happened in one block, broken down by kind: normal transactions, internal transactions, and ERC-20, ERC-721 and ERC-1155 transfers.
Estimate confirmation time for a gas priceEstimate how long a transaction offering a given gas price would wait before it confirms.
Estimate gas for a transactionEstimate the gas a transaction would need, without sending it - the way to size a gas limit, or to find out that a call would revert before paying for it.
Find ERC-1155 transfers between addressesFind the ERC-1155 transfers that went from one address to another, optionally for one contract only.
Find ERC-20 transfers between addressesFind the ERC-20 transfers that went from one address to another, optionally for one token only.
Find ERC-721 (NFT) transfers between addressesFind the NFT transfers that went from one address to another, optionally within one collection.
Find internal transactions between addressesFind the internal transactions that moved value from one address to another.
Find transactions between addressesFind the transactions that went from one address to another - the direct answer to 'did this wallet ever pay that one?'.
Get a blockGet a block's header straight from a node, optionally with every transaction in it.
Get a transactionGet one transaction's full details by its hash, straight from a node: sender, recipient, value, gas, call data and signature.
Get a transaction by its position in a blockGet one transaction by which block it is in and where in that block it sits - the way to walk a block's transactions without knowing their hashes.
Get a transaction receiptGet a transaction's receipt: whether it succeeded, the gas it used, the price it actually paid, and every event log it emitted.
Get an address's transaction count (nonce)Get how many transactions an address has sent, which is also the nonce its next transaction will use.
Get an uncle blockGet one uncle block by its position within a block.
Get block number by date and timeFind the block produced at a given moment - the bridge between a date and the block numbers the historical balance and block range actions take.
Get block rewardGet what a block paid: the reward, who earned it, and any uncle rewards it included.
Get chain size over timeGet how much disk the chain occupied on each day of a range.
Get contract ABIGet a verified contract's ABI, parsed into a list you can read plus the raw JSON string a web3 library expects, with its function and event names pulled out.
Get contract deployersFind who deployed each of up to five contracts, in which transaction and when, plus the factory that created it if one did.
Get contract source codeGet a verified contract's published source code along with the compiler version, optimizer settings, licence, and - when it is a proxy - the implementation it points at.
Get countdown to a future blockEstimate how long until a block that has not happened yet is produced - for counting down to a launch or an unlock.
Get event logsRead the events a contract emitted over a range of blocks.
Get gas price recommendationsGet Etherscan's low, average and high gas price recommendations in gwei, with the current base fee - the numbers behind the gas tracker on etherscan.io.
Get native coin balanceGet an address's balance of the chain's own coin - ETH on Ethereum, BNB on BNB Chain, POL on Polygon.
Get native coin balances for several addressesGet the native coin balance of up to 20 addresses in one call - one request instead of twenty, which matters against a rate limit.
Get the code at an addressGet the bytecode deployed at an address, and with it the answer to whether the address is a contract at all - an empty result means it is an ordinary wallet.
Get the current gas priceGet the gas price a node is currently quoting, in wei and in gwei.
Get the latest block numberGet the number of the most recent block on the chain - the natural first step for a workflow that reads a window of recent history.
Get the native coin priceGet the latest price of the chain's native coin in USD and BTC, with the moment each quote was taken.
Get the native coin supplyGet the circulating supply of the chain's native coin.
Get the native coin supply (detailed)Get the native coin's supply split into its moving parts: circulating supply, staking rewards issued, EIP-1559 fees burned, and the total withdrawn from the beacon chain.
Get the node countGet how many discoverable nodes the network has right now.
Get token balanceGet how much of one ERC-20 token an address holds.
Get token total supplyGet how much of an ERC-20 token is in circulation.
List blocks validated by an addressList the blocks a validator or mining address produced, and what each one paid it.
List ERC-1155 token transfersList ERC-1155 transfers for a wallet, for a contract, or for both.
List ERC-20 token transfersList ERC-20 token transfers for a wallet, for a token, or for one wallet's transfers of one token.
List ERC-721 (NFT) transfersList NFT transfers for a wallet, for a collection, or for one wallet's transfers within one collection.
List internal transactions for an addressList the internal transactions that touched an address - the value moves a contract made on its own, which never appear in the normal transaction list.
List internal transactions of one transactionBreak one transaction open and list every value move it set off inside contracts.
List L2 deposits for an addressList an address's deposits from Ethereum onto an L2 chain, each linked back to the L1 transaction that started it.
List L2 withdrawals for an addressList an address's withdrawals from an L2 chain back to Ethereum.
List Plasma bridge deposits for an addressList the Plasma bridge deposits an address received.
List staking withdrawals to an addressList the beacon-chain withdrawals paid to an address - the staking rewards and exits that arrive without a transaction, and so never show up in a transaction list.
List supported chainsList every chain the Etherscan API covers, with each one's chain id, block explorer and current status.
List transactions for an addressList the transactions an address sent or received, newest first, each with its value, gas, fee, the function it called and whether it succeeded.
Read a contract storage slotRead one 32-byte slot of a contract's storage directly - the way to see state a contract never exposed through a getter.

Call a contract (read-only)

Read a contract without sending a transaction and without paying gas. The call data is a 4-byte method id followed by its ABI-encoded arguments; the answer comes back as raw encoded bytes, which you decode against the contract's ABI.

Inputs

Contract addressto_addresstextRequired
The contract to call.
Call datadatatext
The ABI-encoded call: the method id then its encoded arguments, as hex.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Block numberblock_numbernumber
Run the call against this block. Leave blank for the latest.At least 0.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
result_hextext
The raw ABI-encoded return value.
result_numbernumber
The same value read as a number, for the common case where the call returns a single uint.
tagtext
The block it was called against.
to_addresstext
The contract called.
Example output
{
  "chain_id": "1",
  "result_hex": "0x00000000000000000000000000000000000000000000000000601d8888141c00",
  "result_number": 27054070000000000,
  "tag": "latest",
  "to_address": "0xaeef46db4855e25702f8237e8f403fddcaf931c0"
}

Check a transaction's receipt status

Check whether a transaction succeeded, from the status flag on its receipt. Post-Byzantium transactions only - older ones have no status, and 'Check whether a transaction reverted' answers for those.

Inputs

Transaction hashtransaction_hashtextRequired
The 66-character transaction hash, starting with 0x.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
statustext
The raw status flag: 1 succeeded, 0 failed.
succeededtrue/false
Whether it succeeded.
transaction_hashtext
A 66-character hash, lowercased.
Example output
{
  "chain_id": "1",
  "status": "1",
  "succeeded": true,
  "transaction_hash": "0x513c1ba0bebf66436b5fed86ab668452b7805593c05073eb2d51d3a52f480a76"
}

Check whether a transaction reverted

Check whether a transaction's contract call reverted, and read the reason when it did ("Out of gas", "Bad jump destination"). Works on any transaction, including ones from before receipts carried a status.

Inputs

Transaction hashtransaction_hashtextRequired
The 66-character transaction hash, starting with 0x.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
error_descriptiontext
Why it reverted, when it did.
succeededtrue/false
Whether the call succeeded.
transaction_hashtext
A 66-character hash, lowercased.
Example output
{
  "chain_id": "1",
  "error_description": "Bad jump destination",
  "succeeded": false,
  "transaction_hash": "0x15f8e5ea1079d9a0bb04a4c58ae5fe7654b5b2b4463375ff7ffb490aa0032f3a"
}

Count a block's transactions

Count the transactions in a block, read straight from a node. Leave the block number blank for the latest block.

Inputs

Block numberblock_numbernumber
The block to count. Leave blank to use the Block field below.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
tagtext
The block tag actually asked for.
transaction_countnumber
How many transactions it holds.
Example output
{
  "chain_id": "1",
  "tag": "0x10fb78",
  "transaction_count": 3
}

Count a block's transactions by kind

Count what happened in one block, broken down by kind: normal transactions, internal transactions, and ERC-20, ERC-721 and ERC-1155 transfers.

Inputs

Block numberblock_numbernumberRequired
The block to look at, as an ordinary number.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

block_numbernumber
The block asked about.
chain_idtext
The chain the call was made against, as its chain id.
erc1155_transfer_countnumber
ERC-1155 transfers.
erc20_transfer_countnumber
ERC-20 transfers.
erc721_transfer_countnumber
ERC-721 transfers.
internal_transaction_countnumber
Internal transactions.
transaction_countnumber
Normal transactions in the block.
Example output
{
  "block_number": 24884529,
  "chain_id": "1",
  "erc1155_transfer_count": 0,
  "erc20_transfer_count": 103,
  "erc721_transfer_count": 1,
  "internal_transaction_count": 55,
  "transaction_count": 87
}

Estimate confirmation time for a gas price

Estimate how long a transaction offering a given gas price would wait before it confirms.

Inputs

Gas price (wei)gas_price_weinumberRequired
The gas price to estimate for, in wei. 2000000000 is 2 gwei.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
estimated_minutesnumber
The same estimate in minutes.
estimated_secondsnumber
Estimated seconds to confirmation.
gas_price_gweitext
The same price in gwei.
gas_price_weinumber
The gas price asked about, in wei.
Example output
{
  "chain_id": "1",
  "estimated_minutes": 0.75,
  "estimated_seconds": 45,
  "gas_price_gwei": "2",
  "gas_price_wei": 2000000000
}

Estimate gas for a transaction

Estimate the gas a transaction would need, without sending it - the way to size a gas limit, or to find out that a call would revert before paying for it.

Inputs

To addressto_addresstext
The address the transaction would be sent to.
Call datadatatext
The ABI-encoded call data the transaction would carry, as hex.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Value (wei)value_weinumber
How much native coin the transaction would send, in wei.At least 0.
Gas price (wei)gas_price_weinumber
The gas price to estimate against, in wei.At least 0.
Gas limitgas_limitnumber
An upper bound for the estimate.At least 0.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
gas_estimatenumber
The gas the transaction would need.
gas_estimate_hextext
The same figure as the node returned it.
Example output
{
  "chain_id": "1",
  "gas_estimate": 26284,
  "gas_estimate_hex": "0x66ac"
}

Find ERC-1155 transfers between addresses

Find the ERC-1155 transfers that went from one address to another, optionally for one contract only.

Inputs

Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Sender addressfrom_addresstext
Only include transfers sent by this address. Give a sender, a recipient, or both.
Recipient addressto_addresstext
Only include transfers received by this address. Give a sender, a recipient, or both.
Match sender and recipientaddress_operatortext
How to combine the sender and recipient when both are given. Defaults to requiring both.One of: and (Both addresses must match), or (Either address can match). Default: and.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to search the whole chain from its first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to search up to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The transfers that matched.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0xa5da536dfbe8125eb146114e2ee0d0bdef2b20483aacbf30fed6b60f092059e6",
      "block_number": 13472395,
      "confirmations": 9995266,
      "contract_address": "0x76be3b62873462d2142405439777e971754e8e77",
      "cumulative_gas_used": 11739203,
      "from_address": "0x1e63326a84d2fa207bdfa856da9278a93deba418",
      "function_name": null,
      "gas": 140000,
      "gas_price": 52898577246,
      "gas_price_gwei": "52.898577246",
      "gas_used": 105030,
      "hash": "0x643b15f3ffaad5d38e33e5872b4ebaa7a643eda8b50ffd5331f682934ee65d4d",
      "method_id": "0x3e6b214b",
      "nonce": 41,
      "quantity": 1,
      "timestamp": 1634973285,
      "timestamp_iso": "2021-10-23T07:14:45+00:00",
      "to_address": "0x83f564d180b58ad9a02a449105568189ee7de8cb",
      "token_id": "10371",
      "token_name": "parallel",
      "token_symbol": "LL",
      "transaction_index": 100
    }
  ]
}

Find ERC-20 transfers between addresses

Find the ERC-20 transfers that went from one address to another, optionally for one token only.

Inputs

Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Sender addressfrom_addresstext
Only include transfers sent by this address. Give a sender, a recipient, or both.
Recipient addressto_addresstext
Only include transfers received by this address. Give a sender, a recipient, or both.
Match sender and recipientaddress_operatortext
How to combine the sender and recipient when both are given. Defaults to requiring both.One of: and (Both addresses must match), or (Either address can match). Default: and.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to search the whole chain from its first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to search up to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The transfers that matched.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0x022c5e6a3d2487a8ccf8946a2ffb74938bf8e5c8a3f6d91b41c56378a96b5c37",
      "block_number": 4730207,
      "confirmations": 18737452,
      "contract_address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
      "cumulative_gas_used": 2523379,
      "from_address": "0x642ae78fafbb8032da552d619ad43f1d81e4dd7c",
      "function_name": "redeem()",
      "gas": 940000,
      "gas_price": 32010000000,
      "gas_price_gwei": "32.01",
      "gas_used": 77759,
      "hash": "0xe8c208398bd5ae8e4c237658580db56a2a94dfa0ca382c99b776fa6e7d31d5b4",
      "method_id": "0xbe040fb0",
      "nonce": 406,
      "timestamp": 1513240363,
      "timestamp_iso": "2017-12-14T08:32:43+00:00",
      "to_address": "0x4e83362442b8d1bec281594cea3050c8eb01311c",
      "token_decimals": 18,
      "token_name": "Maker",
      "token_symbol": "MKR",
      "transaction_index": 81,
      "value": 5901522149285533025181,
      "value_units": "5901.522149285533025181"
    }
  ]
}

Find ERC-721 (NFT) transfers between addresses

Find the NFT transfers that went from one address to another, optionally within one collection.

Inputs

Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Sender addressfrom_addresstext
Only include transfers sent by this address. Give a sender, a recipient, or both.
Recipient addressto_addresstext
Only include transfers received by this address. Give a sender, a recipient, or both.
Match sender and recipientaddress_operatortext
How to combine the sender and recipient when both are given. Defaults to requiring both.One of: and (Both addresses must match), or (Either address can match). Default: and.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to search the whole chain from its first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to search up to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The transfers that matched.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0x4be19c278bfaead5cb0bc9476fa632e2447f6e6259e0303af210302d22779a24",
      "block_number": 4708120,
      "confirmations": 18759540,
      "contract_address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
      "cumulative_gas_used": 4880352,
      "from_address": "0xb1690c08e213a35ed9bab7b318de14420fb57d8c",
      "function_name": "bid(uint256 _tokenId)",
      "gas": 158820,
      "gas_price": 40000000000,
      "gas_price_gwei": "40",
      "gas_used": 60508,
      "hash": "0x031e6968a8de362e4328d60dcc7f72f0d6fc84284c452f63176632177146de66",
      "method_id": "0x454a2ab3",
      "nonce": 0,
      "timestamp": 1512907118,
      "timestamp_iso": "2017-12-10T11:58:38+00:00",
      "to_address": "0x6975be450864c02b4613023c2152ee0743572325",
      "token_decimals": 0,
      "token_id": "202106",
      "token_name": "CryptoKitties",
      "token_symbol": "CK",
      "transaction_index": 81
    }
  ]
}

Find internal transactions between addresses

Find the internal transactions that moved value from one address to another. Give a sender, a recipient, or both.

Inputs

Sender addressfrom_addresstext
Only include transfers sent by this address. Give a sender, a recipient, or both.
Recipient addressto_addresstext
Only include transfers received by this address. Give a sender, a recipient, or both.
Match sender and recipientaddress_operatortext
How to combine the sender and recipient when both are given. Defaults to requiring both.One of: and (Both addresses must match), or (Either address can match). Default: and.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to search the whole chain from its first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to search up to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
internal_transactionslist
The internal transactions that matched the filter.
Example output
{
  "chain_id": "1",
  "count": 1,
  "internal_transactions": [
    {
      "block_number": 13481773,
      "contract_address": null,
      "error_code": null,
      "from_address": "0x3909336de913344701c6f096502d26208210b39f",
      "gas": 101300,
      "gas_used": 13898,
      "hash": "0x8b440f5ec0e986589517b131c5b75e921f2768b9912f028d2cdb009d759036ab",
      "input_data": null,
      "succeeded": true,
      "timestamp": 1635100060,
      "timestamp_iso": "2021-10-24T18:27:40+00:00",
      "to_address": "0xff62dfadca3b5643d0b283571fe154d886580c0c",
      "trace_id": "3",
      "type": "call",
      "value": 1159078546481168231,
      "value_units": "1.159078546481168231"
    }
  ]
}

Find transactions between addresses

Find the transactions that went from one address to another - the direct answer to 'did this wallet ever pay that one?'. Give a sender, a recipient, or both.

Inputs

Sender addressfrom_addresstext
Only include transfers sent by this address. Give a sender, a recipient, or both.
Recipient addressto_addresstext
Only include transfers received by this address. Give a sender, a recipient, or both.
Match sender and recipientaddress_operatortext
How to combine the sender and recipient when both are given. Defaults to requiring both.One of: and (Both addresses must match), or (Either address can match). Default: and.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to search the whole chain from its first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to search up to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transactionslist
The transactions that matched the filter.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transactions": [
    {
      "block_hash": "0xf5646226f819fbdd6b2f1cb99de6e5d17da3d876ec166e69f4e9736c8ebf7ab4",
      "block_number": 23467053,
      "confirmations": 589,
      "contract_address": null,
      "cumulative_gas_used": 22498564,
      "error_description": null,
      "from_address": "0x2449ecef5012f0a0e153b278ef4fcc9625bc4c78",
      "function_name": "delegate(address to)",
      "gas": 73271,
      "gas_price": 238744402,
      "gas_price_gwei": "0.238744402",
      "gas_used": 48847,
      "hash": "0xf9db905d77704596d3600816bc70201586cfeec13bcf576320e2f38d6ca851a0",
      "input_data": "0x5c19a95c0000000000000000000000002449ecef5012f0a0e153b278ef4fcc9625bc4c78",
      "method_id": "0x5c19a95c",
      "nonce": 8,
      "succeeded": true,
      "timestamp": 1759129619,
      "timestamp_iso": "2025-09-29T07:06:59+00:00",
      "to_address": "0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc",
      "transaction_fee": 11661947804494,
      "transaction_fee_units": "0.000011661947804494",
      "transaction_index": 184,
      "value": 0,
      "value_units": "0"
    }
  ]
}

Get a block

Get a block's header straight from a node, optionally with every transaction in it. Leave the block number blank for the latest block.

Inputs

Block numberblock_numbernumber
The block to fetch. Leave blank to use the Block field below.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.
Include full transactionsinclude_transactionstrue/false
Return every transaction in the block rather than just their hashes. Much larger, so off by default.Default: false.

Outputs

blockobject
The block, with the node's own hex fields kept alongside the converted ones.
chain_idtext
The chain the call was made against, as its chain id.
tagtext
The block tag actually asked for.
Example output
{
  "block": {
    "base_fee_per_gas": null,
    "gas_limit": 3141592,
    "gas_used": 21000,
    "hash": "0x7eb7c23a5ac2f2d70aa1ba4e5c56d89de5ac993590e5f6e79c394e290d998ba8",
    "miner": "0xf927a40c8b7f6e07c5af7fa2155b4864a4112b13",
    "number": 68943,
    "parentHash": "0xf8d01370e6e274f8188954fbee435b40c35b2ad3d4ab671f6d086cd559e48f04",
    "size": 629,
    "timestamp": 1438271100,
    "timestamp_iso": "2015-07-30T15:45:00+00:00",
    "transaction_count": 1,
    "transactions": [
      "0xa5c8ba0ad2bb26e0e5a2d1c9a5a1a2ba0e7a02f1cb6d5b1e5b3b5cf0f0f0f0f0"
    ]
  },
  "chain_id": "1",
  "tag": "0x10d4f"
}

Get a transaction

Get one transaction's full details by its hash, straight from a node: sender, recipient, value, gas, call data and signature.

Inputs

Transaction hashtransaction_hashtextRequired
The 66-character transaction hash, starting with 0x.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
transactionobject
The transaction. Null when the hash is unknown to the node.
transaction_hashtext
A 66-character hash, lowercased.
Example output
{
  "chain_id": "1",
  "transaction": {
    "block_number": 13575200,
    "chain_id": 1,
    "from": "0x00192fb10df37c9fb26829eb2cc623cd1bf599e8",
    "gas": 21000,
    "gas_price_wei": 111578610505,
    "gas_price_wei_gwei": "111.578610505",
    "hash": "0xbc78ab8a9e9a0bca7d0321a27b2c03addeae08ba81ea98b03cd3dd237eabed44",
    "input": "0x",
    "nonce": 3389341,
    "to": "0xc67f4e626ee4d3f272c2fb31bad60761ab55ed9f",
    "transaction_index": 91,
    "value_ether": "0.007175",
    "value_wei": 7175000000000000
  },
  "transaction_hash": "0xbc78ab8a9e9a0bca7d0321a27b2c03addeae08ba81ea98b03cd3dd237eabed44"
}

Get a transaction by its position in a block

Get one transaction by which block it is in and where in that block it sits - the way to walk a block's transactions without knowing their hashes.

Inputs

Block numberblock_numbernumberRequired
The block to look at, as an ordinary number.At least 0.
Position in blocktransaction_indexnumberRequired
Which transaction within the block, counting from 0.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

block_numbernumber
The block asked about.
chain_idtext
The chain the call was made against, as its chain id.
transactionobject
The transaction. Null when the block has none at that position.
transaction_indexnumber
The position asked about.
Example output
{
  "block_number": 12989533,
  "chain_id": "1",
  "transaction": {
    "block_number": 12989533,
    "chain_id": 1,
    "from": "0xd1af036d589b6ebfbaa184b339a30d32ef611708",
    "gas": 70000,
    "gas_price_wei": 24560622503,
    "gas_price_wei_gwei": "24.560622503",
    "hash": "0xc7ef51f0bfe85eefbb1d4d88f5a39e82fbfc94987d8cbcb515f74d80b6e44902",
    "input": "0x2d2da806",
    "nonce": 0,
    "to": "0xabea9132b05a70803a4e85094fd0e1800777fbef",
    "transaction_index": 282,
    "value_ether": "0.0246",
    "value_wei": 24600000000000000
  },
  "transaction_index": 282
}

Get a transaction receipt

Get a transaction's receipt: whether it succeeded, the gas it used, the price it actually paid, and every event log it emitted.

Inputs

Transaction hashtransaction_hashtextRequired
The 66-character transaction hash, starting with 0x.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
receiptobject
The receipt. Null while the transaction is still pending.
transaction_hashtext
A 66-character hash, lowercased.
Example output
{
  "chain_id": "1",
  "receipt": {
    "block_number": 13575207,
    "contractAddress": null,
    "cumulative_gas_used": 15427541,
    "effective_gas_price_wei": 114290000934,
    "effective_gas_price_wei_gwei": "114.290000934",
    "from": "0x292f04a44506c2fd49bac032e1ca148c35a478c8",
    "gas_used": 46109,
    "log_count": 1,
    "logs": [
      {
        "address": "0xdac17f958d2ee523a2206206994597c13d831ec7"
      }
    ],
    "succeeded": true,
    "to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
    "transaction_index": 290
  },
  "transaction_hash": "0xadb8aec59e80db99811ac4a0235efa3e45da32928bcff557998552250fa672eb"
}

Get an address's transaction count (nonce)

Get how many transactions an address has sent, which is also the nonce its next transaction will use.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.

Outputs

addresstext
A 42-character address, lowercased.
chain_idtext
The chain the call was made against, as its chain id.
next_noncenumber
The nonce its next transaction will use.
tagtext
The block the count was read at.
transaction_countnumber
How many transactions it has sent.
Example output
{
  "address": "0x2910543af39aba0cd09dbb2d50200b3e800a63d2",
  "chain_id": "1",
  "next_nonce": 115,
  "tag": "latest",
  "transaction_count": 115
}

Get an uncle block

Get one uncle block by its position within a block. Proof-of-work history only.

Inputs

Block numberblock_numbernumberRequired
The block to look at, as an ordinary number.At least 0.
Uncle positionuncle_indexnumberRequired
Which uncle within the block, counting from 0.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

block_numbernumber
The block asked about.
chain_idtext
The chain the call was made against, as its chain id.
uncleobject
The uncle block. Null when the block had no uncle there.
uncle_indexnumber
The uncle's position in it.
Example output
{
  "block_number": 12989556,
  "chain_id": "1",
  "uncle": {
    "gas_limit": 30096282,
    "gas_used": 11833825,
    "hash": "0x1da88e3581315d009f1cb600bf06f509cd27a68cb3d6437bda8698d04089f14a",
    "miner": "0x1ad91ee08f21be3de0ba2ba6918e714da6b45836",
    "number": 12989556,
    "size": 548,
    "timestamp": 1628501274,
    "timestamp_iso": "2021-08-09T09:27:54+00:00"
  },
  "uncle_index": 0
}

Get block number by date and time

Find the block produced at a given moment - the bridge between a date and the block numbers the historical balance and block range actions take. Pick the date and time and this converts it for you.

Inputs

Date and timetimestampdate and timeRequired
The moment to find the block for.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Which sideclosesttext
Whether to take the last block before that moment or the first one after it.One of: before (The last block at or before that moment), after (The first block at or after that moment). Default: before.

Outputs

block_numbernumber
The block at that moment.
chain_idtext
The chain the call was made against, as its chain id.
closesttext
Which side was taken: before or after.
timestampnumber
The moment asked about, in unix seconds.
timestamp_isotext
The moment asked about, as an ISO 8601 UTC timestamp.
Example output
{
  "block_number": 9251482,
  "chain_id": "1",
  "closest": "before",
  "timestamp": 1578638524,
  "timestamp_iso": "2020-01-10T06:42:04+00:00"
}

Get block reward

Get what a block paid: the reward, who earned it, and any uncle rewards it included.

Inputs

Block numberblock_numbernumberRequired
The block to look at, as an ordinary number.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

block_numbernumber
The block asked about.
block_rewardnumber
What the block paid its producer, in wei (the exact on-chain integer).
block_reward_unitstext
What the block paid its producer, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
chain_idtext
The chain the call was made against, as its chain id.
miner_addresstext
Who produced the block.
timestampnumber
When the block was produced, in unix seconds.
timestamp_isotext
When the block was produced, as an ISO 8601 UTC timestamp.
uncle_inclusion_rewardnumber
The extra paid for including uncles, in wei (the exact on-chain integer).
uncle_inclusion_reward_unitstext
The extra paid for including uncles, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
uncleslist
The uncle blocks this block included, if any.
Example output
{
  "block_number": 2165403,
  "block_reward": 5314181600000000000,
  "block_reward_units": "5.3141816",
  "chain_id": "1",
  "miner_address": "0x13a06d3dfe21e0db5c016c03ea7d2509f7f8d1e3",
  "timestamp": 1472533979,
  "timestamp_iso": "2016-08-30T04:32:59+00:00",
  "uncle_inclusion_reward": 312500000000000000,
  "uncle_inclusion_reward_units": "0.3125",
  "uncles": [
    {
      "block_reward": 3750000000000000000,
      "block_reward_units": "3.75",
      "miner_address": "0xbcdfc35b86bedf72f0cda046a3c16829a2ef41d1",
      "position": 0
    }
  ]
}

Get chain size over time

Get how much disk the chain occupied on each day of a range. The answer depends on which node software you would run and whether it keeps full history, so both are part of the question.

Inputs

Start datestart_datedateRequired
The first day to include.
End dateend_datedateRequired
The last day to include.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Node clientclient_typetext
Which node software the size is measured for.One of: geth, parity. Default: geth.
Sync modesync_modetext
A pruned node, or an archive node that keeps every historical state.One of: default (Default (pruned) node), archive (Archive node). Default: default.
Ordersorttext
Which end of the range to return first. Defaults to oldest first.One of: asc (Oldest first), desc (Newest first). Default: asc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
dayslist
One entry per day in the range.
end_datetext
The last day asked for.
start_datetext
The first day asked for.
Example output
{
  "chain_id": "1",
  "count": 1,
  "days": [
    {
      "block_number": 7156164,
      "client_type": "Geth",
      "date": "2019-02-01",
      "size_bytes": 184726421279,
      "size_gb": 184.726,
      "sync_mode": "Default"
    }
  ],
  "end_date": "2019-02-01",
  "start_date": "2019-02-01"
}

Get contract ABI

Get a verified contract's ABI, parsed into a list you can read plus the raw JSON string a web3 library expects, with its function and event names pulled out. Only works for contracts whose source is published on Etherscan.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

abilist
The parsed ABI.
abi_jsontext
The ABI as the JSON string web3 libraries take.
addresstext
A 42-character address, lowercased.
chain_idtext
The chain the call was made against, as its chain id.
event_nameslist
Every event the contract emits.
function_nameslist
Every function the contract exposes.
Example output
{
  "abi": [
    {
      "name": "transfer",
      "type": "function"
    }
  ],
  "abi_json": "[{\"name\":\"transfer\",\"type\":\"function\"}]",
  "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "chain_id": "1",
  "event_names": [
    "Transfer"
  ],
  "function_names": [
    "transfer"
  ]
}

Get contract deployers

Find who deployed each of up to five contracts, in which transaction and when, plus the factory that created it if one did. The starting point for auditing a contract's provenance.

Inputs

Contract addressescontract_addresseslistRequired
The contracts to look up, up to 5 of them.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
contractslist
One entry per contract asked about.
countnumber
How many records this step returned.
Example output
{
  "chain_id": "1",
  "contracts": [
    {
      "block_number": 10720863,
      "contract_address": "0xcbdcd3815b5f975e1a2c944a9b2cd1c985a1cb7f",
      "creation_bytecode": "0x602d3d8160093d39f3363d3d373d3d3d363d73",
      "creator_address": "0x3d080421c9dd5fb387d6e3124f7e1c241ade9568",
      "factory_address": null,
      "timestamp": 1598242563,
      "timestamp_iso": "2020-08-24T04:16:03+00:00",
      "transaction_hash": "0xdce495a9261c4a2a5d4e879cfb55c060b4616a846d3425c441a9e31aa34c956f"
    }
  ],
  "count": 1
}

Get contract source code

Get a verified contract's published source code along with the compiler version, optimizer settings, licence, and - when it is a proxy - the implementation it points at. is_verified is false rather than an error when the source was never published.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

addresstext
A 42-character address, lowercased.
chain_idtext
The chain the call was made against, as its chain id.
contractobject
The contract. Null when the source was never published.
is_verifiedtrue/false
Whether the source is published on Etherscan.
Example output
{
  "address": "0xcbdcd3815b5f975e1a2c944a9b2cd1c985a1cb7f",
  "chain_id": "1",
  "contract": {
    "abi_json": "[{\"name\":\"enterValue\",\"type\":\"function\"}]",
    "compiler_type": "solc",
    "compiler_version": "v0.4.26+commit.4563c3fc",
    "constructor_arguments": null,
    "evm_version": "Default",
    "file_name": null,
    "implementation_address": null,
    "is_proxy": false,
    "library": null,
    "license_type": "None",
    "name": "Test12345",
    "optimization_runs": 200,
    "optimization_used": true,
    "similar_match_address": "0x60810f4d8a618edb533a168e790ab6c09b0e7707",
    "source_code": "pragma solidity 0.4.26;\n\ncontract Test12345 {}",
    "swarm_source": "bzzr://f6b932198e10e83a6c872406a4252cf5eea48f37"
  },
  "is_verified": true
}

Get countdown to a future block

Estimate how long until a block that has not happened yet is produced - for counting down to a launch or an unlock. Only answers for a future block.

Inputs

Block numberblock_numbernumberRequired
A block that has not been produced yet.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countdown_blocknumber
The block asked about.
current_blocknumber
The chain's latest block.
estimated_minutesnumber
The same estimate in minutes.
estimated_secondsnumber
Estimated seconds until then.
remaining_blocksnumber
How many blocks are still to come.
Example output
{
  "chain_id": "1",
  "countdown_block": 25000000,
  "current_block": 24884529,
  "estimated_minutes": 23094.2,
  "estimated_seconds": 1385652.0,
  "remaining_blocks": 115471
}

Get event logs

Read the events a contract emitted over a range of blocks. Filter by contract address, by topics, or by both: topic 0 is the event signature hash (which event), and topics 1-3 are its indexed arguments (which sender, which token id). This one action covers all three of Etherscan's log queries.

Inputs

From blockfrom_blocknumberRequired
The first block to search.At least 0.
To blockto_blocknumberRequired
The last block to search.At least 0.
Contract addressaddresstext
Only include logs from this contract. Give a contract, at least one topic, or both.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Topic 0 (event signature)topic0text
The keccak hash of the event signature - which event to match.
Topic 1topic1text
The event's first indexed argument, as a 32-byte value.
Topic 2topic2text
The event's second indexed argument, as a 32-byte value.
Topic 3topic3text
The event's third indexed argument, as a 32-byte value.
Combine topics withtopic_operatortext
How to combine the topics you gave. Defaults to requiring all of them.One of: and (The log must carry every topic given), or (The log may carry any of the topics given). Default: and.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
from_blocknumber
The first block searched.
logslist
The matching event logs.
to_blocknumber
The last block searched.
Example output
{
  "chain_id": "1",
  "count": 1,
  "from_block": 12878100,
  "logs": [
    {
      "address": "0xbd3531da5cf5857e7cfaa92426877b022e612cf8",
      "block_hash": "0x837e109ab8b1b40ec7d1032bff82397325d85e719b97d900fa0d9aa9745b2c27",
      "block_number": 12878196,
      "data": "0x",
      "event_signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
      "gas_price": 200000000000,
      "gas_price_gwei": "200",
      "gas_used": 2388485,
      "log_index": 0,
      "timestamp": 1626984022,
      "timestamp_iso": "2021-07-22T20:00:22+00:00",
      "topics": [
        "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
        "0x0000000000000000000000000000000000000000000000000000000000000000",
        "0x000000000000000000000000c45a4b3b698f21f88687548e7f5a80df8b99d93d",
        "0x00000000000000000000000000000000000000000000000000000000000000b5"
      ],
      "transaction_hash": "0x4ffd22d986913d33927a392fe4319bcd2b62f3afe1c15a2c59f77fc2cc4c20a9",
      "transaction_index": 0
    }
  ],
  "to_block": 12878300
}

Get gas price recommendations

Get Etherscan's low, average and high gas price recommendations in gwei, with the current base fee - the numbers behind the gas tracker on etherscan.io. Poll it on a schedule to alert when gas drops below a threshold.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
fast_gas_price_gweinumber
The high, fastest price.
last_blocknumber
The block the reading is based on.
propose_gas_price_gweinumber
The average, recommended price.
recent_gas_used_ratioslist
How full the last few blocks were.
safe_gas_price_gweinumber
The low, cheapest-but-slower price.
suggested_base_fee_gweinumber
The current EIP-1559 base fee.
Example output
{
  "chain_id": "1",
  "fast_gas_price_gwei": 0.55411917,
  "last_block": 23467872,
  "propose_gas_price_gwei": 0.496840168,
  "recent_gas_used_ratios": [
    0.405942555555556,
    0.784013777777778
  ],
  "safe_gas_price_gwei": 0.496839934,
  "suggested_base_fee_gwei": 0.496839934
}

Get native coin balance

Get an address's balance of the chain's own coin - ETH on Ethereum, BNB on BNB Chain, POL on Polygon. Returns the exact wei figure and the same number in whole coins.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Block numberblock_numbernumber
Read the balance as it stood at this block. Etherscan keeps only the last 128 blocks here, so this is for 'a moment ago', not history. Leave blank for the current balance.At least 0.

Outputs

addresstext
A 42-character address, lowercased.
balancenumber
The address's native coin balance, in wei (the exact on-chain integer).
balance_unitstext
The address's native coin balance, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
chain_idtext
The chain the call was made against, as its chain id.
Example output
{
  "address": "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae",
  "balance": 172774397764084972158218,
  "balance_units": "172774.397764084972158218",
  "chain_id": "1"
}

Get native coin balances for several addresses

Get the native coin balance of up to 20 addresses in one call - one request instead of twenty, which matters against a rate limit.

Inputs

AddressesaddresseslistRequired
The addresses to look up, up to 20 of them.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

balanceslist
One entry per address asked about.
chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
Example output
{
  "balances": [
    {
      "address": "0xddbd2b932c763ba5b1b7ae3b362eac3e8d40121a",
      "balance": 40891631566070000000000,
      "balance_units": "40891.63156607"
    },
    {
      "address": "0x63a9975ba31b0b9626b34300f7f627147df1f526",
      "balance": 332567136222827062478,
      "balance_units": "332.567136222827062478"
    }
  ],
  "chain_id": "1",
  "count": 2
}

Get the code at an address

Get the bytecode deployed at an address, and with it the answer to whether the address is a contract at all - an empty result means it is an ordinary wallet.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.

Outputs

addresstext
A 42-character address, lowercased.
bytecodetext
The deployed bytecode, or 0x when there is none.
chain_idtext
The chain the call was made against, as its chain id.
is_contracttrue/false
Whether anything is deployed there.
tagtext
The block the code was read at.
Example output
{
  "address": "0xa2b4c0af19cc16a6cfacce81f192b024d625817d",
  "bytecode": "0x3660008037602060003660003473273930d21e01ee25e4c219b6",
  "chain_id": "1",
  "is_contract": true,
  "tag": "latest"
}

Get the current gas price

Get the gas price a node is currently quoting, in wei and in gwei.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
gas_price_gweitext
The same price in gwei, as a decimal string.
gas_price_hextext
The price as the node returned it.
gas_price_weinumber
The gas price, in wei.
Example output
{
  "chain_id": "1",
  "gas_price_gwei": "0.497666226",
  "gas_price_hex": "0x1da9c8b2",
  "gas_price_wei": 497666226
}

Get the latest block number

Get the number of the most recent block on the chain - the natural first step for a workflow that reads a window of recent history.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

block_numbernumber
The latest block number.
block_number_hextext
The same number as the node returned it.
chain_idtext
The chain the call was made against, as its chain id.
Example output
{
  "block_number": 23467872,
  "block_number_hex": "0x1661760",
  "chain_id": "1"
}

Get the native coin price

Get the latest price of the chain's native coin in USD and BTC, with the moment each quote was taken.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

btc_quoted_atnumber
When the BTC price was taken, in unix seconds.
btc_quoted_at_isotext
When the BTC price was taken, as an ISO 8601 UTC timestamp.
chain_idtext
The chain the call was made against, as its chain id.
price_btcnumber
The price in bitcoin.
price_usdnumber
The price in US dollars.
usd_quoted_atnumber
When the USD price was taken, in unix seconds.
usd_quoted_at_isotext
When the USD price was taken, as an ISO 8601 UTC timestamp.
Example output
{
  "btc_quoted_at": 1759139509,
  "btc_quoted_at_iso": "2025-09-29T09:51:49+00:00",
  "chain_id": "1",
  "price_btc": 0.0368322132423383,
  "price_usd": 4129.30651044757,
  "usd_quoted_at": 1759139509,
  "usd_quoted_at_iso": "2025-09-29T09:51:49+00:00"
}

Get the native coin supply

Get the circulating supply of the chain's native coin. This figure leaves out staking rewards and burned fees - 'Get the native coin supply (detailed)' breaks those out.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
total_supplynumber
The circulating supply, in wei (the exact on-chain integer).
total_supply_unitstext
The circulating supply, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
Example output
{
  "chain_id": "1",
  "total_supply": 122373866217800000000000000,
  "total_supply_units": "122373866.2178"
}

Get the native coin supply (detailed)

Get the native coin's supply split into its moving parts: circulating supply, staking rewards issued, EIP-1559 fees burned, and the total withdrawn from the beacon chain. net_supply is issuance minus burn - the figure people mean by 'ETH supply'.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

burnt_feesnumber
Fees burned under EIP-1559, in wei (the exact on-chain integer).
burnt_fees_unitstext
Fees burned under EIP-1559, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
chain_idtext
The chain the call was made against, as its chain id.
net_supplynumber
Supply plus staking rewards, minus burn, in wei (the exact on-chain integer).
net_supply_unitstext
Supply plus staking rewards, minus burn, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
staking_rewardsnumber
Rewards issued to stakers, in wei (the exact on-chain integer).
staking_rewards_unitstext
Rewards issued to stakers, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
total_supplynumber
The circulating supply, in wei (the exact on-chain integer).
total_supply_unitstext
The circulating supply, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
withdrawn_totalnumber
Total withdrawn from the beacon chain, in wei (the exact on-chain integer).
withdrawn_total_unitstext
Total withdrawn from the beacon chain, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
Example output
{
  "burnt_fees": 4610942856337430575173814,
  "burnt_fees_units": "4610942.856337430575173814",
  "chain_id": "1",
  "net_supply": 120703250528552602424826186,
  "net_supply_units": "120703250.528552602424826186",
  "staking_rewards": 2940327167090033000000000,
  "staking_rewards_units": "2940327.167090033",
  "total_supply": 122373866217800000000000000,
  "total_supply_units": "122373866.2178",
  "withdrawn_total": 7618584348954597000000000,
  "withdrawn_total_units": "7618584.348954597"
}

Get the node count

Get how many discoverable nodes the network has right now.

Inputs

Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
datetext
The day the count is for, as YYYY-MM-DD.
node_countnumber
How many discoverable nodes there are.
Example output
{
  "chain_id": "1",
  "date": "2025-09-25",
  "node_count": 11786
}

Get token balance

Get how much of one ERC-20 token an address holds. The raw figure is in the token's smallest unit; the whole-unit companion is scaled by the token's decimals.

Inputs

Token contract addresscontract_addresstextRequired
The token's contract address.
AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

addresstext
The holder asked about.
balancenumber
The token balance, in the token's smallest unit (the exact on-chain integer).
balance_unitstext
The token balance, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
chain_idtext
The chain the call was made against, as its chain id.
contract_addresstext
The token asked about.
Example output
{
  "address": "0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae",
  "balance": 135499,
  "balance_units": "0.000000000000135499",
  "chain_id": "1",
  "contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7"
}

Get token total supply

Get how much of an ERC-20 token is in circulation.

Inputs

Token contract addresscontract_addresstextRequired
The token's contract address.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
contract_addresstext
The token asked about.
total_supplynumber
The circulating supply, in the token's smallest unit (the exact on-chain integer).
total_supply_unitstext
The circulating supply, in whole units, as a decimal string. A string because a float cannot hold it without rounding.
Example output
{
  "chain_id": "1",
  "contract_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
  "total_supply": 21265524714464,
  "total_supply_units": "0.000021265524714464"
}

List blocks validated by an address

List the blocks a validator or mining address produced, and what each one paid it.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Block typeblock_typetext
Full blocks, or the uncle blocks of pre-Merge Ethereum.One of: blocks (Full blocks), uncles (Uncle blocks (pre-Merge only)). Default: blocks.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.

Outputs

blockslist
The blocks this address produced, newest first.
chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
Example output
{
  "blocks": [
    {
      "block_number": 20226140,
      "block_reward": 33424103001400554,
      "block_reward_units": "0.033424103001400554",
      "timestamp": 1720011623,
      "timestamp_iso": "2024-07-03T11:40:23+00:00"
    }
  ],
  "chain_id": "1",
  "count": 1
}

List ERC-1155 token transfers

List ERC-1155 transfers for a wallet, for a contract, or for both. ERC-1155 moves a quantity of a token id at a time, so each transfer carries both.

Inputs

Wallet addressaddresstext
The wallet whose transfers you want. Give a wallet, a token contract, or both (both narrows to one wallet's transfers of one token).
Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The ERC-1155 transfers.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0xa5da536dfbe8125eb146114e2ee0d0bdef2b20483aacbf30fed6b60f092059e6",
      "block_number": 13472395,
      "confirmations": 9995266,
      "contract_address": "0x76be3b62873462d2142405439777e971754e8e77",
      "cumulative_gas_used": 11739203,
      "from_address": "0x1e63326a84d2fa207bdfa856da9278a93deba418",
      "function_name": null,
      "gas": 140000,
      "gas_price": 52898577246,
      "gas_price_gwei": "52.898577246",
      "gas_used": 105030,
      "hash": "0x643b15f3ffaad5d38e33e5872b4ebaa7a643eda8b50ffd5331f682934ee65d4d",
      "method_id": "0x3e6b214b",
      "nonce": 41,
      "quantity": 1,
      "timestamp": 1634973285,
      "timestamp_iso": "2021-10-23T07:14:45+00:00",
      "to_address": "0x83f564d180b58ad9a02a449105568189ee7de8cb",
      "token_id": "10371",
      "token_name": "parallel",
      "token_symbol": "LL",
      "transaction_index": 100
    }
  ]
}

List ERC-20 token transfers

List ERC-20 token transfers for a wallet, for a token, or for one wallet's transfers of one token. Each transfer carries the token's name, symbol and decimals, and the amount in both raw and whole units.

Inputs

Wallet addressaddresstext
The wallet whose transfers you want. Give a wallet, a token contract, or both (both narrows to one wallet's transfers of one token).
Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The ERC-20 transfers.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0x022c5e6a3d2487a8ccf8946a2ffb74938bf8e5c8a3f6d91b41c56378a96b5c37",
      "block_number": 4730207,
      "confirmations": 18737452,
      "contract_address": "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
      "cumulative_gas_used": 2523379,
      "from_address": "0x642ae78fafbb8032da552d619ad43f1d81e4dd7c",
      "function_name": "redeem()",
      "gas": 940000,
      "gas_price": 32010000000,
      "gas_price_gwei": "32.01",
      "gas_used": 77759,
      "hash": "0xe8c208398bd5ae8e4c237658580db56a2a94dfa0ca382c99b776fa6e7d31d5b4",
      "method_id": "0xbe040fb0",
      "nonce": 406,
      "timestamp": 1513240363,
      "timestamp_iso": "2017-12-14T08:32:43+00:00",
      "to_address": "0x4e83362442b8d1bec281594cea3050c8eb01311c",
      "token_decimals": 18,
      "token_name": "Maker",
      "token_symbol": "MKR",
      "transaction_index": 81,
      "value": 5901522149285533025181,
      "value_units": "5901.522149285533025181"
    }
  ]
}

List ERC-721 (NFT) transfers

List NFT transfers for a wallet, for a collection, or for one wallet's transfers within one collection. Each transfer names the exact token id that moved.

Inputs

Wallet addressaddresstext
The wallet whose transfers you want. Give a wallet, a token contract, or both (both narrows to one wallet's transfers of one token).
Token contract addresscontract_addresstext
Only include transfers of this token. Give a wallet, a token contract, or both.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transferslist
The ERC-721 transfers.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transfers": [
    {
      "block_hash": "0x4be19c278bfaead5cb0bc9476fa632e2447f6e6259e0303af210302d22779a24",
      "block_number": 4708120,
      "confirmations": 18759540,
      "contract_address": "0x06012c8cf97bead5deae237070f9587f8e7a266d",
      "cumulative_gas_used": 4880352,
      "from_address": "0xb1690c08e213a35ed9bab7b318de14420fb57d8c",
      "function_name": "bid(uint256 _tokenId)",
      "gas": 158820,
      "gas_price": 40000000000,
      "gas_price_gwei": "40",
      "gas_used": 60508,
      "hash": "0x031e6968a8de362e4328d60dcc7f72f0d6fc84284c452f63176632177146de66",
      "method_id": "0x454a2ab3",
      "nonce": 0,
      "timestamp": 1512907118,
      "timestamp_iso": "2017-12-10T11:58:38+00:00",
      "to_address": "0x6975be450864c02b4613023c2152ee0743572325",
      "token_decimals": 0,
      "token_id": "202106",
      "token_name": "CryptoKitties",
      "token_symbol": "CK",
      "transaction_index": 81
    }
  ]
}

List internal transactions for an address

List the internal transactions that touched an address - the value moves a contract made on its own, which never appear in the normal transaction list. Withdrawals from an exchange contract or a DeFi position land here.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
internal_transactionslist
The internal transactions, in the order asked for.
Example output
{
  "chain_id": "1",
  "count": 1,
  "internal_transactions": [
    {
      "block_number": 13481773,
      "contract_address": null,
      "error_code": null,
      "from_address": "0x3909336de913344701c6f096502d26208210b39f",
      "gas": 101300,
      "gas_used": 13898,
      "hash": "0x8b440f5ec0e986589517b131c5b75e921f2768b9912f028d2cdb009d759036ab",
      "input_data": null,
      "succeeded": true,
      "timestamp": 1635100060,
      "timestamp_iso": "2021-10-24T18:27:40+00:00",
      "to_address": "0xff62dfadca3b5643d0b283571fe154d886580c0c",
      "trace_id": "3",
      "type": "call",
      "value": 1159078546481168231,
      "value_units": "1.159078546481168231"
    }
  ]
}

List internal transactions of one transaction

Break one transaction open and list every value move it set off inside contracts. This is what shows where the money actually went in a swap or a multi-step contract call.

Inputs

Transaction hashtransaction_hashtextRequired
The 66-character transaction hash, starting with 0x.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
internal_transactionslist
The internal transactions this transaction set off.
transaction_hashtext
A 66-character hash, lowercased.
Example output
{
  "chain_id": "1",
  "count": 1,
  "internal_transactions": [
    {
      "block_number": 13481773,
      "contract_address": null,
      "error_code": null,
      "from_address": "0x3909336de913344701c6f096502d26208210b39f",
      "gas": 101300,
      "gas_used": 13898,
      "hash": "0x8b440f5ec0e986589517b131c5b75e921f2768b9912f028d2cdb009d759036ab",
      "input_data": null,
      "succeeded": true,
      "timestamp": 1635100060,
      "timestamp_iso": "2021-10-24T18:27:40+00:00",
      "to_address": "0xff62dfadca3b5643d0b283571fe154d886580c0c",
      "trace_id": "3",
      "type": "call",
      "value": 1159078546481168231,
      "value_units": "1.159078546481168231"
    }
  ],
  "transaction_hash": "0x8b440f5ec0e986589517b131c5b75e921f2768b9912f028d2cdb009d759036ab"
}

List L2 deposits for an address

List an address's deposits from Ethereum onto an L2 chain, each linked back to the L1 transaction that started it. Set the Chain to the L2 you are asking about.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
depositslist
The deposits onto this chain.
Example output
{
  "chain_id": "10",
  "count": 1,
  "deposits": [
    {
      "block_hash": "0xef2ff158c8b12be842429f4a8cde58bfa6a389c5274b46f8a1dd2ee7f958ca4d",
      "block_number": 132992375,
      "cumulative_gas_used": 169497,
      "error_description": null,
      "from_address": "0x36bde71c97b33cc4729cf772ae268934f7ab70b2",
      "gas": 490798,
      "gas_price": 0,
      "gas_price_gwei": "0",
      "gas_used": 117234,
      "hash": "0x64ccd0cfa9f333578b36227492f3bc7f5f3ec4bfa82cdc46f82884db680d8e5b",
      "input_data": "0xd764ad0b0001",
      "l1_transaction_hash": "0x303bd05c47e62e1243a33210e535ebc70a7567e53a9972fbdef52ee5bcda5acb",
      "l1_transaction_origin": "0x36bde71c97b33cc4729cf772ae268934f7ab70b2",
      "nonce": 520502,
      "queue_index": 999999,
      "succeeded": true,
      "timestamp": 1741583527,
      "timestamp_iso": "2025-03-10T05:12:07+00:00",
      "to_address": "0x4200000000000000000000000000000000000007",
      "token_address": "ETH",
      "token_sent_from": null,
      "token_sent_to": "0x80f3950a4d371c43360f292a4170624abd9eed03",
      "token_value": 598200000000000,
      "token_value_units": "0.0005982",
      "value": 598200000000000,
      "value_units": "0.0005982"
    }
  ]
}

List L2 withdrawals for an address

List an address's withdrawals from an L2 chain back to Ethereum. Set the Chain to the L2 you are asking about.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
withdrawalslist
The withdrawals off this chain.
Example output
{
  "chain_id": "10",
  "count": 1,
  "withdrawals": [
    {
      "block_hash": "0xef2ff158c8b12be842429f4a8cde58bfa6a389c5274b46f8a1dd2ee7f958ca4d",
      "block_number": 132992375,
      "cumulative_gas_used": 169497,
      "error_description": null,
      "from_address": "0x36bde71c97b33cc4729cf772ae268934f7ab70b2",
      "gas": 490798,
      "gas_price": 0,
      "gas_price_gwei": "0",
      "gas_used": 117234,
      "hash": "0x64ccd0cfa9f333578b36227492f3bc7f5f3ec4bfa82cdc46f82884db680d8e5b",
      "input_data": "0xd764ad0b0001",
      "l1_transaction_hash": "0x303bd05c47e62e1243a33210e535ebc70a7567e53a9972fbdef52ee5bcda5acb",
      "l1_transaction_origin": "0x36bde71c97b33cc4729cf772ae268934f7ab70b2",
      "nonce": 520502,
      "queue_index": 999999,
      "succeeded": true,
      "timestamp": 1741583527,
      "timestamp_iso": "2025-03-10T05:12:07+00:00",
      "to_address": "0x4200000000000000000000000000000000000007",
      "token_address": "ETH",
      "token_sent_from": null,
      "token_sent_to": "0x80f3950a4d371c43360f292a4170624abd9eed03",
      "token_value": 598200000000000,
      "token_value_units": "0.0005982",
      "value": 598200000000000,
      "value_units": "0.0005982"
    }
  ]
}

List Plasma bridge deposits for an address

List the Plasma bridge deposits an address received. Polygon's older bridge; set the Chain to Polygon.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
depositslist
The Plasma deposits this address received.
Example output
{
  "chain_id": "137",
  "count": 1,
  "deposits": [
    {
      "address": "0x4880bd4695a8e59dc527d124085749744b6c988e",
      "amount": 2341706540000000000,
      "amount_units": "2.34170654",
      "block_number": 51844560,
      "contract_address": "0x0000000000000000000000000000000000001010",
      "from_address": "0x0000000000000000000000000000000000000000",
      "hash": "0xf645deb2b6fbb8b76ccbcf4bde782e28d3520e8a30e9a568b9b8c526e2fd8434",
      "timestamp": 1704181285,
      "timestamp_iso": "2024-01-02T07:41:25+00:00",
      "token_decimals": 18,
      "token_name": "Polygon Token",
      "token_symbol": "POL"
    }
  ]
}

List staking withdrawals to an address

List the beacon-chain withdrawals paid to an address - the staking rewards and exits that arrive without a transaction, and so never show up in a transaction list. Amounts are in gwei on the consensus layer and are also given in whole coins.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
withdrawalslist
The withdrawals paid to this address.
Example output
{
  "chain_id": "1",
  "count": 1,
  "withdrawals": [
    {
      "address": "0xb9d7934878b5fb9610b3fe8a5e441e8fad7e293f",
      "amount_ether": "3.402931175",
      "amount_gwei": 3402931175,
      "block_number": 17034877,
      "timestamp": 1681338599,
      "timestamp_iso": "2023-04-12T22:29:59+00:00",
      "validator_index": 117823,
      "withdrawal_index": 13
    }
  ]
}

List supported chains

List every chain the Etherscan API covers, with each one's chain id, block explorer and current status. One API key works on all of them; the chain id is what every other action's Chain field holds.

Inputs

None.

Outputs

chainslist
The supported chains, in Etherscan's own order.
countnumber
How many records this step returned.
Example output
{
  "chains": [
    {
      "api_url": "https://api.etherscan.io/v2/api?chainid=1",
      "block_explorer_url": "https://etherscan.io/",
      "chain_id": "1",
      "comment": null,
      "is_available": true,
      "name": "Ethereum Mainnet",
      "status_code": 1
    },
    {
      "api_url": "https://api.etherscan.io/v2/api?chainid=8453",
      "block_explorer_url": "https://basescan.org/",
      "chain_id": "8453",
      "comment": null,
      "is_available": true,
      "name": "Base Mainnet",
      "status_code": 1
    }
  ],
  "count": 2
}

List transactions for an address

List the transactions an address sent or received, newest first, each with its value, gas, fee, the function it called and whether it succeeded. These are the transactions a wallet signed; value moved inside a contract call shows up under 'List internal transactions' instead.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
From blockstart_blocknumber
Only include results from this block onwards. Leave blank to start at the first block.At least 0.
To blockend_blocknumber
Only include results up to this block. Leave blank to run to the latest block.At least 0.
Pagepagenumber
Which page of results to return, counting from 1.At least 1.
Results per pageresults_per_pagenumber
How many results to return per page, up to 10000.From 1 to 10000.
Ordersorttext
Which end of the history to return first. Defaults to newest first.One of: asc (Oldest first), desc (Newest first). Default: desc.

Outputs

chain_idtext
The chain the call was made against, as its chain id.
countnumber
How many records this step returned.
transactionslist
The transactions, in the order asked for.
Example output
{
  "chain_id": "1",
  "count": 1,
  "transactions": [
    {
      "block_hash": "0xf5646226f819fbdd6b2f1cb99de6e5d17da3d876ec166e69f4e9736c8ebf7ab4",
      "block_number": 23467053,
      "confirmations": 589,
      "contract_address": null,
      "cumulative_gas_used": 22498564,
      "error_description": null,
      "from_address": "0x2449ecef5012f0a0e153b278ef4fcc9625bc4c78",
      "function_name": "delegate(address to)",
      "gas": 73271,
      "gas_price": 238744402,
      "gas_price_gwei": "0.238744402",
      "gas_used": 48847,
      "hash": "0xf9db905d77704596d3600816bc70201586cfeec13bcf576320e2f38d6ca851a0",
      "input_data": "0x5c19a95c0000000000000000000000002449ecef5012f0a0e153b278ef4fcc9625bc4c78",
      "method_id": "0x5c19a95c",
      "nonce": 8,
      "succeeded": true,
      "timestamp": 1759129619,
      "timestamp_iso": "2025-09-29T07:06:59+00:00",
      "to_address": "0xc5102fe9359fd9a28f877a67e36b0f050d81a3cc",
      "transaction_fee": 11661947804494,
      "transaction_fee_units": "0.000011661947804494",
      "transaction_index": 184,
      "value": 0,
      "value_units": "0"
    }
  ]
}

Read a contract storage slot

Read one 32-byte slot of a contract's storage directly - the way to see state a contract never exposed through a getter.

Inputs

AddressaddresstextRequired
The wallet or contract address to look at.
Storage slotpositionnumberRequired
Which slot to read, counting from 0.At least 0.
Chainchain_idtext
Which chain to query. Leave blank for Ethereum mainnet. The same key reaches every chain in this list, though a handful of them - Base, OP Mainnet, BNB Smart Chain and Avalanche among them - need a paid Etherscan plan, and say so if you pick one.Default: 1.
Blockblock_tagtext
Which block to read the state at. Defaults to the latest block.One of: latest (Latest block), earliest (Earliest block), pending (Pending block). Default: latest.

Outputs

addresstext
A 42-character address, lowercased.
chain_idtext
The chain the call was made against, as its chain id.
positionnumber
The slot read.
tagtext
The block it was read at.
value_hextext
The slot's raw 32-byte value.
value_numbernumber
The same value read as a number.
Example output
{
  "address": "0x6e03d9cce9d60f3e9f2597e13cd4c54c55330cfd",
  "chain_id": "1",
  "position": 0,
  "tag": "latest",
  "value_hex": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "value_number": 0
}

On this page

ActionsCall a contract (read-only)Check a transaction's receipt statusCheck whether a transaction revertedCount a block's transactionsCount a block's transactions by kindEstimate confirmation time for a gas priceEstimate gas for a transactionFind ERC-1155 transfers between addressesFind ERC-20 transfers between addressesFind ERC-721 (NFT) transfers between addressesFind internal transactions between addressesFind transactions between addressesGet a blockGet a transactionGet a transaction by its position in a blockGet a transaction receiptGet an address's transaction count (nonce)Get an uncle blockGet block number by date and timeGet block rewardGet chain size over timeGet contract ABIGet contract deployersGet contract source codeGet countdown to a future blockGet event logsGet gas price recommendationsGet native coin balanceGet native coin balances for several addressesGet the code at an addressGet the current gas priceGet the latest block numberGet the native coin priceGet the native coin supplyGet the native coin supply (detailed)Get the node countGet token balanceGet token total supplyList blocks validated by an addressList ERC-1155 token transfersList ERC-20 token transfersList ERC-721 (NFT) transfersList internal transactions for an addressList internal transactions of one transactionList L2 deposits for an addressList L2 withdrawals for an addressList Plasma bridge deposits for an addressList staking withdrawals to an addressList supported chainsList transactions for an addressRead a contract storage slot