# Etherscan API

> Etherscan returns Ethereum gas prices, wallet balances, and transaction details as a workflow and API.

Etherscan returns current Ethereum gas prices, estimated wait times, and estimated ETH transfer costs without requiring input. Get wallet returns ETH balances, displayed token holdings, and newest confirmed transactions for an Ethereum address or ENS name. Check transaction status returns status, confirmations, value, fees, and token transfers for a transaction hash or Etherscan transaction link.

- Page: https://fous.com/tools/etherscan
- Handle: `@etherscan`
- Category: [Blockchain](https://fous.com/tools/category/blockchain)
- Source website: https://etherscan.io
- Last verified: Sep 30, 2026

## Methods

### Check transaction status

Operation `check_transaction_status`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Check whether an Ethereum transaction succeeded, failed, or is pending, with confirmations, value, fee and token transfers. USD amounts are Etherscan’s displayed estimates; pending transactions have no confirmed fee or block time.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `transaction` | string | yes | `"https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"` | Transaction hash or Etherscan transaction link, for example 0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "transaction"
  ],
  "properties": {
    "transaction": {
      "type": "string",
      "description": "Transaction hash or Etherscan transaction link, for example 0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c.",
      "examples": [
        "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c",
        "0xc77cd6b7002fc74c8b1ed74ac3c4a5e9f2d149afdfb26d6b70ae9002de910842",
        "0x592a876dba598d9f0e1b75e2a233560ea4a97b5bdc5b3d0b7b0a63e40fbf71d7"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "transaction": "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"
    },
    {
      "transaction": "0xc77cd6b7002fc74c8b1ed74ac3c4a5e9f2d149afdfb26d6b70ae9002de910842"
    },
    {
      "transaction": "0x592a876dba598d9f0e1b75e2a233560ea4a97b5bdc5b3d0b7b0a63e40fbf71d7"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `to` | string or null | `"0x6FD7D47a09eFaEa0c1Be5355bee97502Ec06d3D7"` | Recipient or interacted-with contract address. |
| `from` | string or null | `"0x5079D8A1160657cf20290E9A3A3cf0fd30B835a0"` | Sender address. |
| `nonce` | integer or null | `40` | Transaction nonce. |
| `status` | string | `"Failed"` | Success, Failed or Pending. |
| `fee_eth` | number or null | `0.000019810474880518` | Paid transaction fee in ETH, or null while pending. |
| `fee_usd` | number or null | `0.05` | Estimated paid transaction fee in USD, or null while pending. |
| `gas_used` | integer or null | `61747` | Gas units spent. |
| `date_time` | string or null | `"2025-08-23T13:09:59Z"` | Block time in UTC, or null while pending. |
| `value_eth` | number or null | `0` | ETH transferred, in ETH. |
| `value_usd` | number or null | `0` | Estimated value, in USD. |
| `block_number` | integer or null | `23203992` | Included block number. |
| `confirmations` | integer | `2876531` | Confirmed blocks since the transaction was included, or zero when pending. |
| `etherscan_link` | string | `"https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"` | Transaction page link. |
| `token_transfers` | array |  | ERC-20 and NFT token transfers shown on the transaction page. |
| `token_transfers[].to` | string | `"0xBde99b39E2B0716f63E10C44625F6366936a4522"` | Receiving address. |
| `token_transfers[].from` | string | `"0xAe38b2153413f1f8438340963F298E39e3b25E04"` | Sending address. |
| `token_transfers[].token` | string | `"Tether USD ( USDT )"` | Token name and symbol, with token ID for NFTs. |
| `token_transfers[].amount` | number or null | `103` | Tokens transferred. |

**Example input**

```json
{
  "transaction": "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"
}
```

**Example output**

```json
{
  "to": "0x6FD7D47a09eFaEa0c1Be5355bee97502Ec06d3D7",
  "from": "0x5079D8A1160657cf20290E9A3A3cf0fd30B835a0",
  "nonce": 40,
  "status": "Failed",
  "fee_eth": 0.000019810474880518,
  "fee_usd": 0.05,
  "gas_used": 61747,
  "date_time": "2025-08-23T13:09:59Z",
  "value_eth": 0,
  "value_usd": 0,
  "block_number": 23203992,
  "confirmations": 2876531,
  "etherscan_link": "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c",
  "token_transfers": []
}
```

### Get gas price

Operation `get_gas_price`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get current Ethereum gas prices and estimated 21,000-gas ETH transfer costs from Etherscan. Wait times are estimates and may be unavailable.

**Input**

No input.

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `currency` | string | `"USD"` | Currency for transfer costs and ETH price. |
| `page_url` | string | `"https://etherscan.io/gastracker"` | Etherscan gas tracker page. |
| `reading_time` | string | `"2026-09-29T03:31:34+00:00"` | UTC time the live gas data was read. |
| `base_fee_gwei` | number | `1.017` | Current Ethereum base fee in gwei. |
| `eth_price_usd` | number | `2665.77` | ETH price in USD shown by Etherscan. |
| `low_wait_time` | string or null | `"~ 2 mins 0 secs"` | Estimated standard confirmation wait, or null if not shown. |
| `high_wait_time` | string or null | `"~ 30 secs"` | Estimated rapid confirmation wait, or null if not shown. |
| `average_wait_time` | string or null | `"~ 30 secs"` | Estimated fast confirmation wait, or null if not shown. |
| `low_gas_price_gwei` | number | `1.017` | Standard gas price in gwei. |
| `high_gas_price_gwei` | number | `1.217` | Rapid gas price in gwei. |
| `low_transfer_cost_usd` | number | `0.057` | Estimated USD cost of a 21,000-gas ETH transfer at the low price. |
| `average_gas_price_gwei` | number | `1.117` | Fast gas price in gwei. |
| `high_transfer_cost_usd` | number | `0.068` | Estimated USD cost of a 21,000-gas ETH transfer at the high price. |
| `average_transfer_cost_usd` | number | `0.063` | Estimated USD cost of a 21,000-gas ETH transfer at the average price. |

**Example input**

```json
{}
```

**Example output**

```json
{
  "currency": "USD",
  "page_url": "https://etherscan.io/gastracker",
  "reading_time": "2026-09-29T03:31:34+00:00",
  "base_fee_gwei": 1.017,
  "eth_price_usd": 2665.77,
  "low_wait_time": "~ 2 mins 0 secs",
  "high_wait_time": "~ 30 secs",
  "average_wait_time": "~ 30 secs",
  "low_gas_price_gwei": 1.017,
  "high_gas_price_gwei": 1.217,
  "low_transfer_cost_usd": 0.057,
  "average_gas_price_gwei": 1.117,
  "high_transfer_cost_usd": 0.068,
  "average_transfer_cost_usd": 0.063
}
```

### Get wallet

Operation `get_wallet`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

See an Ethereum wallet’s ETH balance, USD value, largest displayed ERC-20 holdings and newest confirmed transactions. Pending transactions are excluded; unpriced holdings have no USD value.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `wallet` | string | yes | `"vitalik.eth"` | Ethereum address or ENS name, for example vitalik.eth. |
| `max_transactions` | integer | no | `10` | Maximum confirmed transactions to return, for example 10. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "wallet"
  ],
  "properties": {
    "wallet": {
      "type": "string",
      "description": "Ethereum address or ENS name, for example vitalik.eth.",
      "examples": [
        "vitalik.eth",
        "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
      ]
    },
    "max_transactions": {
      "type": "integer",
      "default": 10,
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum confirmed transactions to return, for example 10.",
      "x-fous-developer": true,
      "examples": [
        10,
        50
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "wallet": "vitalik.eth",
      "max_transactions": 10
    },
    {
      "wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "max_transactions": 50
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `link` | string | `"https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"` | Etherscan wallet page. |
| `address` | string | `"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"` | Ethereum wallet address. |
| `ens_name` | string or null | `"vitalik.eth"` | ENS name, if shown. |
| `eth_balance` | number | `5.721681785331997` | ETH held. |
| `eth_value_usd` | number or null | `15262.41` | Value in US dollars, or null when not shown. |
| `token_holdings` | array |  | Up to 20 token holdings sorted by displayed USD value. |
| `token_holdings[].link` | string | `"https://etherscan.io/token/0xdd974d5c2e2928dea5f71b9825b8b646686bd200?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"` | Etherscan page for this holding. |
| `token_holdings[].amount` | number | `700008.53137379` | Token units held. |
| `token_holdings[].symbol` | string or null | `"KNC"` | Token ticker symbol. |
| `token_holdings[].value_usd` | number or null | `99203.11` | Value in US dollars, or null when not shown. |
| `token_holdings[].token_name` | string | `"KyberNetwork"` | Name of the token. |
| `recent_transactions` | array |  | Newest confirmed wallet transactions first. |
| `recent_transactions[].to` | string or null | `"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"` | Receiving address or label. |
| `recent_transactions[].from` | string or null | `"0x7c59bc02fb160a3a0225d69E9fb125D328ED7986"` | Sending address or label. |
| `recent_transactions[].link` | string | `"https://etherscan.io/tx/0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd"` | Etherscan transaction page. |
| `recent_transactions[].status` | string | `"Success"` | Final transaction status. |
| `recent_transactions[].fee_eth` | number | `0.00001297` | Transaction fee in ETH. |
| `recent_transactions[].date_time` | string | `"2026-09-28T21:53:47Z"` | Confirmed transaction time in UTC, ISO 8601. |
| `recent_transactions[].direction` | string | `"In"` | Wallet direction. |
| `recent_transactions[].amount_eth` | number | `0` | Amount of ETH transferred. |
| `recent_transactions[].block_number` | integer | `26078766` | Confirmed block number. |
| `recent_transactions[].transaction_hash` | string | `"0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd"` | Transaction hash. |

**Example input**

```json
{
  "wallet": "vitalik.eth",
  "max_transactions": 10
}
```

**Example output**

```json
{
  "link": "https://etherscan.io/address/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "ens_name": "vitalik.eth",
  "eth_balance": 5.721681785331997,
  "eth_value_usd": 15262.41,
  "token_holdings": [
    {
      "link": "https://etherscan.io/token/0xdd974d5c2e2928dea5f71b9825b8b646686bd200?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "amount": 700008.53137379,
      "symbol": "KNC",
      "value_usd": 99203.11,
      "token_name": "KyberNetwork"
    },
    {
      "link": "https://etherscan.io/token/0xc18360217d8f7ab5e7c516566761ea12ce7f9d72?a=0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "amount": 1144.03607606,
      "symbol": "ENS",
      "value_usd": 7493.44,
      "token_name": "Ethereum Name Service"
    }
  ],
  "recent_transactions": [
    {
      "to": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "from": "0x7c59bc02fb160a3a0225d69E9fb125D328ED7986",
      "link": "https://etherscan.io/tx/0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd",
      "status": "Success",
      "fee_eth": 0.00001297,
      "date_time": "2026-09-28T21:53:47Z",
      "direction": "In",
      "amount_eth": 0,
      "block_number": 26078766,
      "transaction_hash": "0xad8afd08ece2497d8895b7bb7beb54e4fbae97db6df0a2d94b5c20d372d869bd"
    },
    {
      "to": "0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63",
      "from": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
      "link": "https://etherscan.io/tx/0x5ada7b3be9e868cc19a13673a2924b68060217b6d07db35becd7253709918e11",
      "status": "Success",
      "fee_eth": 0.00000548,
      "date_time": "2026-09-27T10:36:35Z",
      "direction": "Out",
      "amount_eth": 0,
      "block_number": 26068237,
      "transaction_hash": "0x5ada7b3be9e868cc19a13673a2924b68060217b6d07db35becd7253709918e11"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@etherscan",
  "visibility": "public",
  "operation": "check_transaction_status",
  "version": 1,
  "input": {
    "transaction": "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@etherscan\",\n  \"visibility\": \"public\",\n  \"operation\": \"check_transaction_status\",\n  \"version\": 1,\n  \"input\": {\n    \"transaction\": \"https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@etherscan",
  "visibility": "public",
  "operation": "check_transaction_status",
  "version": 1,
  "input": {
    "transaction": "https://etherscan.io/tx/0x9c62122492b32fe4310dfae33090b57589d92927538fbdb8fe8ea2070c25dd8c"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/etherscan`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `check_transaction_status`: Check transaction status. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_gas_price`: Get gas price. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `get_wallet`: Get wallet. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-etherscan https://api.fous.com/mcp/tools/etherscan --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Compare standard, fast, and rapid Ethereum gas prices.
- Review a wallet’s ETH balance and displayed token holdings.
- Track a wallet’s newest confirmed transactions.
- Check whether an Ethereum transaction succeeded, failed, or is pending.
- Review transaction fees, confirmations, and token transfers.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this Etherscan tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a Etherscan account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from etherscan.io when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 30, 2026.

### What are current Ethereum gas prices?

Get gas price returns current base fee, standard, fast, and rapid gas prices, and estimated wait times when shown.

### What is an Ethereum wallet’s balance?

Get wallet returns the ETH balance, displayed USD value, token holdings, and newest confirmed transactions for an address or ENS name.

### Did an Ethereum transaction succeed?

Check transaction status returns whether a transaction succeeded, failed, or is pending, along with confirmations and other transaction details.

## Related

- [mempool.space API](https://fous.com/tools/mempool-space.md): mempool.space provides Bitcoin mempool, transaction fee, block, price, and address activity data, including current fee estimates and up to 50 recent address transactions.
- [GasBuddy API](https://fous.com/tools/gasbuddy.md): GasBuddy finds stations and community-reported fuel prices in the US and Canada, with nearby prices that may be missing or out of date and regional averages that may lag the day.
- [US Energy Information Administration API](https://fous.com/tools/us-energy-information-administration.md): US Energy Information Administration provides official energy statistics and analysis, including latest weekly fuel prices and preliminary monthly state electricity prices with historical comparisons.
- [AAA API](https://fous.com/tools/aaa.md): AAA daily gas price averages for the United States, states and metro areas.
- [Coinbase API](https://fous.com/tools/coinbase.md): Coinbase provides public cryptocurrency prices and market overviews, including changing spot, buy, and sell quotes and 24-hour statistics; unavailable page facts may be missing.
- [FuelEconomy.gov API](https://fous.com/tools/fueleconomy-gov.md): FuelEconomy.gov provides official vehicle fuel economy ratings, driving range, emissions, five-year savings, and annual fuel costs based on current fuel prices and EPA’s 15,000-mile annual driving assumption.
- [Stock Analysis API](https://fous.com/tools/stock-analysis.md): Stock Analysis returns free-period company statements, statistics current as of its displayed date, typically top-25 ETF holdings, and US IPOs since 2019 with potentially missing prices or returns.
- [CoinGecko API](https://fous.com/tools/coingecko.md): CoinGecko returns cryptocurrency prices and histories, sector rankings and details, and trending coins; non-USD historical values cover 365 days, histories 7–365 days, and today’s prices may change.
- [All Blockchain tools](https://fous.com/tools/category/blockchain)
