接入教程
1. 获取API密钥:访问Blockscout官网,注册并获取免费的API Key,用于调用所有端点。
2. 查询地址余额:向端点 `https://blockscout.com/eth/mainnet/api?module=account&action=balance&address=<钱包地址>&apikey=<你的密钥>` 发送GET请求。
3. 获取交易列表:调用 `https://blockscout.com/eth/mainnet/api?module=account&action=txlist&address=<地址>&apikey=<密钥>` 查看该地址所有交易。
4. 读取区块信息:使用端点 `https://blockscout.com/eth/mainnet/api?module=block&action=getblockreward&blockno=<区块号>&apikey=<密钥>` 获取指定区块的矿工奖励详情。
5. 检查交易状态:通过 `https://blockscout.com/eth/mainnet/api?module=transaction&action=gettxreceiptstatus&txhash=<交易哈希>&apikey=<密钥>` 确认交易是否成功。
使用Python查询以太坊地址余额
import requests
base_url = 'https://api.example.com/api'
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
}
# 查询地址余额
address = '0x742d35Cc6634C0532925a3b844Bc9e0bbE964C85'
params = {
'module': 'account',
'action': 'balance',
'address': address,
'tag': 'latest'
}
try:
response = requests.get(base_url, headers=headers, params=params)
data = response.json()
if data['status'] == '1':
balance = int(data['result']) / 10**18 # 转换为ETH单位
print(f'地址 {address} 的余额: {balance} ETH')
else:
print(f'查询失败: {data["message"]}')
except Exception as e:
print(f'请求出错: {e}')
使用PHP获取交易详情
<?php
$baseUrl = 'https://api.example.com/api';
$apiKey = 'YOUR_API_KEY';
// 获取交易详情
$txHash = '0x88df016429689c079f3b2f6ad39fa052532c56795b733da78a91ebe6a713944b';
$params = [
'module' => 'transaction',
'action' => 'gettxinfo',
'txhash' => $txHash
];
$url = $baseUrl . '?' . http_build_query($params);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'Authorization: Bearer ' . $apiKey
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo '请求错误: ' . curl_error($ch);
} else {
$data = json_decode($response, true);
if ($data['status'] == '1') {
echo '交易哈希: ' . $data['result']['hash'] . "\n";
echo '发送方: ' . $data['result']['from'] . "\n";
echo '接收方: ' . $data['result']['to'] . "\n";
echo '金额: ' . $data['result']['value'] . "\n";
} else {
echo '查询失败: ' . $data['message'];
}
}
curl_close($ch);
?>
使用JavaScript获取最新区块信息
const baseUrl = 'https://api.example.com/api';
const apiKey = 'YOUR_API_KEY';
async function getLatestBlock() {
const params = new URLSearchParams({
module: 'block',
action: 'getblocknobytime',
timestamp: Math.floor(Date.now() / 1000),
closest: 'before'
});
try {
const response = await fetch(`${baseUrl}?${params}`, {
method: 'GET',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${apiKey}`
}
});
const data = await response.json();
if (data.status === '1') {
const blockNumber = data.result;
console.log(`最新区块号: ${blockNumber}`);
// 获取区块详情
const blockParams = new URLSearchParams({
module: 'block',
action: 'getblockreward',
blockno: blockNumber
});
const blockResponse = await fetch(`${baseUrl}?${blockParams}`, {
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${apiKey}`
}
});
const blockData = await blockResponse.json();
if (blockData.status === '1') {
console.log('区块奖励:', blockData.result);
}
} else {
console.error('查询失败:', data.message);
}
} catch (error) {
console.error('请求出错:', error);
}
}
getLatestBlock();
常见问题
Blockscout API支持哪些区块链网络?
Blockscout支持多链网络,包括以太坊主网、Polygon、Arbitrum、Optimism等EVM兼容链,以及各种测试网络如Goerli、Sepolia等。具体支持的链列表请参考官方文档。
如何获取API密钥?
Blockscout API通常提供免费使用,无需API密钥即可访问基本功能。对于高频使用或企业级应用,建议访问Blockscout官方网站注册账户并申请API密钥,以获得更稳定的服务和支持。
API调用频率有限制吗?
Blockscout对免费API用户通常有调用频率限制,例如每分钟或每秒的最大请求数。具体限制取决于网络负载和您的使用模式。建议查看API文档中的限流政策,并合理设计应用程序以避免超出限制。
Aitishiku.com