用途
Etherscan 技能用于查询 Etherscan 兼容的区块浏览器 API,获取多链上的交易、合约和 Gas 数据。支持的区块链网络及其 API 基地址和可选环境变量如下:
| 链 | Base URL | 环境变量(可选覆盖) |
|---|---|---|
| Ethereum | https://api.etherscan.io/api | ETHERSCAN_API_KEY |
| BSC | https://api.bscscan.com/api | BSCSCAN_API_KEY 或同一密钥 |
| Polygon | https://api.polygonscan.com/api | POLYGONSCAN_API_KEY |
| Arbitrum | https://api.arbiscan.io/api | ARBISCAN_API_KEY |
| Optimism | https://api-optimistic.etherscan.io/api | OPTIMISM_API_KEY |
| Base | https://api.basescan.org/api | BASESCAN_API_KEY |
所有浏览器均接受 apikey 参数。许多链可共用同一个 Etherscan 密钥,但部分链需要单独注册。速率限制为每个密钥每秒 5 次调用。
主要能力
账户模块
- 交易历史(txlist):查询地址的普通交易记录,支持 startblock、endblock、page、offset、sort 参数。
- ERC-20 代币转账(tokentx):查询地址的 ERC-20 代币转账记录,可通过 contractaddress 参数按代币合约过滤。
- ERC-721 转账(tokennfttx):查询地址的 ERC-721 转账记录。
- 余额(balance):查询地址余额,返回单位为 wei,需除以 1e18 换算为 ETH/BNB。
合约模块
- 获取 ABI(getabi):返回合约 ABI 的 JSON 字符串。可解析结果并传入 read_contract 或 write_contract 进行动态合约交互。
- 获取源代码(getsourcecode):返回源代码、编译器版本、构造函数参数,以及代理合约的实现地址(如适用)。
Gas 追踪(仅以太坊)
- gasoracle:返回 SafeGasPrice、ProposeGasPrice、FastGasPrice,单位为 gwei。
使用方式
请求需包含 apikey 参数,否则会受到严重限流。使用 offset 和 page 进行分页,避免获取过多数据。
getabi 端点仅对已验证合约有效。对于代理合约,getsourcecode 会包含实现地址,需要额外获取该实现合约的 ABI。
动态合约交互工作流:
- 用户提供合约地址。
- 调用 getabi 获取 ABI。
- 解析 ABI 列出可用的读写函数。
- 使用 read_contract 配合 ABI 和函数名进行查询。
- 使用 write_contract 进行状态变更调用(需用户确认)。
该流程使得无需预构建工具即可与任何已验证合约交互。
适用场景
- 查询钱包在 BSC 上的近期交易。
- 获取指定合约地址的 ABI 并列出可用函数。
- 查询以太坊当前的 Gas 价格(安全/标准/快速)。
- 将合约数据与 security-check 技能交叉引用进行风险评估。
限制
- getabi 仅适用于已验证合约。
- Gas Tracker 仅支持以太坊。
- 速率限制为每个密钥每秒 5 次调用。
- 部分链需要单独注册 API 密钥。
- 未提供具体价格、收费方案或平台可用性信息。