Babel - Ethereum API
Babel is the IoTeX service that wraps an Ethereum-node JSON-RPC API: you can point your Ethereum libraries and tools to a Babel endpoint, and have them work with the IoTeX blockchain with no changes.
json-rpc
Ethereum Wiki
Official Ethereum JSON-RPC API Documentation
You can either deploy a Babel service (available on GitHub) and point it to your own IoTeX Gateway node, or you can use the publicly accessible endpoints listed below.

Chain ID

The chainID chain identifier was introduced in EIP-155 to prevent replay attacks between Ethereum-compatible chains, it is a way to tell chains apart. Subsequent to EIP-155, Ethereum was assigned a chainID of 1.
In respect of this EIP, IoTeX chainIDs have been picked as follow:
Network
chainID
IoTeX Mainnet
4689
IoTeX Testnet
4690

Babel API endpoints

Mainnet

Endpoint
Provider
More
https://babel-api.mainnet.iotex.io
IoTeX Foundation
https://babel-api.mainnet.iotex.one
IoTeX Foundation
https://iotexrpc.com
Ankr
https://rpc.ankr.com/iotex
Ankr
https://iotex-rpc.gateway.pokt.network
Pocket Network
Testnet
Endpoint
Text
More
https://babel-api.testnet.iotex.io
IoTeX Foundation
Example
To get the balance of the IoTeX address ukzv5m6xnsg3gzaec3shew8nw03cch2x53d6v6 you first convert it into the ethereum address format using ioctl:
1
$ ioctl account ethaddr io1ukzv5m6xnsg3gzaec3shew8nw03cch2x53d6v6
2
io1ukzv5m6xnsg3gzaec3shew8nw03cch2x53d6v6 - 0xE584ca6F469c11140Bb9c4617Cb8f373E38C5D46
Copied!
which gives you the following Ethereum address:0xE584ca6F469c11140Bb9c4617Cb8f373E38C5D46.
Then you can query the Babel endpoint according to the Ethereum JSON RPC API:
1
» curl -X POST -H "Content-Type:application/json" --data '{"id": 1, "jsonrpc": "2.0", "method": "eth_getBalance", "params": ["0xE584ca6F469c11140Bb9c4617Cb8f373E38C5D46", ""]}' http://babel-api.mainnet.iotex.io
2
{
3
"id": 1,
4
"jsonrpc": "2.0",
5
"result": "0x10f0cf064dd59200000"
6
}
Copied!
Which returns the balance 0x10f0cf064dd59200000 (hex) for the address, expressed in Rau units (i.e. 5000000000000000000000 Rau, equivalent to 5000 IOTX).
Check out the official Ethereum JSON-RPC API Documentation at:
json-rpc
Ethereum Wiki
Official Ethereum JSON-RPC API Documentation

Supported API

Below is the list of the currently supported APIs:
  • eth_accounts
  • eth_blockNumber
  • eth_call
  • eth_chainId
  • eth_estimateGas
  • eth_gasPrice
  • eth_getBalance
  • eth_getBlockByHash
  • eth_getBlockByNumber
  • eth_getBlockTransactionCountByHash
  • eth_getBlockTransactionCountByNumber
  • eth_getCode
  • eth_getFilterChanges
  • eth_getFilterLogs
  • eth_getLogs
  • eth_getStorageAt
  • eth_getTransactionByBlockHashAndIndex
  • eth_getTransactionByBlockNumberAndIndex
  • eth_getTransactionByHash
  • eth_getTransactionCount
  • eth_getTransactionReceipt
  • eth_hashrate
  • eth_mining
  • eth_newBlockFilter
  • eth_newFilter
  • eth_protocolVersion
  • eth_sendRawTransaction
  • eth_syncing
  • eth_uninstallFilter
  • net_listening
  • net_peerCount
  • net_version
  • web3_clientVersion
Additional API methods support can be requested by posting an issue in the GitHub repository below:
Issues · iotexproject/iotex-core
GitHub
Export as PDF
Copy link