EIPs/EIPS/eip-rpc_eth_chain_id.md

80 lines
1.9 KiB
Markdown
Raw Normal View History

## Preamble
EIP: <to be assigned>
Title: Create `eth_chainId` method for JSON-RPC
Author: Isaac Ardis: isaac.ardis@gmail.com, Wei Tang: hi@that.world
Type: Standard Track
Category: Interface
Status: Draft
Created: 2017-08-21
## 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
2017-08-21 16:18:59 +00:00
__Related PR__:
https://github.com/ethereum/go-ethereum/pull/15002
__Example documentation__:
----
### 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` - big integer of the current chain id. Defaults are mainnet=61, morden=62.
##### Example
```js
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.
## Test Cases
Not currently implemented.
## Implementation
Would be good to have a test to confirm that expected==got.
## Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).