EIP 695: Create `eth_chainId` method for JSON-RPC
Author | Isaac Ardis, Wei Tang, Fan Torchz |
---|---|
Discussions-To | https://ethereum-magicians.org/t/eip-695-create-eth-chainid-method-for-json-rpc/1845 |
Status | Last Call (review ends 2019-07-20) |
Type | Standards Track |
Category | Interface |
Created | 2017-08-21 |
Requires | 155, 1474 |
Simple Summary
Include eth_chainId
method in eth_
-namespaced JSON-RPC methods.
Abstract
The eth_chainId
method should return a single STRING result
for an integer value in hexadecimal format, describing the
currently configured CHAIN_ID
value used for signing replay-protected transactions,
introduced via EIP-155.
Motivation
Currently although we can use net_version
RPC call to get the
current network ID, there’s no RPC for querying the chain ID. This
makes it impossible to determine the current actual blockchain using
the RPC.
Specification
eth_chainId
Returns the currently configured chain ID, a value used in replay-protected transaction signing as introduced by EIP-155.
Parameters
None.
Returns
QUANTITY
- integer of the current chain ID.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}'
// Result
{
"id": 83,
"jsonrpc": "2.0",
"result": "0x3d" // 61
}
Rationale
An ETH/ETC client can accidentally connect to an ETC/ETH RPC endpoint without knowing it unless it tries to sign a transaction or it fetch a transaction that is known to have signed with a chain ID. This has since caused trouble for application developers, such as MetaMask, to add multi-chain support.
Backwards Compatibility
Not relevant.
Implementation
Reference
Return value QUANTITY
adheres to standard JSON RPC hex value encoding, as documented here: https://github.com/ethereum/wiki/wiki/JSON-RPC#hex-value-encoding.
Copyright
Copyright and related rights waived via CC0.