web3

RPC request uses HTTP POST method. The contents in the request are in JSON format, in which the method field specifies the name of the RPC interface.

The following is a list of web3 RPCs that MCP current compatible with.

web3_clientVersion

Returns the current client version.

Parameters

None

Returns

  • String - The current client version

Example

Request

curl --data '{"method":"web3_clientVersion","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "MCP//v1.0.0"
}

web3_sha3

Returns Keccak-256 (not the standardized SHA3-256) of the given data.

Parameters

  1. String - The data to convert into a SHA3 hash.

params: [
  "0x68656c6c6f20776f726c64" // "hello world"
]

Returns

  • Data - The Keccak-256 hash of the given string.

Example

Request

curl --data '{"method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad"
}

eth_blockNumber

Returns the number of most recent block.

Parameters

None

Returns

  • Quantity - integer of the current block number the client is on.

Example

Request

curl --data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x4b7" // 1207
}

eth_getTransactionCount

Returns the number of transactions sent from an address.

Parameters

  1. Address - 20 Bytes - address.

  2. Quantity or Tag - (optional) integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

Returns

  • Quantity - integer of the number of transactions send from this address.

Example

Request

curl --data '{"method":"eth_getTransactionCount","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

eth_chainId

Returns the chain ID used for transaction signing at the current best block. Null is returned if not available.

Parameters

None

Returns

  • Quantity - Chain ID, or null if not available.

Example

Request

curl --data '{"method":"eth_chainId","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x1"
}

eth_gasPrice

Returns the current price per gas in wei.

Parameters

None

Returns

  • Quantity - integer of the current gas price in wei.

Example

Request

curl --data '{"method":"eth_gasPrice","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

eth_estimateGas

Makes a call or transaction, which won’t be added to the blockchain and returns the used gas, which can be used for estimating the used gas.

Parameters

  1. Object - Transaction object where from field is optional and nonce field is ommited.

  2. Quantity or Tag - (optional) Integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

Returns

  • Quantity - The amount of gas used.

Example

Request

curl --data '{"method":"eth_estimateGas","params":[{ ... }],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x5208" // 21000
}

eth_getBlockByNumber

Returns information about a block by block number.

Parameters

  1. Quantity or Tag - integer of a block number, or the string 'earliest', 'latest' or 'pending'.

    • Quantity/Integer - an integer block number;

    • String "earliest" - for the earliest/genesis block;

    • String "latest" - for the latest mined block;

    • String "pending" - for the pending state/transactions.

  2. Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions.

params: [
  "0x1b4", // 436
  true
]

Returns

  • Object - A block object, or null when no block was found.

    • number: Quantity - The block number. null when its pending block

    • hash: Hash - 32 Bytes - hash of the block.

    • parentHash: Hash - 32 Bytes - hash of the parent block

    • nonce: Data - null.

    • extraData: Data - 0x00

    • gasLimit: Quantity - the maximum gas allowed in this block

    • minGasPrice: Quantity - the minimum gas price allowed in this block

    • gasUsed: Quantity - the total used gas by all transactions in this block

    • timestamp: Quantity - the unix timestamp for when the block was collated

    • transactions: Array - Array of transaction objects, or 32 Bytes transaction hashes depending on the last given parameter

Example

Request

curl --data '{"method":"eth_getBlockByNumber","params":["0x1b4",true],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
    "id": 956931860354523,
    "jsonrpc": "2.0",
    "result": {
        "number": "0x1b",
        "nonce": null,
        "difficulty": "0x0",
        "extraData": "0x00",
        "hash": "0xcad8c320cae32037415aab16ace767ee163a0eaedb29f2282e5acd2596f5d55f",
        "parentHash": "0x8afcf2f16afdd9b8d67ac646213d064f8ce65180192bb678fb5fb3d168ab82a8",
        "gasUsed": "0x1fd7c8",
        "minGasPrice": "0x989680",
        "gasLimit": "0x7a1200",
        "timestamp": "0x62b9f1af",
        "transactions": [
            "0xbf2d4552fba50efcf467da369b2f36596edfc337cb17ff7c9fe9431548231fe3"
        ]
    }
}

eth_getBlockTransactionCountByHash

Returns the number of transactions in a block from a block matching the given block hash.

Parameters

  1. Hash - 32 Bytes - hash of a block.

params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"]

Returns

  • Quantity - integer of the number of transactions in this block.

Example

Request

curl --data '{"method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xb" // 11
}

eth_getBlockTransactionCountByNumber

Returns the number of transactions in a block from a block matching the given block number.

Parameters

  1. Quantity or Tag - integer of a block number, or the string 'earliest', 'latest' or 'pending', see the eth_getBlockByNumber..

params: [
  "0xe8" // 232
]

Returns

  • Quantity - integer of the number of transactions in this block.

Example

Request

curl --data '{"method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xa" // 10
}

eth_sendRawTransaction

Creates new message call transaction or a contract creation for signed transactions.

Parameters

  1. Data - The signed transaction data.

params: ["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"]

Returns

  • Hash - 32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available

Use eth_getTransactionReceipt to get the contract address, after the transaction was mined, when you created a contract.

Example

Request

curl --data '{"method":"eth_sendRawTransaction","params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_sendTransaction

Creates new message call transaction or a contract creation, if the data field contains code.

Parameters

  1. Object - Transaction object.

    • from: Address - 20 Bytes - The address the transaction is sent from.

    • to: Address - (optional when creating new contract) 20 Bytes - The address the transaction is directed to.

    • gas: Quantity - (optional) Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions.

    • gasPrice: Quantity - (optional) Integer of the gas price used for each paid gas.

    • value: Quantity - (optional) Integer of the value sent with this transaction.

    • data: Data - (optional) 4 byte hash of the method signature followed by encoded parameters. For details see Ethereum Contract ABI.

    • nonce: Quantity - (optional) Integer of a nonce. This allows you to overwrite your own pending transactions that use the same nonce

params: [{
  "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
  "gas": "0x76c0", // 30400
  "gasPrice": "0x9184e72a000", // 10000000000000
  "value": "0x9184e72a", // 2441406250
  "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]

Returns

  • Hash - 32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available.

Use eth_getTransactionReceipt to get the contract address, after the transaction was mined, when you created a contract.

Example

Request

curl --data '{"method":"eth_sendTransaction","params":[{"from":"0xb60e8dd61c5d32be8058bb8eb970870f07233155","to":"0xd46e8dd67c5d32be8058bb8eb970870f07244567","gas":"0x76c0","gasPrice":"0x9184e72a000","value":"0x9184e72a","data":"0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
}

eth_call

Executes a new message call immediately without creating a transaction on the block chain.

Parameters

  1. Object - Transaction object where from field is optional and nonce field is ommited.

  2. Quantity or Tag - (optional) Integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

params: [{
  "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
  "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
  "value": "0x186a0" // 100000
}]

Returns

  • Data - the return value of executed contract.

Example

Request

curl --data '{"method":"eth_call","params":[{"from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1","to":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b","value":"0x186a0"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x"
}

net_version

Returns the current network protocol version.

Parameters

None

Returns

  • String - The current network protocol version

Example

Request

curl --data '{"method":"net_version","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "8995"
}

net_listening

Returns true if client is actively listening for network connections.

Parameters

None

Returns

  • Boolean - true when listening, otherwise false.

Example

Request

curl --data '{"method":"net_listening","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": true
}

net_peerCount

Returns number of peers currently connected to the client.

Parameters

None

Returns

  • Quantity - Integer of the number of connected peers

Example

Request

curl --data '{"method":"net_peerCount","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x2" // 2
}

eth_protocolVersion

Returns the current protocol version.

Parameters

None

Returns

  • String - The current protocol version.

Example

Request

curl --data '{"method":"eth_protocolVersion","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x63" // 99
}

eth_syncing

Returns an object with data about the sync status or false.

Parameters

None

Returns

  • Object - An object with sync status data or FALSE, when not syncing.

    • startingBlock: Quantity - The block at which the import started (will only be reset, after the sync reached this head)

    • currentBlock: Quantity - The current block, same as eth_blockNumber

    • highestBlock: Quantity - The estimated highest block

Example

Request

curl --data '{"method":"eth_syncing","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "startingBlock": "0x384", // 900
    "currentBlock": "0x386", // 902
    "highestBlock": "0x454" // 1108
  } // Or `false` when not syncing
}

eth_getLogs

Returns an array of all logs matching a given filter object.

Parameters

  1. Object - The filter options:

    • fromBlock: Quantity or Tag - (optional) (default: latest) Integer block number, or 'latest' for the last mined block or 'pending', 'earliest' for not yet mined transactions.

    • toBlock: Quantity or Tag - (optional) (default: latest) Integer block number, or 'latest' for the last mined block or 'pending', 'earliest' for not yet mined transactions.

    • address: Address - (optional) 20 Bytes - Contract address or a list of addresses from which logs should originate.

    • topics: Array - (optional) Array of 32 Bytes Data topics. Topics are order-dependent. It’s possible to pass in null to match any topic, or a subarray of multiple topics of which one should be matching.

    • limit: Quantity - (optional) The maximum number of entries to retrieve (latest first).

params: [{
  "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"]
}]

Returns

  • Array - Array of log objects, or an empty array if nothing has changed since last poll.

Example

Request

curl --data '{"method":"eth_getFilterChanges","params":["0x16"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    {
      "logIndex": "0x1", // 1
      "blockNumber": "0x1b4", // 436
      "blockHash": "0x8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcfdf829c5a142f1fccd7d",
      "transactionHash": "0xdf829c5a142f1fccd7d8216c5785ac562ff41e2dcfdf5785ac562ff41e2dcf",
      "transactionIndex": "0x0", // 0
      "address": "0x16c5785ac562ff41e2dcfdf829c5a142f1fccd7d",
      "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "topics": ["0x59ebeb90bc63057b6515673c3ecf9438e5058bca0f92585014eced636878c9a5"]
    },
    ...
  ]
}

eth_getCode

Returns code at a given address.

Parameters

  1. Address - 20 Bytes - address.

  2. Quantity or Tag - integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

params: [
  "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
  "0x2" // 2
]

Returns

  • Data - the code from the given address.

Example

Request

curl --data '{"method":"eth_getCode","params":["0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b","0x2"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056"
}

eth_getStorageAt

Returns the value from a storage position at a given address.

Parameters

  1. Address - 20 Bytes - address of the storage.

  2. Quantity - integer of the position in the storage.

  3. Quantity or Tag - (optional) integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

params: [
  "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
  "0x0", // 0
  "0x2" // 2
]

Returns

  • Data - the value at this storage position.

Example

Request

curl --data '{"method":"eth_getStorageAt","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1","0x0","0x2"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x0000000000000000000000000000000000000000000000000000000000000003"
}

eth_getTransactionByHash

Returns the information about a transaction requested by transaction hash.

Parameters

  1. Hash - 32 Bytes - hash of a transaction.

params: ["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"]

Returns

  • Object - Transaction Response Object, or null when no transaction was found.

    • hash: Hash - 32 Bytes - hash of the transaction.

    • nonce: Quantity - the number of transactions made by the sender prior to this one.

    • blockHash: Hash - 32 Bytes - hash of the block where this transaction was in. null when its pending.

    • blockNumber: Quantity or Tag - block number where this transaction was in. null when its pending.

    • transactionIndex: Quantity - integer of the transactions index position in the block. null when its pending.

    • from: Address - 20 Bytes - address of the sender.

    • to: Address - 20 Bytes - address of the receiver. null when its a contract creation transaction.

    • value: Quantity - value transferred in Wei.

    • gasPrice: Quantity - gas price provided by the sender in Wei.

    • gas: Quantity - gas provided by the sender.

    • input: Data - the data send along with the transaction.

    • v: Quantity - the standardised V field of the signature.

    • r: Quantity - the R field of the signature.

    • s: Signature - the signature of the transaction.

Example

Request

curl --data '{"method":"eth_getTransactionByHash","params":["0xbf2d4552fba50efcf467da369b2f36596edfc337cb17ff7c9fe9431548231fe3"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "hash": "0xbf2d4552fba50efcf467da369b2f36596edfc337cb17ff7c9fe9431548231fe3",
        "input": "0xf305d7190000000000000000000000005e1a3ca002d04b3cfedb705320d6cfdf52d7fcf00000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001144b522f45265c2dfdbaee8e324719e63a1694cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
        "to": "0x3a71241d2d880e0e09642db7b5b69277c0e1d455",
        "from": "0x1144b522f45265c2dfdbaee8e324719e63a1694c",
        "gas": "0x1fd7c8",
        "gasPrice": "0x989680",
        "nonce": "0xe",
        "value": "0xde0b6b3a7640000",
        "blockHash": "0xcad8c320cae32037415aab16ace767ee163a0eaedb29f2282e5acd2596f5d55f",
        "transactionIndex": "0x0",
        "blockNumber": "0x1b",
        "r": "0x2fbfb3ded113cbdb579c1bdbe252c3b30a40c5e7c5a644668f87cd889f154eed",
        "s": "0x165d8e90a47f3f1e095ae59f0688f38e89fba27912c75647534da4cc68c22d4c",
        "v": "0x66c"
    }
}

eth_getTransactionByBlockHashAndIndex

Returns information about a transaction by block hash and transaction index position.

Parameters

  1. Hash - hash of a block.

  2. Quantity - integer of the transaction index position.

params: [
  "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
  "0x0" // 0
]

Returns

Example

Request

curl --data '{"method":"eth_getTransactionByBlockHashAndIndex","params":["0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331","0x0"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "hash": "0xbf2d4552fba50efcf467da369b2f36596edfc337cb17ff7c9fe9431548231fe3",
        "input": "0xf305d7190000000000000000000000005e1a3ca002d04b3cfedb705320d6cfdf52d7fcf00000000000000000000000000000000000000000000000056bc75e2d63100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001144b522f45265c2dfdbaee8e324719e63a1694cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
        "to": "0x3a71241d2d880e0e09642db7b5b69277c0e1d455",
        "from": "0x1144b522f45265c2dfdbaee8e324719e63a1694c",
        "gas": "0x1fd7c8",
        "gasPrice": "0x989680",
        "nonce": "0xe",
        "value": "0xde0b6b3a7640000",
        "blockHash": "0xcad8c320cae32037415aab16ace767ee163a0eaedb29f2282e5acd2596f5d55f",
        "transactionIndex": "0x0",
        "blockNumber": "0x1b",
        "r": "0x2fbfb3ded113cbdb579c1bdbe252c3b30a40c5e7c5a644668f87cd889f154eed",
        "s": "0x165d8e90a47f3f1e095ae59f0688f38e89fba27912c75647534da4cc68c22d4c",
        "v": "0x66c"
    }
}

eth_getTransactionByBlockNumberAndIndex

Returns information about a transaction by block number and transaction index position.

Parameters

  1. Quantity or Tag - a block number, or the string 'earliest', 'latest' or 'pending', see the eth_getBlockByNumber.

  2. Quantity - The transaction index position.

params: [
  "0x29c", // 668
  "0x0" // 0
]

Returns

Example

Request

curl --data '{"method":"eth_getTransactionByBlockNumberAndIndex","params":["0x29c","0x1"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "hash": "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b",
    "nonce": "0x0", // 0
    "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b",
    "blockNumber": "0x29c", // 5599
    "transactionIndex": "0x1", // 1
    "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
    "to": "0x853f43d8a49eeb85d32cf465507dd71d507100c1",
    "value": "0x7f110", // 520464
    "gas": "0x7f110", // 520464
    "gasPrice": "0x09184e72a000",
    "input": "0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360"
  }
}

eth_getTransactionReceipt

Returns the receipt of a transaction by transaction hash.

Parameters

  1. Hash - hash of a transaction.

params: ["0x444172bef57ad978655171a8af2cfd89baa02a97fcb773067aef7794d6913374"]

Returns

  • Object - Receipt object

    • blockHash: Hash - 32 Bytes - hash of the block this transaction was in.

    • blockNumber: Quantity or Tag - block number this transaction was in.

    • contractAddress: Address - 20 Bytes - The contract address created, if the transaction was a contract creation, otherwise null.

    • cumulativeGasUsed: Quantity - The total amount of gas used when this transaction was executed in the block.

    • from: Address - 20 Bytes - The address of the sender.

    • to: Address - 20 Bytes - The address of the receiver. null when it’s a contract creation transaction.

    • gasUsed: Quantity - The amount of gas used by this specific transaction alone.

    • logs: Array - Array of log objects, which this transaction generated.

    • logsBloom: Hash - 256 Bytes - A bloom filter of logs/events generated by contracts during transaction execution. Used to efficiently rule out transactions without expected logs.

    • status: Quantity - 0x0 indicates transaction failure , 0x1 indicates transaction success. Set for blocks mined after Byzantium hard fork EIP609, null before.

    • transactionHash: Hash - 32 Bytes - hash of the transaction.

    • transactionIndex: Quantity - Integer of the transaction’s index position in the block.

Example

Request

curl --data '{"method":"eth_getTransactionReceipt","params":["0x444172bef57ad978655171a8af2cfd89baa02a97fcb773067aef7794d6913374"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "blockHash": "0x67c0303244ae4beeec329e0c66198e8db8938a94d15a366c7514626528abfc8c",
    "blockNumber": "0x6914b0",
    "contractAddress": "0x471a8bf3fd0dfbe20658a97155388cec674190bf", // or null, if none was created
    "from": "0xc931d93e97ab07fe42d923478ba2465f2",
    "to": null, // value is null because this example transaction is a contract creation
    "cumulativeGasUsed": "0x158e33",
    "gasUsed": "0xba2e6",
    "logs": [], // logs as returned by eth_getFilterLogs, etc.
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "status": "0x1",
    "transactionHash": "0x444172bef57ad978655171a8af2cfd89baa02a97fcb773067aef7794d6913374",
    "transactionIndex": "0x4"
  }
}

eth_getBalance

Returns the balance of the account of given address.

Parameters

  1. Address - 20 Bytes - address to check for balance.

  2. Quantity or Tag - (optional) integer block number, or the string 'latest', 'earliest' or 'pending', see the eth_getBlockByNumber.

params: ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]

Returns

  • Quantity - integer of the current balance in wei.

Example

Request

curl --data '{"method":"eth_getBalance","params":["0x407d73d8a49eeb85d32cf465507dd71d507100c1"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x0234c8a3397aab58"
}

eth_getBlockByHash

Returns information about a block by hash.

Parameters

  1. Hash - Hash of a block.

  2. Boolean - If true it returns the full transaction objects, if false only the hashes of the transactions.

params: [
  "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
  true
]

Returns

  • Object - A block object, or null when no block was found.

Example

Request

curl --data '{"method":"eth_getBlockByHash","params":["0xcad8c320cae32037415aab16ace767ee163a0eaedb29f2282e5acd2596f5d55f",true],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "number": "0x1b",
        "nonce": null,
        "difficulty": "0x0",
        "extraData": "0x00",
        "hash": "0xcad8c320cae32037415aab16ace767ee163a0eaedb29f2282e5acd2596f5d55f",
        "parentHash": "0x8afcf2f16afdd9b8d67ac646213d064f8ce65180192bb678fb5fb3d168ab82a8",
        "gasUsed": "0x1fd7c8",
        "minGasPrice": "0x989680",
        "gasLimit": "0x7a1200",
        "timestamp": "0x62b9f1af",
        "transactions": [
            "0xbf2d4552fba50efcf467da369b2f36596edfc337cb17ff7c9fe9431548231fe3"
        ]
    }
}

eth_accounts

Returns a list of addresses owned by client.

Parameters

None

Returns

  • Array - 20 Bytes - addresses owned by the client.

Example

Request

curl --data '{"method":"eth_accounts","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]
}

eth_sign

The sign method calculates an Ethereum specific signature with: sign(keccak256("Ethereum Signed Message: " + len(message) + message))).

Parameters

  1. Address - 20 Bytes - address.

  2. Data - Data which hash to sign.

params: [
  "0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826",
  "0x5363686f6f6c627573" // Schoolbus
]

Returns

  • Data - Signed data.

Example

Request

curl --data '{"method":"eth_sign","params":["0xcd2a3d9f938e13cd947ec05abc7fe734df8dd826","0x5363686f6f6c627573"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xb1092cb5b23c2aa55e5b5787729c6be812509376de99a52bea2b41e5a5f8601c5641e74d01e4493c17bf1ef8b179c49362b2c721222128d58422a539310c6ecd1b"
}

eth_signTransaction

Signs transactions without dispatching it to the network. It can be later submitted using eth_sendRawTransaction.

Parameters

Returns

  • Object - Signed transaction and it’s details:

Example

Request

curl --data '{"method":"eth_signTransaction","params":[{ ... }],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": {
    "raw": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
    "tx": {
      "hash": "0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b",
      "nonce": "0x0", // 0
      "blockHash": "0xbeab0aa2411b7ab17f30a99d3cb9c6ef2fc5426d6ad6fd9e2a26a6aed1d1055b",
      "blockNumber": "0x15df", // 5599
      "transactionIndex": "0x1", // 1
      "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
      "to": "0x853f43d8a49eeb85d32cf465507dd71d507100c1",
      "value": "0x7f110", // 520464
      "gas": "0x7f110", // 520464
      "gasPrice": "0x09184e72a000",
      "input": "0x603880600c6000396000f300603880600c6000396000f3603880600c6000396000f360"
    }
  }
}

personal_importRawKey

Imports the given unencrypted private key (hex string) into the key store, encrypting it with the passphrase.

Parameters

  1. Private Key - 32 Bytes - The private key of the account to import

  2. Passphrase - String - The Password for the account

Returns

  • Address - 20 Bytes - The imported account

Example

Request

curl --data '{"method":"personal_importRawKey","params":["7aa3b91561fceae29a8cb1affb3a9d9b3dec7a720685678ae890df0b6e6eed79", "12345678"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "0xa9d8863d0bf68dbaaacacad4ee0e865a0cc59f28"
}

personal_listAccounts

Lists all stored accounts.

Parameters

None

Returns

  • Array - A list of 20 byte account identifiers.

Example

Request

curl --data '{"method":"personal_listAccounts","params":[],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8765

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    "0x7bf87721a96849d168de02fd6ea5986a3a147383",
    "0xca807a90fd64deed760fb98bf0869b475c469348"
  ]
}

personal_lockAccount

Removes the private key with given address from memory. The account can no longer be used to send transactions.

Parameters

  1. Address - 20 Bytes - The address of the account to lock

Returns

  • Result - Boolean - true: account is locked

personal_newAccount

Creates new account.

Note: it becomes the new current unlocked account. There can only be one unlocked account at a time.

Parameters

  1. String - Password for the new account.

params: ["hunter2"]

Returns

  • Address - 20 Bytes - The identifier of the new account.

Example

Request

curl --data '{"method":"personal_newAccount","params":["hunter2"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x8f0227d45853a50eefd48dd4fec25d5b3fd2295e"
}

personal_unlockAccount

Decrypts the key with the given address from the key store. The unencrypted key will be held in memory until the unlock duration expires.

Parameters

  1. Address - 20 Bytes - The address of the account to unlock

  2. Passphrase - String - The password to unlock the account

Returns

  • Result - Boolean - true: account is unlocked

personal_sendTransaction

Sends transaction and signs it in a single call. The account does not need to be unlocked to make this call, and will not be left unlocked after.

Parameters

  1. Object - The transaction object

    • from: Address - 20 Bytes - The address the transaction is send from.

    • to: Address - (optional) 20 Bytes - The address the transaction is directed to.

    • gas: Quantity - (optional) Integer of the gas provided for the transaction execution. eth_call consumes zero gas, but this parameter may be needed by some executions.

    • gasPrice: Quantity - (optional) Integer of the gas price used for each paid gas.

    • value: Quantity - (optional) Integer of the value sent with this transaction.

    • data: Data - (optional) 4 byte hash of the method signature followed by encoded parameters. For details see Ethereum Contract ABI.

    • nonce: Quantity - (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce.

  2. String - Passphrase to unlock the from account.

params: [
  {
    "from": "0x407d73d8a49eeb85d32cf465507dd71d507100c1",
    "to": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
    "data": "0x41cd5add4fd13aedd64521e363ea279923575ff39718065d38bd46f0e6632e8e",
    "value": "0x186a0"
  },
  "hunter2"
]

Returns

  • Data - 32 Bytes - the transaction hash, or the zero hash if the transaction is not yet available

Example

Request

curl --data '{"method":"personal_sendTransaction","params":[{"from":"0x407d73d8a49eeb85d32cf465507dd71d507100c1","to":"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b","data":"0x41cd5add4fd13aedd64521e363ea279923575ff39718065d38bd46f0e6632e8e","value":"0x186a0"},"hunter2"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0x62e05075829655752e146a129a044ad72e95ce33e48ff48118b697e15e7b41e4"
}

personal_sign

Calculates an Ethereum specific signature with: sign(keccak256("Ethereum Signed Message: " + len(message) + message))).

Parameters

  1. Data - The data to sign

  2. Address - 20 Bytes - The address of the account to sign with

  3. String - Passphrase to unlock the from account.

params: [
  "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
  "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  "hunter"
]

Returns

  • Data - Signed data.

Example

Request

curl --data '{"method":"personal_sign","params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675","0xb60e8dd61c5d32be8058bb8eb970870f07233155","hunter"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xe7225f986f192f859a9bf84e34b2b7001dfa11aeb5c7164f81a2bee0d79943e2587be1faa11502eba0f803bb0ee071a082b6fe40fba025f3309263a1eef52c711c"
}

personal_ecRecover

Returns the address associated with the private key that was used to calculate the signature in personal_sign.

Parameters

  1. Data - The data which hash was signed.

  2. Data - Signed data.

params: [
  "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675",
  "0xe7225f986f192f859a9bf84e34b2b7001dfa11aeb5c7164f81a2bee0d79943e2587be1faa11502eba0f803bb0ee071a082b6fe40fba025f3309263a1eef52c711c"
]

Returns

  • Address - Address of the signer of the message.

Example

Request

curl --data '{"method":"personal_ecRecover","params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675","0xe7225f986f192f859a9bf84e34b2b7001dfa11aeb5c7164f81a2bee0d79943e2587be1faa11502eba0f803bb0ee071a082b6fe40fba025f3309263a1eef52c711c"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545

Response

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": "0xb60e8dd61c5d32be8058bb8eb970870f07233155"
}

Last updated