Skip to content

pedrouid/ethereum-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e2b2de4 · Jul 8, 2021

History

66 Commits
Jul 8, 2021
Feb 18, 2021
Feb 15, 2021
Feb 15, 2021
Feb 15, 2021
Mar 26, 2019
Mar 20, 2020
Feb 8, 2019
Mar 24, 2020
Jul 8, 2021
Jul 8, 2021
Feb 15, 2021

Repository files navigation

ethereum-api

A simple Ethereum API proxy for multi-EVM dapps

API

  • GET /account-balance?address={address}&chainId={chainId}
  • GET /account-assets?address={address}&chainId={chainId}
  • GET /account-transactions?address={address}&chainId={chainId}
  • GET /account-nonce?address={address}&chainId={chainId}
  • GET /account-collectibles?address={address}
  • GET /token-balance?address={address}&contractAddress={contractAddress}&chainId={chainId}
  • GET /gas-limit?contractAddress={contractAddress}&data={data}&chainId={chainId}
  • GET /gas-prices
  • GET /gas-guzzlers
  • GET /eth-prices
  • GET /dai-prices
  • GET /block-number?chainId={chainId}
  • GET /chain-data?chainId={chainId}
  • GET /supported-chains
  • POST /custom-request?chainId={chainId} (body: JSON-RPC request)
  • POST /rpc?chainId={chainId} (body: JSON-RPC request)

Examples

GET Account Balance

Required Params: address, chainId

GET https://ethereum-api.xyz/account-balance?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1&chainId=1

# Response
{
    "success": true,
    "result": {
        "symbol": "ETH",
        "name": "Ethereum",
        "decimals": "18",
        "contractAddress": "",
        "balance": "0"
    }
}

GET Account Assets

Required Params: address, chainId

GET https://ethereum-api.xyz/account-assets?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1&chainId=1

# Response
{
    "success": true,
    "result": [
        {
            "symbol": "ETH",
            "name": "Ethereum",
            "decimals": "18",
            "contractAddress": "",
            "balance": "0"
        },
        {
            "symbol": "BKC",
            "name": "Bankcoin Cash",
            "decimals": "8",
            "contractAddress": "0xc88be04c809856b75e3dfe19eb4dcf0a3b15317a",
            "balance": "158552014464"
        }
    ]
}

GET Account Transactions

Required Params: address, chainId

GET https://ethereum-api.xyz/account-transactions?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1&chainId=1

# Response
{
    "success": true,
    "result": [
        {
            "timestamp": "1549654458000",
            "hash": "0x837991f0f72fb1acc63b386dbbd59957a9034476af20264378507d627a9e6569",
            "from": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
            "to": "0x8b17190217491094d09d7c8ca5ef683ac251c900",
            "nonce": "3",
            "gasPrice": "1000000000",
            "gasUsed": "21000",
            "fee": "21000000000000",
            "value": "720919600000000",
            "input": "0x",
            "error": false,
            "asset": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": ""
            },
            "operations": []
        },
        {
            "timestamp": "1548329044000",
            "hash": "0xf24978e7502e97342a679b7a5d1fe9b41a56d497f4ed17293ba64b4c4bbce757",
            "from": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
            "to": "0xc88be04c809856b75e3dfe19eb4dcf0a3b15317a",
            "nonce": "2",
            "gasPrice": "1500000000",
            "gasUsed": "24178",
            "fee": "36267000000000",
            "value": "0",
            "input": "0xa9059cbb0000000000000000000000008b17190217491094d09d7c8ca5ef683ac251c900000000000000000000000000000000000000000000000055f3831b1ab52a0000",
            "error": true,
            "asset": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": ""
            },
            "operations": []
        },
        {
            "timestamp": "1540938002000",
            "hash": "0xd9c6e897a164ac0947ba5b005a80f4dbd9cf61544d61ac2d8481c61d60c2d7a0",
            "from": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
            "to": "0xc88be04c809856b75e3dfe19eb4dcf0a3b15317a",
            "nonce": "1",
            "gasPrice": "1200000000",
            "gasUsed": "24178",
            "fee": "29013600000000",
            "value": "0",
            "input": "0xa9059cbb0000000000000000000000008b17190217491094d09d7c8ca5ef683ac251c900000000000000000000000000000000000000000000000055f3831b1ab52a0000",
            "error": true,
            "asset": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": ""
            },
            "operations": []
        },
        {
            "timestamp": "1540675507000",
            "hash": "0xad42e20f783e4c5a6407e9fea9a0ac26aebc76e45a04d9bb68886b3fe2dd0e1d",
            "from": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
            "to": "0xc88be04c809856b75e3dfe19eb4dcf0a3b15317a",
            "nonce": "0",
            "gasPrice": "2300000000",
            "gasUsed": "83826",
            "fee": "192799800000000",
            "value": "0",
            "input": "0x",
            "error": false,
            "asset": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": ""
            },
            "operations": [
                {
                    "asset": {
                        "symbol": "BKC",
                        "name": "Bankcoin Cash",
                        "decimals": "8",
                        "contractAddress": "0xc88be04c809856b75e3dfe19eb4dcf0a3b15317a"
                    },
                    "value": "158552014464",
                    "from": "0x0000000000000000000000000000000000000000",
                    "to": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
                    "functionName": "0x"
                }
            ]
        },
        {
            "timestamp": "1538926843000",
            "hash": "0xe8ab634b5e03491b938c011346fa4f2ac37ca64dceb37b5b362b30cf5b6676f1",
            "from": "0xc2b082e2efe9abab6f042d15beb46380b1952398",
            "to": "0xfebd6abd30d8e1ad477957c376efb79d1758b8c1",
            "nonce": "5809",
            "gasPrice": "2500000000",
            "gasUsed": "21000",
            "fee": "52500000000000",
            "value": "1000000000000000",
            "input": "0x",
            "error": false,
            "asset": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": ""
            },
            "operations": []
        }
    ]
}

GET Account Nonce

Required Params: address, chainId

GET https://ethereum-api.xyz/account-nonce?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1&chainId=1

# Response
{
    "success": true,
    "result": 4
}

GET Account Collectibles (Ethereum Mainnet only)

Required Params: address

GET https://ethereum-api.xyz/account-collectibles?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1

# Response
You can find a reference on OpenSea API at https://docs.opensea.io/reference#getting-assets

GET Token Balance

Required Params: address, chainId, contractAddress

GET https://ethereum-api.xyz/token-balance?address=0xfeBD6abD30D8E1AD477957C376efb79d1758B8c1&contractAddress=0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359&chainId=1

# Response
{
    "success": true,
    "result": {
        "symbol": "DAI",
        "name": "Dai Stablecoin v1.0",
        "decimals": "18",
        "contractAddress": "0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359",
        "balance": ""
    }
}

GET Gas Limit

Required Params: contractAddress, data, chainId

GET https://ethereum-api.xyz/gas-limit?contractAddress=0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359&data=0xa9059cbb0000000000000000000000009b7b2b4f7a391b6f14a81221ae0920a9735b67fb0000000000000000000000000000000000000000000000000de0b6b3a7640000&chainId=1

# Response
{
    "success": true,
    "result": 37298
}

GET Gas Prices (Ethereum Mainnet only)

Required Params: none

Note: Returned values of price values are in Gwei, time is in seconds.

GET https://ethereum-api.xyz/gas-prices

# Response
{
    "success": true,
    "result": {
        "timestamp": 1549666078325,
        "slow": {
            "time": 858,
            "price": 1.1
        },
        "average": {
            "time": 150,
            "price": 1.2
        },
        "fast": {
            "time": 36,
            "price": 25
        }
    }
}

GET Gas Guzzlers (Ethereum Mainnet only)

Required Params: none

GET https://ethereum-api.xyz/gas-guzzlers

# Response
{
    "success": true,
    "result": [
        {"address":"0xe9428d4a341ac20e9f2e6b95b12c9ad52733fcd9","pct":"13.69","gasused":3548306,"id":""},
        ...
    ]
}

GET ETH Prices (Ethereum Mainnet only)

Required Params: none Optional Params: fiat (default: USD,EUR,GBP)

GET https://ethereum-api.xyz/eth-prices?fiat=USD,EUR,GBP,JPY

# Response
{
    "success": true,
    "result": {
        "USD": 154.75,
        "EUR": 137.59,
        "GBP": 118.44,
        "JPY": 17444.71
    }
}

GET DAI Prices (Ethereum Mainnet only)

Required Params: none Optional Params: fiat (default: USD,EUR,GBP)

GET https://ethereum-api.xyz/dai-prices?fiat=USD,EUR,GBP,JPY

# Response
{
    "success": true,
    "result": {
        "USD": 154.75,
        "EUR": 137.59,
        "GBP": 118.44,
        "JPY": 17444.71
    }
}

GET Block Number

Required Params: chainId

GET https://ethereum-api.xyz/block-number?chainId=1

# Response
{
    "success": true,
    "result": 7412670
}

GET Chain Data

Required Params: chainId

GET https://ethereum-api.xyz/chain-data?chainId=1

# Response
{
    "success": true,
    "result": {
        "name": "Ethereum Mainnet",
        "short_name": "eth",
        "chain": "ETH",
        "network": "mainnet",
        "chain_id": 1,
        "network_id": 1,
        "rpc_url": "https://mainnet.infura.io/v3/INFURA_ID",
        "native_currency": {
            "symbol": "ETH",
            "name": "Ethereum",
            "decimals": "18",
            "contractAddress": "",
            "balance": ""
        }
    }
}

GET Supported Chains

Required Params: none

GET https://ethereum-api.xyz/supported-chains

# Response
{
    "success": true,
    "result": [
        {
            "name": "Ethereum Mainnet",
            "short_name": "eth",
            "chain": "ETH",
            "network": "mainnet",
            "chain_id": 1,
            "network_id": 1,
            "rpc_url": "https://mainnet.infura.io/v3/INFURA_ID",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "Ethereum Ropsten",
            "short_name": "rop",
            "chain": "ETH",
            "network": "ropsten",
            "chain_id": 3,
            "network_id": 3,
            "rpc_url": "https://ropsten.infura.io/v3/206405f9762348f99d0d5c27004b2213",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": "292431829496767250000"
            }
        },
        {
            "name": "Ethereum Rinkeby",
            "short_name": "rin",
            "chain": "ETH",
            "network": "rinkeby",
            "chain_id": 4,
            "network_id": 4,
            "rpc_url": "https://rinkeby.infura.io/v3/INFURA_ID",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "Ethereum Görli",
            "short_name": "gor",
            "chain": "ETH",
            "network": "goerli",
            "chain_id": 5,
            "network_id": 5,
            "rpc_url": "https://goerli.infura.io/v3/INFURA_ID",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "RSK Mainnet",
            "short_name": "rsk",
            "chain": "RSK",
            "network": "mainnet",
            "chain_id": 30,
            "network_id": 30,
            "rpc_url": "https://public-node.rsk.co",
            "native_currency": {
                "symbol": "RSK",
                "name": "RSK",
                "decimals": "18",
                "contractAddress": "",
                "balance": "0"
            }
        },
        {
            "name": "Ethereum Kovan",
            "short_name": "kov",
            "chain": "ETH",
            "network": "kovan",
            "chain_id": 42,
            "network_id": 42,
            "rpc_url": "https://kovan.infura.io/v3/INFURA_ID",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "Ethereum Classic Mainnet",
            "short_name": "etc",
            "chain": "ETC",
            "network": "mainnet",
            "chain_id": 61,
            "network_id": 1,
            "rpc_url": "https://ethereumclassic.network",
            "native_currency": {
                "symbol": "ETH",
                "name": "Ethereum",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "POA Network Sokol",
            "short_name": "poa",
            "chain": "POA",
            "network": "sokol",
            "chain_id": 77,
            "network_id": 77,
            "rpc_url": "https://sokol.poa.network",
            "native_currency": {
                "symbol": "POA",
                "name": "POA",
                "decimals": "18",
                "contractAddress": "",
                "balance": ""
            }
        },
        {
            "name": "POA Network Core",
            "short_name": "skl",
            "chain": "POA",
            "network": "core",
            "chain_id": 99,
            "network_id": 99,
            "rpc_url": "https://core.poa.network",
            "native_currency": {
                "symbol": "POA",
                "name": "POA",
                "decimals": "18",
                "contractAddress": "",
                "balance": "0"
            }
        },
        {
            "name": "xDAI Chain",
            "short_name": "xdai",
            "chain": "POA",
            "network": "dai",
            "chain_id": 100,
            "network_id": 100,
            "rpc_url": "https://dai.poa.network",
            "native_currency": {
                "symbol": "xDAI",
                "name": "xDAI",
                "decimals": "18",
                "contractAddress": "",
                "balance": "0"
            }
        },
        {
            "name": "Callisto Mainnet",
            "short_name": "clo",
            "chain": "callisto",
            "network": "mainnet",
            "chain_id": 820,
            "network_id": 1,
            "rpc_url": "https://clo-geth.0xinfra.com/",
            "native_currency": {
                "symbol": "CLO",
                "name": "CLO",
                "decimals": "18",
                "contractAddress": "",
                "balance": "0"
            }
        }
    ]
}

POST Custom JSON-RPC Request

Required Params: chainId

POST https://ethereum-api.xyz/custom-request?chainId=1

# Body
{
    "method": "eth_chainId",
    "params": []
}

# Response
{
    "success": true,
    "result": "0x1"
}

POST Full JSON-RPC Request

Required Params: chainId

POST https://ethereum-api.xyz/rpc?chainId=1

# Body
{
	"id": 1337,
	"jsonrpc": "2.0",
	"method": "eth_blockNumber",
	"params": []
}

# Response
{
    "id": 1337,
    "jsonrpc": "2.0",
    "result": "0x7c6359"
}

Error Responses

Example of an error response

# Error
{
    "success": false,
    "error": "Internal Server Error",
    "message": "Missing or invalid chainId parameter"
}

About

A simple Ethereum API proxy for multi-EVM dapps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published