Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/blockchain-7-ethereum-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
title: Blockchain 7 Ethereum API
version: 1.0.0
contact:
email: api@blockchain.com
x-guidance: Free endpoints under /public/* return blockchain explorer data (Solana, Bitcoin, Bitcoin Cash and Ethereum blocks, transactions, addresses and token balances) plus Bitcoin network charts, no payment required. Every endpoint also has an AI-agent-facing, pay-per-call mirror under /public/x402/* with an identical request/response shape, gated by x402 payment (see each paid operation's x-payment-info and 402 response). Use the free path for normal API access; use the x402/ path when paying per-request as an autonomous agent.
description: 'Operations tagged Ethereum across 2 of this provider''s published API definitions: blockchain-7-api-ucp.json, blockchain-7-api-acp.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
security:
- ApiKeyAuth: []
- {}
tags:
- name: Ethereum
description: ETH blockchain endpoints
paths:
/x402/eth/address:
post:
summary: Get address wallet info and transactions (paid via x402)
operationId: getEthWalletX402
x-x402-price: 1500
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthWalletRequest'
example:
network: ETH
address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
page: 0
size: 20
responses:
'200':
description: Address wallet info with transactions
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthWalletResponse'
'404':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001500'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
/x402/eth/address/tokens:
post:
summary: Get ERC-20 token holdings for an address (paid via x402)
operationId: getEthAddressTokensX402
x-x402-price: 1000
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthAddressTokensRequest'
example:
network: ETH
address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
responses:
'200':
description: Token holdings
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthAddressTokensResponse'
'404':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001000'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
/x402/eth/address/internal-transactions:
post:
summary: Get internal transactions for an address (paid via x402)
operationId: getEthAddressInternalTransactionsX402
x-x402-price: 1500
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthAddressInternalTxsRequest'
example:
network: ETH
address: '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe'
page: 0
size: 20
responses:
'200':
description: Internal transactions
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthAddressInternalTxsResponse'
'404':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001500'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
/x402/eth/transaction:
post:
summary: Get Ethereum transaction details (paid via x402)
operationId: getEthTransactionX402
x-x402-price: 1000
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthTransactionRequest'
example:
network: ETH
txId: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060'
responses:
'200':
description: Transaction details
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthTransactionResponse'
'404':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001000'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
/x402/eth/blocks:
post:
summary: Get latest Ethereum blocks (paid via x402)
operationId: getEthLatestBlocksX402
x-x402-price: 2000
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthLatestBlocksRequest'
example:
network: ETH
limit: 10
responses:
'200':
description: Latest blocks
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthLatestBlocksResponse'
'400':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002000'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
/x402/eth/block:
post:
summary: Get Ethereum block by number or hash (paid via x402)
operationId: getEthBlockX402
x-x402-price: 3000
tags:
- Ethereum
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthBlockRequest'
example:
network: ETH
blockId: 21000000
responses:
'200':
description: Block details
content:
application/json:
schema:
$ref: '#/components/schemas/GetEthBlockResponse'
'400':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'500':
$ref: '#/components/responses/Error'
'402':
description: Payment Required
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.003000'
protocols:
- x402: {}
servers:
- url: https://api.blockchain.info/explorer-gateway-kt
components:
schemas:
EthBlockSummary:
type: object
required:
- blockId
properties:
blockId:
type: integer
format: int64
hash:
type: string
nullable: true
parentHash:
type: string
nullable: true
sha3Uncles:
type: string
nullable: true
transactionsRoot:
type: string
nullable: true
stateRoot:
type: string
nullable: true
logsBloom:
type: string
nullable: true
difficulty:
type: string
nullable: true
totalDifficulty:
type: string
nullable: true
gasLimit:
type: integer
format: int64
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
extraData:
type: string
nullable: true
timestamp:
type: integer
format: int64
nullable: true
size:
type: integer
format: int64
nullable: true
miner:
type: string
nullable: true
nonce:
type: string
nullable: true
staticReward:
type: string
nullable: true
blockReward:
type: string
nullable: true
totalUncleReward:
type: string
nullable: true
totalFees:
type: string
nullable: true
transactionCount:
type: integer
nullable: true
internalTransactionCount:
type: integer
nullable: true
GetEthBlockResponse:
type: object
properties:
blockId:
type: integer
format: int64
nullable: true
hash:
type: string
nullable: true
parentHash:
type: string
nullable: true
sha3Uncles:
type: string
nullable: true
transactionsRoot:
type: string
nullable: true
stateRoot:
type: string
nullable: true
logsBloom:
type: string
nullable: true
miner:
type: string
nullable: true
difficulty:
type: string
nullable: true
totalDifficulty:
type: string
nullable: true
gasLimit:
type: integer
format: int64
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
extraData:
type: string
nullable: true
size:
type: integer
format: int64
nullable: true
nonce:
type: string
nullable: true
staticReward:
type: string
nullable: true
blockReward:
type: string
nullable: true
totalUncleReward:
type: string
nullable: true
totalFees:
type: string
nullable: true
timestamp:
type: integer
format: int64
nullable: true
transactionCount:
type: integer
nullable: true
internalTransactionCount:
type: integer
nullable: true
transactions:
type: array
items:
$ref: '#/components/schemas/EthBlockTransaction'
internalTransactions:
type: array
items:
$ref: '#/components/schemas/EthBlockInternalTransaction'
EthBlockTransaction:
type: object
required:
- hash
- value
properties:
hash:
type: string
blockHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
description: Value transferred in Wei
fee:
type: string
nullable: true
description: Total fee paid in Wei (gasUsed * gasPrice)
gasLimit:
type: integer
format: int64
nullable: true
gasPrice:
type: string
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
nonce:
type: integer
format: int64
nullable: true
transactionIndex:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
status:
type: integer
nullable: true
description: 1 = success, 0 = failed
error:
type: string
nullable: true
success:
type: boolean
nullable: true
state:
type: string
nullable: true
example: CONFIRMED
data:
type: string
nullable: true
description: Input data (hex-encoded)
internalTransactions:
type: array
items:
$ref: '#/components/schemas/EthInternalTransaction'
ErrorResponse:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
example: FETCH_ERROR
message:
type: string
example: Transaction not found
GetEthTransactionResponse:
type: object
required:
- hash
- value
- internalTransactions
properties:
hash:
type: string
blockHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
description: Value transferred in Wei
fee:
type: string
nullable: true
description: Total fee paid in Wei (gasUsed * gasPrice)
gasLimit:
type: integer
format: int64
nullable: true
gasPrice:
type: string
nullable: true
description: Gas price in Wei
gasUsed:
type: integer
format: int64
nullable: true
nonce:
type: integer
format: int64
nullable: true
transactionIndex:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
status:
type: integer
nullable: true
description: 1 = success, 0 = failed
success:
type: boolean
nullable: true
state:
type: string
nullable: true
example: CONFIRMED
data:
type: string
nullable: true
description: Input data (hex-encoded)
error:
type: string
nullable: true
internalTransactions:
type: array
items:
$ref: '#/components/schemas/EthInternalTransaction'
transfers:
type: array
nullable: true
description: Token (ERC-20) transfers found in this transaction. Present only when `transfers=true` was requested; null otherwise.
items:
$ref: '#/components/schemas/EthTokenTransfer'
GetEthWalletResponse:
type: object
required:
- address
- balance
- transactions
- page
properties:
address:
type: string
balance:
type: string
description: Balance in Wei
nonce:
type: string
nullable: true
transactionCount:
type: string
nullable: true
internalTransactionCount:
type: string
nullable: true
totalSent:
type: string
nullable: true
totalReceived:
type: string
nullable: true
totalFees:
type: string
nullable: true
transactions:
type: array
items:
$ref: '#/components/schemas/EthAddressTransaction'
page:
type: integer
GetEthLatestBlocksRequest:
type: object
required:
- network
properties:
network:
type: string
example: ETH
limit:
type: integer
default: 10
minimum: 0
maximum: 20
description: Number of blocks to return (0 is treated as 1; values above 20 are capped at 20)
EthBlockInternalTransaction:
type: object
required:
- transactionHash
- value
properties:
transactionHash:
type: string
parentHash:
type: string
nullable: true
blockHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
description: Value transferred in Wei
type:
type: string
nullable: true
example: CALL
gasLimit:
type: integer
format: int64
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
GetEthTransactionRequest:
type: object
required:
- network
- txId
properties:
network:
type: string
example: ETH
txId:
type: string
transfers:
type: boolean
default: false
description: When true, includes the token (ERC-20) transfers found in this transaction
GetEthBlockRequest:
type: object
required:
- network
properties:
network:
type: string
example: ETH
blockId:
type: integer
format: int64
nullable: true
minimum: 0
description: Block number (non-negative); provide this or hash
hash:
type: string
nullable: true
description: Block hash; provide this or blockId
example: '0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3'
GetEthAddressTokensRequest:
type: object
required:
- network
- address
properties:
network:
type: string
example: ETH
address:
type: string
EthInternalTransaction:
type: object
required:
- value
properties:
transactionHash:
type: string
nullable: true
parentHash:
type: string
nullable: true
blockHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
description: Value transferred in Wei
type:
type: string
nullable: true
example: CALL
gasLimit:
type: integer
format: int64
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
GetEthWalletRequest:
type: object
required:
- network
- address
properties:
network:
type: string
example: ETH
address:
type: string
page:
type: integer
default: 1
minimum: 0
size:
type: integer
default: 20
minimum: 1
maximum: 50
GetEthAddressTokensResponse:
type: object
required:
- address
- tokens
properties:
address:
type: string
tokens:
type: array
items:
$ref: '#/components/schemas/EthTokenHolding'
EthAddressTransaction:
type: object
required:
- hash
- value
properties:
hash:
type: string
blockHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
description: Value transferred in Wei
nonce:
type: integer
format: int64
nullable: true
transactionIndex:
type: integer
format: int64
nullable: true
gasPrice:
type: string
nullable: true
description: Gas price in Wei
gasLimit:
type: integer
format: int64
nullable: true
gasUsed:
type: integer
format: int64
nullable: true
fee:
type: string
nullable: true
description: Total fee paid in Wei (gasUsed * gasPrice)
success:
type: boolean
nullable: true
firstSeen:
type: string
nullable: true
state:
type: string
nullable: true
example: CONFIRMED
type:
type: string
nullable: true
error:
type: string
nullable: true
GetEthAddressInternalTxsRequest:
type: object
required:
- network
- address
properties:
network:
type: string
example: ETH
address:
type: string
page:
type: integer
default: 0
minimum: 0
size:
type: integer
default: 20
minimum: 1
maximum: 50
GetEthLatestBlocksResponse:
type: object
required:
- currentBlockId
- blocks
properties:
currentBlockId:
type: integer
format: int64
blocks:
type: array
items:
$ref: '#/components/schemas/EthBlockSummary'
GetEthAddressInternalTxsResponse:
type: object
required:
- address
- internalTransactions
- page
- size
properties:
address:
type: string
internalTransactions:
type: array
items:
$ref: '#/components/schemas/EthInternalTransaction'
page:
type: integer
size:
type: integer
EthTokenHolding:
type: object
required:
- contractAddress
- balance
properties:
contractAddress:
type: string
description: ERC-20 contract address
balance:
type: string
description: Raw token balance in base units
name:
type: string
nullable: true
symbol:
type: string
nullable: true
decimals:
type: integer
nullable: true
EthTokenTransfer:
type: object
properties:
logIndex:
type: integer
format: int64
nullable: true
tokenHash:
type: string
nullable: true
description: Token contract address
from:
type: string
nullable: true
to:
type: string
nullable: true
value:
type: string
nullable: true
description: Raw token amount transferred, in the token's smallest unit
decimals:
type: integer
nullable: true
blockHash:
type: string
nullable: true
transactionHash:
type: string
nullable: true
blockNumber:
type: integer
format: int64
nullable: true
idxFrom:
type: integer
format: int64
nullable: true
idxTo:
type: integer
format: int64
nullable: true
accountIdxFrom:
type: integer
format: int64
nullable: true
accountIdxTo:
type: integer
format: int64
nullable: true
timestamp:
type: integer
format: int64
nullable: true
tokenName:
type: string
nullable: true
tokenSymbol:
type: string
nullable: true
responses:
Error:
description: Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Explorer-Auth-Key
description: Optional. Provide your Explorer API key in the `X-Explorer-Auth-Key` header. Requests sent without a key use the default (unauthenticated) rate limits.
x-refined-from:
- blockchain-7-api-ucp.json
- blockchain-7-api-acp.json