链上 API 参考
三块内容按「离节点由近到远」排列:最底层是节点自己的 JSON-RPC 接口, 中间是封装它的函数库,最上层是浏览器钱包与签名标准。 排查问题时从上往下找:界面不对 → 函数库调用 → 最终打印出来的 RPC 请求体。
所有 EVM 节点都实现这套接口。dApp 用的 ethers / viem 只是它的上层封装, 出问题时最终都要回到这里排查——把请求体打印出来,就知道到底发的是什么。 数值全部用十六进制字符串(0x 前缀), 大整数不要在前端转成 Number。
eth_chainId网络信息返回当前链的 chainId(十六进制)。前端切换网络后必须先核对它,再发交易。▾
返回当前链的 chainId(十六进制)。前端切换网络后必须先核对它,再发交易。
eth_blockNumber网络信息返回最新区块高度。常用于判断节点是否同步、以及做基础的存活探测。▾
返回最新区块高度。常用于判断节点是否同步、以及做基础的存活探测。
eth_syncing网络信息节点是否处于同步中。返回 false 表示已同步,返回对象时字段是同步进度。▾
节点是否处于同步中。返回 false 表示已同步,返回对象时字段是同步进度。
eth_getBalance账户与余额查询地址的原生币余额(ETH / BNB / MATIC 等)。▾
查询地址的原生币余额(ETH / BNB / MATIC 等)。
| 名称 | 类型 | 说明 |
|---|---|---|
| address | DATA, 20 Bytes | 要查询的地址 |
| block | string | object | latest / earliest / pending / safe / finalized,或十六进制区块号、32 字节区块哈希 |
eth_getTransactionCount账户与余额返回地址已发送的交易数,也就是下一笔交易的 nonce。▾
返回地址已发送的交易数,也就是下一笔交易的 nonce。
| 名称 | 类型 | 说明 |
|---|---|---|
| address | DATA, 20 Bytes | 账户地址 |
| block | string | object | latest / earliest / pending / safe / finalized,或十六进制区块号、32 字节区块哈希 |
eth_getCode账户与余额返回地址上的字节码。用来判断一个地址是合约还是普通账户(EOA)。▾
返回地址上的字节码。用来判断一个地址是合约还是普通账户(EOA)。
| 名称 | 类型 | 说明 |
|---|---|---|
| address | DATA, 20 Bytes | 待检测地址 |
| block | string | object | latest / earliest / pending / safe / finalized,或十六进制区块号、32 字节区块哈希 |
eth_call读取合约在不产生交易、不花 Gas 的前提下执行合约的只读函数。所有 view / pure 函数都靠它。▾
在不产生交易、不花 Gas 的前提下执行合约的只读函数。所有 view / pure 函数都靠它。
| 名称 | 类型 | 说明 |
|---|---|---|
| tx | object | { from?, to, gas?, gasPrice?, value?, data } — data 是 4 字节选择器 + ABI 编码参数 |
| block | string | object | latest / earliest / pending / safe / finalized,或十六进制区块号、32 字节区块哈希 |
eth_estimateGasGas 与费用估算一笔交易需要多少 gas。写入接口前必须调用,否则很容易 out of gas。▾
估算一笔交易需要多少 gas。写入接口前必须调用,否则很容易 out of gas。
| 名称 | 类型 | 说明 |
|---|---|---|
| tx | object | { from, to?, value?, data? } |
| block | string | 可选,默认 latest;多数节点也接受 pending |
eth_gasPriceGas 与费用返回节点建议的 gas 单价(EIP-1559 之前的旧接口,兼容性最好)。▾
返回节点建议的 gas 单价(EIP-1559 之前的旧接口,兼容性最好)。
eth_maxPriorityFeePerGasGas 与费用EIP-1559 下的建议小费(优先费),与 baseFee 一起决定实际 gas 价格。▾
EIP-1559 下的建议小费(优先费),与 baseFee 一起决定实际 gas 价格。
eth_feeHistoryGas 与费用返回最近若干区块的基础费与优先费历史,是钱包做动态费率推荐的标准数据源。▾
返回最近若干区块的基础费与优先费历史,是钱包做动态费率推荐的标准数据源。
| 名称 | 类型 | 说明 |
|---|---|---|
| blockCount | QUANTITY | 要查询的区块数,建议 4–20 |
| newestBlock | string | 最新区块号或 latest |
| rewardPercentiles | number[] | 要统计的百分位,例如 [25, 50, 75] |
eth_sendRawTransaction发送交易广播一笔已签名的交易。这是唯一能真正改变链上状态的入口之一。▾
广播一笔已签名的交易。这是唯一能真正改变链上状态的入口之一。
| 名称 | 类型 | 说明 |
|---|---|---|
| signedTxData | DATA | RLP 编码并签名后的完整交易字节流 |
eth_getTransactionReceipt发送交易根据交易哈希拿回执,包含执行状态、gas 消耗、日志与合约地址。▾
根据交易哈希拿回执,包含执行状态、gas 消耗、日志与合约地址。
| 名称 | 类型 | 说明 |
|---|---|---|
| txHash | DATA, 32 Bytes | 交易哈希 |
eth_getTransactionByHash发送交易查询交易详情。常用于展示「这笔交易到底发没发出去」。▾
查询交易详情。常用于展示「这笔交易到底发没发出去」。
| 名称 | 类型 | 说明 |
|---|---|---|
| txHash | DATA, 32 Bytes | 交易哈希 |
eth_getLogs日志与事件按地址与 topic 过滤事件日志,是索引器、看板、空投快照的核心接口。▾
按地址与 topic 过滤事件日志,是索引器、看板、空投快照的核心接口。
| 名称 | 类型 | 说明 |
|---|---|---|
| filter | object | { fromBlock, toBlock, address?, topics?, blockHash? } |
eth_subscribe日志与事件WebSocket 订阅新块、日志或待打包交易,用于实时监控。▾
WebSocket 订阅新块、日志或待打包交易,用于实时监控。
| 名称 | 类型 | 说明 |
|---|---|---|
| subscription | string | newHeads / logs / newPendingTransactions / syncing |
| filter | object | 仅 logs 需要,格式同 eth_getLogs 的 filter |
eth_getBlockByNumber网络信息按区块号取区块头与交易列表,用于算确认数、算时间间隔。▾
按区块号取区块头与交易列表,用于算确认数、算时间间隔。
| 名称 | 类型 | 说明 |
|---|---|---|
| block | QUANTITY | string | 区块号或 latest / finalized |
| fullTx | boolean | true 返回完整交易对象,false 只返回哈希数组 |