RPC Interfaces ================ -------------- A collection holding all the Ethereum JSON RPC API calls -------------- web3_clientVersion ------------- :: POST http://localhost:8545 Returns the current client version. **Parameters** none **Returns** ``String`` - The current client version -------------- Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc": "2.0", "method": "web3_clientVersion", "params": [], "id": 1 } -------------- web3_sha3 ---- :: POST http://localhost:8545 Returns Keccak-256 (not the standardized SHA3-256) of the given data. **Parameters** ``DATA`` - The data to convert into a SHA3 hash :: params: [ "0x68656c6c6f20776f726c64" ] **Returns** ``DATA`` - The SHA3 result of the given string -------------- .. _request-1: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"web3_sha3", "params":["0x68656c6c6f20776f726c64"], "id":64 } -------------- net_listening --------- :: POST http://localhost:8545 Returns ``true`` if client is actively listening for network connections. **TODO** Remove hard coded value **Parameters** none **Returns** ``Boolean`` - ``true`` when listening, ``false`` otherwise -------------- .. _request-2: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"net_listening", "params":[], "id":67 } -------------- net_version ------- :: POST http://localhost:8545 Returns the current network id. **Parameters** none **Returns** ``String`` - The current network id ``"1"``: Ethereum Mainnet ``"2"``: Morden Testnet (deprecated) ``"3"``: Ropsten Testnet ``"4"``: Rinkeby Testnet ``"42"``: Kovan Testnet -------------- .. _request-3: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"net_version", "params":[], "id":67 } -------------- net_peerCount --------- :: POST http://localhost:8545 Returns number of peers currently connected to the client. **TODO** This routine currently returns a hard coded value of ‘25’ **Parameters** none **Returns** ``QUANTITY`` - Integer of the number of connected peers -------------- .. _request-4: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"net_peerCount", "params":[], "id":74 } -------------- eth_getBlockByNumber ---------------- :: POST http://localhost:8545 Returns information about a block given the block’s number. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter ``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. See ``eth_getBlockByHash`` -------------- .. _request-5: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getBlockByNumber", "params":[ "0xf4629", false ], "id":1 } -------------- eth_getBlockByHash -------------- :: POST http://localhost:8545 Returns information about a block given the block’s hash. **Parameters** ``DATA``, 32 Bytes - Hash of a block ``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 ``number``: ``QUANTITY`` - The block number. null when its pending block ``hash``: ``DATA``, 32 Bytes - hash of the block. ``null`` when its pending block ``parentHash``: ``DATA``, 32 Bytes - hash of the parent block ``nonce``: ``DATA``, 8 Bytes - hash of the generated proof-of-work. ``null`` when its pending block ``sha3Uncles``: ``DATA``, 32 Bytes - SHA3 of the uncles data in the block ``logsBloom``: ``DATA``, 256 Bytes - The bloom filter for the logs of the block. ``null`` when its pending block ``transactionsRoot``: ``DATA``, 32 Bytes - The root of the transaction trie of the block ``stateRoot``: ``DATA``, 32 Bytes - The root of the final state trie of the block ``receiptsRoot``: ``DATA``, 32 Bytes - The root of the receipts trie of the block ``miner``: ``DATA``, 20 Bytes - The address of the beneficiary to whom the mining rewards were given ``difficulty``: ``QUANTITY`` - Integer of the difficulty for this block ``totalDifficulty``: ``QUANTITY`` - Integer of the total difficulty of the chain until this block ``extraData``: ``DATA`` - The “extra data” field of this block ``size``: ``QUANTITY`` - integer the size of this block in bytes ``gasLimit``: ``QUANTITY`` - The maximum gas 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 ``uncles``: ``Array`` - Array of uncle hashes -------------- .. _request-6: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getBlockByHash", "params":[ "0x0b4c6fb75ded4b90218cf0346b0885e442878f104e1b60bf75d5b6860eeacd53", false ], "id":1 } -------------- eth_getBlockTransactionCountByNumber -------------------------------- :: POST http://localhost:8545 Returns the number of transactions in a block given the block’s block number. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter :: params: [ '0xe8', // 232 ] **Returns** ``QUANTITY`` - Integer of the number of transactions in this block -------------- .. _request-7: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getBlockTransactionCountByNumber", "params":[ "0xf4629" ], "id":1 } -------------- eth_getBlockTransactionCountByHash ------------------------------ :: POST http://localhost:8545 Returns the number of transactions in a block given the block’s block hash. **Parameters** ``DATA``, 32 Bytes - hash of a block :: params: [ '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238' ] **Returns** ``QUANTITY`` - Integer of the number of transactions in this block -------------- .. _request-8: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getBlockTransactionCountByHash", "params":[ "0x0b4c6fb75ded4b90218cf0346b0885e442878f104e1b60bf75d5b6860eeacd53" ], "id":1 } -------------- eth_getTransactionByHash -------------------- :: POST http://localhost:8545 Returns information about a transaction given the transaction’s hash. **Parameters** ``DATA``, 32 Bytes - hash of a transaction :: params: [ "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238" ] **Returns** ``Object`` - A transaction object, or null when no transaction was found ``hash``: ``DATA``, 32 Bytes - hash of the transaction ``nonce``: ``QUANTITY`` - The number of transactions made by the sender prior to this one ``blockHash``: ``DATA``, 32 Bytes - hash of the block where this transaction was in. ``null`` when its pending ``blockNumber``: ``QUANTITY`` - 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``: ``DATA``, 20 Bytes - address of the sender ``to``: ``DATA``, 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 -------------- .. _request-9: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getTransactionByHash", "params":[ "0xb2fea9c4b24775af6990237aa90228e5e092c56bdaee74496992a53c208da1ee" ], "id":1 } -------------- eth_getTransactionByBlockHashAndIndex --------------------------------- :: POST http://localhost:8545 Returns information about a transaction given the block’s hash and a transaction index. **Parameters** ``DATA``, 32 Bytes - hash of a block ``QUANTITY`` - Integer of the transaction index position :: params: [ '0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331', '0x0' // 0 ] **Returns** ``Object`` - A transaction object, or null when no transaction was found. See ``eth_getTransactionByHash`` -------------- .. _request-10: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getTransactionByBlockHashAndIndex", "params":[ "0x785b221ec95c66579d5ae14eebe16284a769e948359615d580f02e646e93f1d5", "0x25" ], "id":1 } -------------- eth_getTransactionByBlockNumberAndIndex ----------------------------------- :: POST http://localhost:8545 Returns information about a transaction given a block number and transaction index. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter ``QUANTITY`` - The transaction index position :: params: [ '0x29c', // 668 '0x0' // 0 ] **Returns** ``Object`` - A transaction object, or null when no transaction was found. See ``eth_getTransactionByHash`` -------------- .. _request-11: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getTransactionByBlockNumberAndIndex", "params":[ "0x52a90b", "0x25" ], "id":1 } -------------- eth_getTransactionReceipt --------------------- :: POST http://localhost:8545 Returns the receipt of a transaction given the transaction’s hash. **Note** That the receipt is not available for pending transactions. **Parameters** ``DATA``, 32 Bytes - hash of a transaction :: params: [ '0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238' ] **Returns** ``Object`` - A transaction receipt object, or ``null`` when no receipt was found ``transactionHash``: ``DATA``, 32 Bytes - hash of the transaction ``transactionIndex``: ``QUANTITY`` - Integer of the transactions index position in the block ``blockHash``: ``DATA``, 32 Bytes - hash of the block where this transaction was in ``blockNumber``: ``QUANTITY`` - block number where this transaction was in ``cumulativeGasUsed``: ``QUANTITY`` - The total amount of gas used when this transaction was executed in the block ``gasUsed``: ``QUANTITY`` - The amount of gas used by this specific transaction alone ``contractAddress``: ``DATA``, 20 Bytes - The contract address created, if the transaction was a contract creation, ``null`` otherwise ``logs``: ``Array`` - Array of log objects, which this transaction generated ``logsBloom``: ``DATA``, 256 Bytes - Bloom filter for light clients to quickly retrieve related logs It also returns either ``root`` : ``DATA`` 32 bytes of post-transaction stateroot (if the block is pre-Byzantium) ``status``: ``QUANTITY`` either ``1`` (success) or ``0`` (failure) -------------- .. _request-12: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getTransactionReceipt", "params":[ "0xa3ece39ae137617669c6933b7578b94e705e765683f260fcfe30eaa41932610f" ], "id":1 } -------------- eth_getUncleByBlockNumberAndIndex ----------------------------- :: POST http://localhost:8545 Returns information about an uncle given a block’s number and the index of the uncle. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter ``QUANTITY`` - The uncle’s index position :: params: [ '0x29c', // 668 '0x0' // 0 ] **Returns** ``Object`` - A block object (with zero transactions), or null when no uncle was found. See ``eth_getBlockByHash`` -------------- .. _request-13: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getUncleByBlockNumberAndIndex", "params":[ "0x3", "0x0" ], "id":1 } -------------- eth_getUncleByBlockHashAndIndex --------------------------- :: POST http://localhost:8545 Returns information about an uncle given a block’s hash and the index of the uncle. **Parameters** ``DATA``, 32 Bytes - hash a block ``QUANTITY`` - The uncle’s index position :: params: [ '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b', '0x0' // 0 ] **Returns** ``Object`` - A block object (with zero transactions), or null when no uncle was found. See ``eth_getBlockByHash`` -------------- .. _request-14: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getUncleByBlockHashAndIndex", "params":[ "0x3d6122660cc824376f11ee842f83addc3525e2dd6756b9bcf0affa6aa88cf741", "0x0" ], "id":1 } -------------- eth_getUncleCountByBlockNumber -------------------------- :: POST http://localhost:8545 Returns the number of uncles in the block, if any. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter :: params: [ '0x29c' // 668 ] **Returns** ``QUANTITY`` - The number of uncles in the block, if any -------------- .. _request-15: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getUncleByBlockNumberAndIndex", "params":[ "0x3", "0x0" ], "id":1 } -------------- eth_getUncleCountByBlockHash ------------------------ :: POST http://localhost:8545 Returns the number of uncles in the block, if any. **Parameters** ``DATA``, 32 Bytes - hash a block :: params: [ '0xc6ef2fc5426d6ad6fd9e2a26abeab0aa2411b7ab17f30a99d3cb96aed1d1055b', '0x0' // 0 ] **Returns** ``QUANTITY`` - The number of uncles in the block, if any -------------- .. _request-16: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getUncleByBlockHashAndIndex", "params":[ "0x3d6122660cc824376f11ee842f83addc3525e2dd6756b9bcf0affa6aa88cf741", "0x0" ], "id":1 } -------------- eth_newPendingTransactionFilter --------------------------- :: POST http://localhost:8545 Creates a pending transaction filter in the node. To check if the state has changed, call ``eth_getFilterChanges``. **Parameters** None **Returns** ``QUANTITY`` - A filter id -------------- .. _request-17: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_newPendingTransactionFilter", "params":[], "id":73 } -------------- eth_newBlockFilter -------------- :: POST http://localhost:8545 Creates a block filter in the node, to notify when a new block arrives. To check if the state has changed, call ``eth_getFilterChanges``. **Parameters** None **Returns** ``QUANTITY`` - A filter id -------------- .. _request-18: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_newBlockFilter", "params":[], "id":73 } -------------- eth_newFilter --------- :: POST http://localhost:8545 Creates an arbitrary filter object, based on filter options, to notify when the state changes (logs). To check if the state has changed, call ``eth_getFilterChanges``. **Example** A note on specifying topic filters Topics are order-dependent. A transaction with a log with topics [A, B] will be matched by the following topic filters ``[]`` “anything” ``[A]`` “A in first position (and anything after)” ``[null, B]`` “anything in first position AND B in second position (and anything after)” ``[A, B]`` “A in first position AND B in second position (and anything after)” ``[[A, B], [A, B]]`` “(A OR B) in first position AND (A OR B) in second position (and anything after)” **Parameters** ``Object`` - The filter options ``fromBlock``: ``QUANTITY|TAG`` - (optional, default ``"latest"``) Integer block number, or ``"latest"`` for the last mined block or ``"pending"``, ``"earliest"`` for not yet mined transactions ``toBlock``: ``QUANTITY|TAG`` - (optional, default ``"latest"``) Integer block number, or ``"latest"`` for the last mined block or ``"pending"``, ``"earliest"`` for not yet mined transactions ``address``: ``DATA|Array`` of DATA, 20 Bytes - (optional) Contract address or a list of addresses from which logs should originate ``topics``: ``Array of DATA``, - (optional) Array of 32 Bytes DATA topics. Topics are order-dependent. Each topic can also be an array of DATA with “or” options :: params: [{ "fromBlock": "0x1", "toBlock": "0x2", "address": " 0x8888f1f195afa192cfee860698584c030f4c9db1", "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", null, ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b", "0x0000000000000000000000000aff3454fce5edbc8cca8697c15331677e6ebccc"]] }] **Returns** ``QUANTITY`` - A filter id -------------- .. _request-19: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_newFilter", "params":[ { "topics":["0x12341234"] } ], "id":73 } -------------- eth_uninstallFilter --------------- :: POST http://localhost:8545 Uninstalls a previously-created filter given the filter’s id. Always uninstall filters when no longer needed. **Note** Filters timeout when they are not requested with eth_getFilterChanges for a period of time. **Parameters** ``QUANTITY`` - The filter id :: params: [ "0xb" // 11 ] **Returns** ``Boolean`` - ``true`` if the filter was successfully uninstalled, ``false`` otherwise -------------- .. _request-20: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_uninstallFilter", "params":[ "0xb" ], "id":73 } -------------- eth_getFilterChanges ---------------- :: POST http://localhost:8545 Polling method for a previously-created filter, which returns an array of logs which occurred since last poll. **Parameters** ``QUANTITY`` - The filter id :: params: [ "0x16" // 22 ] **Returns** ``Array`` - Array of log objects, or an empty array if nothing has changed since last poll For filters created with ``eth_newBlockFilter`` the return are block hashes (``DATA``, 32 Bytes), e.g. ``["0x3454645634534..."]`` For filters created with ``eth_newPendingTransactionFilter`` the return are transaction hashes (``DATA``, 32 Bytes), e.g. ``["0x6345343454645..."]`` For filters created with ``eth_newFilter`` logs are objects with following params ``removed``: ``TAG`` - true when the log was removed, due to a chain reorganization. false if its a valid log ``logIndex``: ``QUANTITY`` - Integer of the log index position in the block. ``null`` when its pending log ``transactionIndex``: ``QUANTITY`` - Integer of the transactions index position log was created from. ``null`` when its pending log ``transactionHash``: ``DATA``, 32 Bytes - hash of the transactions this log was created from. ``null`` when its pending log ``blockHash``: ``DATA``, 32 Bytes - hash of the block where this log was in. ``null`` when its pending. ``null`` when its pending log ``blockNumber``: ``QUANTITY`` - The block number where this log was in. ``null`` when its pending. ``null`` when its pending log ``address``: ``DATA``, 20 Bytes - address from which this log originated ``data``: ``DATA`` - contains one or more 32 Bytes non-indexed arguments of the log ``topics``: ``Array of DATA`` - Array of 0 to 4 32 Bytes DATA of indexed log arguments. (In solidity: The first topic is the hash of the signature of the event (e.g. ``Deposit(address,bytes32,uint256)``), except you declared the event with the anonymous specifier.) -------------- .. _request-21: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getFilterChanges", "params":[ "0x16" ], "id":73 } -------------- eth_getLogs ------- :: POST http://localhost:8545 Returns an array of logs matching a given filter object. **Parameters** ``Object`` - The filter object, see eth_newFilter parameters :: params: [{ "topics": ["0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b"] }] **Returns** ``Array`` - Array of log objects, or an empty array if nothing has changed since last poll. See ``eth_getFilterChanges`` -------------- .. _request-22: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getLogs", "params":[{ "topics":[ "0x000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b" ] }], "id":74 } -------------- eth_accounts (deprecated) --------------------- :: POST http://localhost:8545 Returns a list of addresses owned by the client. **Deprecated** This function will be removed in the future. **Parameters** none **Returns** ``Array of DATA``, 20 Bytes - addresses owned by the client -------------- .. _request-23: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_accounts", "params":[], "id":1 } -------------- eth_getBalance ---------- :: POST http://localhost:8545 Returns the balance of an account for a given address. **Parameters** ``DATA``, 20 Bytes - address to check for balance ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter :: params: [ ' 0x407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest' ] **Returns** ``QUANTITY`` - Integer of the current balance in wei -------------- .. _request-24: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getBalance", "params":[ "0x5df9b87991262f6ba471f09758cde1c0fc1de734", "0xb443" ], "id":1 } -------------- eth_getTransactionCount ------------------- :: POST http://localhost:8545 Returns the number of transactions sent from an address (the nonce). **Parameters** ``DATA``, 20 Bytes - address ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter :: params: [ '0x407d73d8a49eeb85d32cf465507dd71d507100c1', 'latest' // state at the latest block ] **Returns** ``QUANTITY`` - Integer of the number of transactions sent from this address -------------- .. _request-25: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getTransactionCount", "params":[ "0xfd2605a2bf58fdbb90db1da55df61628b47f9e8c", "0xc443" ], "id":1 } -------------- eth_getCode ------- :: POST http://localhost:8545 Returns the byte code at a given address (if it’s a smart contract). **Parameters** ``DATA``, 20 Bytes - Address from which to retreive byte code ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter :: params: [ ' 0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b', '0x2' // 2 ] **Returns** ``DATA`` - The byte code (if any) found at the given address -------------- .. _request-26: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getCode", "params":[ "0x109c4f2ccc82c4d77bde15f306707320294aea3f", "0xc443" ], "id":1 } -------------- eth_getStorageAt ------------ :: POST http://localhost:8545 Returns the value from a storage position at a given address. **Parameters** ``DATA``, 20 Bytes - Address of the contract whose storage to retreive ``QUANTITY`` - Integer of the position in the storage ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter **Returns** ``DATA`` - The value at this storage position **Example** Calculating the correct position depends on the storage to retrieve. Consider the following contract deployed at 0x295a70b2de5e3953354a6a8344e616ed314d7251 by address 0x391694e7e0b0cce554cb130d723a9d27458f9298. :: contract Storage { uint pos0; mapping(address => uint) pos1; function Storage() { pos0 = 1234; pos1[msg.sender] = 5678; } } Retrieving the value of pos0 is straight forward: :: curl -X POST --data '{"jsonrpc":"2.0", "method": "eth_getStorageAt", "params": ["0x295a70b2de5e3953354a6a8344e616ed314d7251", "0x0", "latest"], "id": 1}' {{HOST}} {"jsonrpc":"2.0","id":1,"result":"0x00000000000000000000000000000000000000000000000000000000000004d2"} Retrieving an element of the map is harder. The position of an element in the map is calculated with: :: keccack(LeftPad32(key, 0), LeftPad32(map position, 0)) This means to retrieve the storage on ``pos1["0x391694e7e0b0cce554cb130d723a9d27458f9298"]`` we need to calculate the position with: :: keccak(decodeHex("000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001")) The geth console which comes with the web3 library can be used to make the calculation: :: > var key = "000000000000000000000000391694e7e0b0cce554cb130d723a9d27458f9298" + "0000000000000000000000000000000000000000000000000000000000000001" undefined > web3.sha3(key, {"encoding": "hex"}) "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9" -------------- .. _request-27: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method": "eth_getStorageAt", "params": [ "0x109c4f2ccc82c4d77bde15f306707320294aea3f", "0x0", "0xc443" ], "id": 1 } -------------- eth_blockNumber ----------- :: POST http://localhost:8545 Returns the block number of most recent block. **Parameters** none **Returns** ``QUANTITY`` - Integer of the current highest block number the client is on -------------- .. _request-28: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_blockNumber", "params":[], "id":83 } -------------- eth_syncing ------- :: POST http://localhost:8545 Returns a data object detaling the status of the sync process or false if not syncing. **Parameters** none **Returns** ``Object / Boolean``, 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 his head) ``currentBlock``: ``QUANTITY`` - The current block, same as eth_blockNumber ``highestBlock``: ``QUANTITY`` - The estimated highest block -------------- .. _request-29: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_syncing", "params":[], "id":1 } -------------- eth_chainId ------- :: POST http://localhost:8545 Returns the current ethereum chainId. **Parameters** none **Returns** ``QUANTITY`` - The current chainId -------------- .. _request-30: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_chainId", "params":[], "id":67 } -------------- eth_protocolVersion --------------- :: POST http://localhost:8545 Returns the current ethereum protocol version. **Parameters** none **Returns** ``QUANTITY`` - The current ethereum protocol version -------------- .. _request-31: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_protocolVersion", "params":[], "id":67 } -------------- eth_gasPrice -------- :: POST http://localhost:8545 Returns the current price per gas in wei. **Parameters** none **Returns** ``QUANTITY`` - Integer of the current gas price in wei -------------- .. _request-32: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_gasPrice", "params":[], "id":73 } -------------- eth_call ---- :: POST http://localhost:8545 Executes a new message call immediately without creating a transaction on the block chain. **Parameters** ``Object`` - The transaction call object ``from``: ``DATA``, 20 Bytes - (optional) The address the transaction is sent from ``to``: ``DATA``, 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 gasPrice used for each paid gas ``value``: ``QUANTITY`` - (optional) Integer of the value sent with this transaction ``data``: ``DATA`` - (optional) Hash of the method signature and encoded parameters. For details see Ethereum Contract ABI ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter **Returns** ``DATA`` - The return value of executed contract -------------- .. _request-33: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_call", "params":[ { "to": "0x08a2e41fb99a7599725190b9c970ad3893fa33cf", "data": "0x18160ddd" }, "0xa2f2e0" ], "id":1 } -------------- eth_estimateGas ----------- :: POST http://localhost:8545 Returns an estimate of how much gas is necessary to allow the transaction to complete. The transaction will not be added to the blockchain. **Note** The estimate may be significantly more than the amount of gas actually used by the transaction for a variety of reasons including EVM mechanics and node performance. **Note** If no gas limit is specified geth uses the block gas limit from the pending block as an upper bound. As a result the returned estimate might not be enough to executed the call/transaction when the amount of gas is higher than the pending block gas limit. **Parameters** ``Object`` - The transaction call object. See ``eth_call`` parameters, expect that all properties are optional **Returns** ``QUANTITY`` - The estimated amount of gas needed for the call -------------- .. _request-34: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_estimateGas", "params":[ { "to": "0x3d597789ea16054a084ac84ce87f50df9198f415", "from": "0x3d597789ea16054a084ac84ce87f50df9198f415", "value": "0x1" } ], "id":1 } -------------- eth_sendTransaction --------------- :: POST http://localhost:8545 Creates new message call transaction or a contract creation if the data field contains code. **Note** Use ``eth_getTransactionReceipt`` to get the contract address, after the transaction was mined, when you created a contract **Parameters** ``Object`` - The transaction object ``from``: ``DATA``, 20 Bytes - The address the transaction is send from ``to``: ``DATA``, 20 Bytes - (optional when creating new contract) The address the transaction is directed to ``gas``: ``QUANTITY`` - (optional, default 90000) Integer of the gas provided for the transaction execution. It will return unused gas ``gasPrice``: ``QUANTITY`` - (optional, default To-Be-Determined) Integer of the gasPrice used for each paid gas ``value``: ``QUANTITY`` - (optional) Integer of the value sent with this transaction ``data``: ``DATA`` - The compiled code of a contract OR the hash of the invoked method signature and 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 :: params: [{ "from": " 0xb60e8dd61c5d32be8058bb8eb970870f07233155", "to": " 0xd46e8dd67c5d32be8058bb8eb970870f07244567", "gas": "0x76c0", // 30400 "gasPrice": "0x9184e72a000", // 10000000000000 "value": "0x9184e72a", // 2441406250 "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675" }] **Returns** ``DATA``, 32 Bytes - The transaction hash, or the zero hash if the transaction is not yet available -------------- .. _request-35: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_sendTransaction", "params":[{ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155", "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567_hangs_parity", "gas": "0x76c0", "gasPrice": "0x9184e72a000", "value": "0x9184e72a", "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675" }], "id":1 } -------------- eth_sendRawTransaction ------------------ :: POST http://localhost:8545 Creates new message call transaction or a contract creation for previously-signed transactions. **Note** Use ``eth_getTransactionReceipt`` to get the contract address, after the transaction was mined, when you created a contract. **Parameters** ``DATA``, The signed transaction data :: params: ["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"] **Returns** ``DATA``, 32 Bytes - The transaction hash, or the zero hash if the transaction is not yet available -------------- .. _request-36: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_sendRawTransaction", "params":["0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"], "id":1 } -------------- eth_coinbase -------- :: POST http://localhost:8545 Returns the current client coinbase address. **Parameters** none **Returns** ``DATA``, 20 bytes - The current coinbase address -------------- .. _request-37: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_coinbase", "params":[], "id":64 } -------------- eth_hashrate -------- :: POST http://localhost:8545 Returns the number of hashes per second that the node is mining with. **Parameters** none **Returns** ``QUANTITY`` - Number of hashes per second -------------- .. _request-38: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_hashrate", "params":[], "id":71 } -------------- eth_mining ------ :: POST http://localhost:8545 Returns ``true`` if client is actively mining new blocks. **Parameters** none **Returns** ``Boolean`` - ``true`` if the client is mining, ``false`` otherwise -------------- .. _request-39: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_mining", "params":[], "id":71 } -------------- eth_getWork ------- :: POST http://localhost:8545 Returns the hash of the current block, the seedHash, and the boundary condition to be met (“target”). **Parameters** none **Returns** ``Array`` of DATA, 32 Bytes - Array of three hashes representing block header pow-hash, seed hash and boundary condition ``DATA``, 32 Bytes - current block header pow-hash ``DATA``, 32 Bytes - The seed hash used for the DAG ``DATA``, 32 Bytes - The boundary condition (“target”), 2^256 / difficulty -------------- .. _request-40: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getWork", "params":[], "id":73 } -------------- eth_submitWork ---------- :: POST http://localhost:8545 Submits a proof-of-work solution to the blockchain. **Parameters** ``DATA``, 8 Bytes - The nonce found (64 bits) ``DATA``, 32 Bytes - The header’s pow-hash (256 bits) ``DATA``, 32 Bytes - The mix digest (256 bits) :: params: [ "0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1FE5700000000000000000000000000D1FE5700000000000000000000000000" ] **Returns** ``Boolean`` - ``true`` if the provided solution is valid, ``false`` otherwise -------------- .. _request-41: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_submitWork", "params":[ "0x1", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD16E5700000000000000000000000000D16E5700000000000000000000000000" ], "id":73 } -------------- eth_submitHashrate -------------- :: POST http://localhost:8545 Submit the mining hashrate to the blockchain. **Parameters** ``DATA``, 32 Bytes - a hexadecimal string representation (32 bytes) of the hash rate ``ID``, String - A random hexadecimal(32 bytes) ID identifying the client :: params: [ "0x0000000000000000000000000000000000000000000000000000000000500000", "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c" ] **Returns** ``Boolean`` - ``true`` if submitting went through succesfully, ``false`` otherwise -------------- .. _request-42: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_submitHashrate", "params":[ "0x0000000000000000000000000000000000000000000000000000000000500000", "0x59daa26581d0acd1fce254fb7e85952f4c09d0915afd33d3886cd914bc7d283c" ], "id":73 } -------------- .. _call-1: trace_call ---- :: POST http://localhost:8545 Call(ctx context.Context, call CallParam, blockNr rpc.BlockNumber) ([]interface{}, error) -------------- .. _request-43: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_call", "params":[], "id":1 } -------------- trace_callMany -------- :: POST http://localhost:8545 CallMany(ctx context.Context, calls CallParams) ([]interface{}, error) -------------- .. _request-44: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_callMany", "params":[], "id":1 } -------------- trace_rawTransaction -------------- :: POST http://localhost:8545 RawTransaction(ctx context.Context, txHash common.Hash, traceTypes []string) ([]interface{}, error) -------------- .. _request-45: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_rawTransaction", "params":[], "id":1 } -------------- trace_replayBlockTransactions ----------------------- :: POST http://localhost:8545 ReplayBlockTransactions(ctx context.Context, blockNr rpc.BlockNumber, traceTypes []string) ([]interface{}, error) -------------- .. _request-46: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_replayBlockTransactions", "params":[], "id":1 } -------------- trace_replayTransaction ----------------- :: POST http://localhost:8545 ReplayTransaction(ctx context.Context, txHash common.Hash, traceTypes []string) ([]interface{}, error) -------------- .. _request-47: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_replayTransaction", "params":[], "id":1 } -------------- trace_transaction ----------- :: POST http://localhost:8545 Transaction(ctx context.Context, txHash common.Hash) (ParityTraces, error) -------------- .. _request-48: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_transaction", "params":[], "id":1 } -------------- trace_get --- :: POST http://localhost:8545 Get(ctx context.Context, txHash common.Hash, txIndicies []hexutil.Uint64) (*ParityTrace, error) -------------- .. _request-49: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_get", "params":[], "id":1 } -------------- trace_block ----- :: POST http://localhost:8545 Block(ctx context.Context, blockNr rpc.BlockNumber) (ParityTraces, error) -------------- .. _request-50: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_block", "params":[], "id":1 } -------------- trace_filter ------ :: POST http://localhost:8545 Filter(ctx context.Context, req TraceFilterRequest) (ParityTraces, error) -------------- .. _request-51: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"trace_filter", "params":[], "id":1 } -------------- tg_forks ----- :: POST http://localhost:8545 Returns the genesis block hash and a sorted list of already passed fork block numbers as well as the next fork block (if applicable) **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter **Returns** A structure of the type Forks :: type Forks struct { genesis common.Hash // the hash of the genesis block passed []uint64 // array of block numbers passed by this client next *uint64 // the next fork block (may be empty) } -------------- .. _request-52: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"tg_forks", "params":["latest"], "id":1 } -------------- tg_getHeaderByNumber ----------------- :: POST http://localhost:8545 Returns a block’s header given a block number ignoring the block’s transaction and uncle list (may be faster). **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter **Returns** ``Object`` - A block object, or null when no block was found. See ``eth_getBlockByHash`` -------------- .. _request-53: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"tg_getHeaderByNumber", "params":[ "0x3" ], "id":1 } -------------- tg_getHeaderByHash --------------- :: POST http://localhost:8545 Returns a block’s header given a block’s hash. **Parameters** ``DATA``, 32 Bytes - Hash of a block :: params: [ '0x3d6122660cc824376f11ee842f83addc3525e2dd6756b9bcf0affa6aa88cf741' ] **Returns** ``Object`` - A block object, or null when no block was found. See ``eth_getBlockByHash`` -------------- .. _request-54: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"tg_getHeaderByHash", "params":[ "0x3d6122660cc824376f11ee842f83addc3525e2dd6756b9bcf0affa6aa88cf741" ], "id":1 } -------------- tg_getLogsByHash ------------- :: POST http://localhost:8545 Returns an array of arrays of logs generated by the transactions in the block given by the block’s hash. **Note:** The returned value is an array of arrays of log entries. There is an entry for each transaction in the block. If transaction ``X`` did not create any logs, the entry at ``result[X]`` will be ``null`` If transaction ``X`` generated ``N`` logs, the entry at position ``result[X]`` will be an array of ``N`` log objects **Parameters** ``blockHash``: ``DATA``, 32 bytes, hash of block at which to retreive data **Returns** ``Array`` - An array of arrays of log objects, some of which may be ``null``, found in the block. See ``eth_getFilterChanges`` -------------- .. _request-55: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getLogsByHash", "params":[ "0x2f244c154cbacb0305581295b80efa6dffb0224b60386a5fc6ae9585e2a140c4" ], "id":1 } -------------- tg_issuance -------- :: POST http://localhost:8545 Returns the total issuance (block reward plus uncle reward) for the given block. **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter **Returns** ``Object`` - an ``Issuance`` object of type :: { blockReward: "0x478eae0e571ba000", // the issuance to the miner of the block (includes nephew reward but not transaction fees) uncleReward: "0x340aad21b3b70000", // the issuance to miners of included uncle (if any) issuance: "0x7b995b300ad2a000" // the sum of blockReward and uncleReward } -------------- .. _request-56: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"tg_issuance", "params":[ "0x3" ], "id":1 } -------------- debug_storageRangeAt -------------- :: POST http://localhost:8545 Returns information about a range of storage locations (if any) for the given address. **Parameters** ``blockHash``: ``DATA``, 32 bytes, hash of block at which to retreive data ``txIndex``: ``QUANTITY``, 8 bytes, transaction index in the give block ``contractAddress``: ``DATA`` 20 bytes, contract address from which to retreive storage data ``keyStart``: ``DATA`` 32 bytes, storage key to retreive ``maxResult``: QUANTITY, 8 bytes, the number of values to retreive **Returns** Returns ``StorageRangeResult`` which is defined as :: type StorageRangeResult struct { `storage` StorageMap // see below `nextKey` *common.Hash // nil if `storage` includes the last key in the trie } ``StorageMap`` is a type defined as ``map[common.Hash]StorageEntry`` and ``StorageEntry`` is defined as :: type StorageEntry struct { key *common.Hash value common.Hash } -------------- .. _request-57: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"debug_storageRangeAt", "params":[ "0xd3f1853788b02e31067f2c6e65cb0ae56729e23e3c92e2393af9396fa182701d", 1, "0xb734c74ff4087493373a27834074f80acbd32827", "0x00", 2 ], "id":1 } -------------- debug_accountRange ------------ :: POST http://localhost:8545 Returns a range of accounts involved in the given block range **Parameters** ``QUANTITY|TAG`` - Integer of a block number, or the string ``"earliest"``, ``"latest"`` or ``"pending"``, as in the default block parameter ``keyStart``: DATA, N bytes, a prefix against which to match account addresses (report only on accounts addresses that begin with this prefix, default matches all accounts) ``maxResult``: QUANTITY, 8 bytes, the maximum number of accounts to retreive ``excludeCode``: ``Boolean``, if ``true``, do not return byte code from the address, if ``false`` return the byte code (if any) ``excludeStorage``: ``Boolean``, if ``true``, do not return storage from the address, if ``false`` return storage (if any) ``excludeMissingPreimages``: ``Boolean``, if ``true``, do not return missing preimages, if ``false`` do return them **Returns** Returns ``IteratorDump`` which is defined as :: type IteratorDump struct { root string accounts map[common.Address]DumpAccount next []byte // nil if no more accounts } ``DumpAccount`` is a type defined as :: type DumpAccount struct { balance string nonce uint64 root string codeHash string code string storage map[string]string address *common.Address secureKey hexutil.Bytes // If we don't have address, we can output the key } -------------- .. _request-58: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"debug_accountRange", "params":[ "0x2", [10], 1, true, true, true ], "id":1 } -------------- debug_getModifiedAccountsByNumber --------------------------- :: POST http://localhost:8545 Returns a list of accounts modified in the given block. **Parameters** ``startNum``: ``QUANTITY|TAG`` - Integer of a first block number to process, or the string ``"earliest"``, ``"latest"`` or ``"pending"`` ``endNum``: ``QUANTITY|TAG`` - Integer of a last block number (inclusive) to process, or the string ``"earliest"``, ``"latest"`` or ``"pending"``. Optional, defaults to ``startNum`` **Returns** ``Array`` of ``DATA``, 20 Bytes - Array of addresses modifed in the given block range -------------- .. _request-59: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"debug_getModifiedAccountsByNumber", "params":[ "0xccccd", "0xcccce" ], "id":1 } -------------- debug_getModifiedAccountsByHash ------------------------- :: POST http://localhost:8545 Returns a list of accounts modified in the given block. **Parameters** ``startHash``: ``DATA``, 32 bytes, the first hash of block at which to retreive data ``endHash``: ``DATA``, 32 bytes, the last hash of block at which to retreive data. Optional, defaults to ``startHash`` **Returns** ``Array`` of ``DATA``, 20 Bytes - Array of addresses modifed in the given block range -------------- .. _request-60: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"debug_getModifiedAccountsByHash", "params":[ "0x2a1af018e33bcbd5015c96a356117a5251fcccf94a9c7c8f0148e25fdee37aec", "0x4e3d3e7eee350df0ee6e94a44471ee2d22cfb174db89bbf8e6c5f6aef7b360c5" ], "id":1 } -------------- debug_traceTransaction ---------------- :: POST http://localhost:8545 Returns Geth style transaction traces. **Parameters** ``txHash``: ``DATA``, 32 bytes, hash of transaction to trace. ``config`` - TODO :: TODO **Returns** TODO -------------- .. _request-61: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"debug_traceTransaction", "params":[ "0x893c428fed019404f704cf4d9be977ed9ca01050ed93dccdd6c169422155586f" ], "id":1 } -------------- eth_getCompilers (deprecated) ------------------------- :: POST http://localhost:8545 Returns a list of available compilers in the client. **Deprecated** This function will be removed in the future. **Parameters** none **Returns** ``Array`` of ``String`` - Array of available compilers -------------- .. _request-62: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_getCompilers", "params":[], "id":1 } -------------- eth_compileLLL (deprecated) ----------------------- :: POST http://localhost:8545 Returns compiled LLL code. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - The source code :: params: [ "/* some serpent */", ] **Returns** ``DATA`` - The compiled source code -------------- .. _request-63: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_compileLLL", "params":[ "(returnlll (suicide (caller)))" ], "id":1 } -------------- eth_compileSolidity (deprecated) ---------------------------- :: POST http://localhost:8545 Returns compiled solidity code. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - The source code :: params: [ "/* some serpent */", ] **Returns** ``DATA`` - The compiled source code -------------- .. _request-64: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_compileSolidity", "params":[ "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }" ], "id":1 } -------------- eth_compileSerpent (deprecated) --------------------------- :: POST http://localhost:8545 Returns compiled serpent code. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - The source code :: params: [ "/* some serpent */", ] **Returns** ``DATA`` - The compiled source code -------------- .. _request-65: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_compileSerpent", "params":["/* some serpent */"], "id":1 } -------------- eth_sign (deprecated) ----------------- :: POST http://localhost:8545 Calculates an Ethereum specific signature with: ``sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))``. **Deprecated** This function will be removed in the future. **Note** Adding a prefix to the message makes the calculated signature recognisable as an Ethereum specific signature. This prevents misuse where a malicious DApp can sign arbitrary data (e.g. transaction) and use the signature to impersonate the victim. **Note** The address provided to sign the message must be unlocked. **Parameters** account, message ``DATA``, 20 Bytes - address ``DATA``, N Bytes - message to sign **Returns** ``DATA`` - The signature -------------- .. _request-66: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"eth_sign", "params":[ "0x9b2055d370f73ec7d8a03e965129118dc8f5bf83", "0xdeadbeef" ], "id":1 } -------------- db_getString (deprecated) ---------------------- :: POST http://localhost:8545 Returns string from the local database. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - Database name ``String`` - Key name :: params: [ "testDB", "myKey" ] **Returns** ``String`` - The previously stored string -------------- .. _request-67: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"db_getString", "params":[ "testDB", "myKey" ], "id":73 } -------------- db_putString (deprecated) ---------------------- :: POST http://localhost:8545 Stores a string in the local database. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - Database name ``String`` - Key name ``String`` - String to store :: params: [ "testDB", "myKey", "myString" ] **Returns** ``Boolean`` - ``true`` if the value was stored, ``false`` otherwise -------------- .. _request-68: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"db_putString", "params":[ "testDB", "myKey", "myString" ], "id":73 } -------------- db_getHex (deprecated) ------------------- :: POST http://localhost:8545 Returns binary data from the local database. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - Database name ``String`` - Key name :: params: [ "testDB", "myKey", ] **Returns** ``DATA`` - The previously stored data -------------- .. _request-69: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"db_getHex" ,"params":[ "testDB", "myKey" ], "id":73 } -------------- db_putHex (deprecated) ------------------- :: POST http://localhost:8545 Stores binary data in the local database. **Deprecated** This function will be removed in the future. **Parameters** ``String`` - Database name ``String`` - Key name ``DATA`` - The data to store :: params: [ "testDB", "myKey", "0x68656c6c6f20776f726c64" ] **Returns** ``Boolean`` - ``true`` if the value was stored, ``false`` otherwise -------------- .. _request-70: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"db_putHex", "params":[ "testDB", "myKey", "0x68656c6c6f20776f726c64" ], "id":73 } -------------- shh_post (deprecated) ----------------- :: POST http://localhost:8545 Sends a whisper message. **Deprecated** This function will be removed in the future. **Parameters** ``Object`` - The whisper post object ``from``: ``DATA``, 60 Bytes - (optional) The identity of the sender ``to``: ``DATA``, 60 Bytes - (optional) The identity of the receiver. When present whisper will encrypt the message so that only the receiver can decrypt it ``topics``: ``Array of DATA`` - Array of DATA topics, for the receiver to identify messages ``payload``: ``DATA`` - The payload of the message ``priority``: ``QUANTITY`` - The integer of the priority in a range ``ttl``: ``QUANTITY`` - Integer of the time to live in seconds :: params: [{ from: "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1", to: "0x3e245533f97284d442460f2998cd41858798ddf04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a0d4d661997d3940272b717b1", topics: ["0x776869737065722d636861742d636c69656e74", "0x4d5a695276454c39425154466b61693532"], payload: "0x7b2274797065223a226d6", priority: "0x64", ttl: "0x64", }] **Returns** ``Boolean`` - ``true`` if the message was send, ``false`` otherwise -------------- .. _request-71: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_post", "params":[{ "from":"0xc931d93e97ab07fe42d923478ba2465f2..", "topics": [ "0x68656c6c6f20776f726c64" ], "payload":"0x68656c6c6f20776f726c64", "ttl":"0x64", "priority":"0x64" }], "id":73 } -------------- shh_version (deprecated) -------------------- :: POST http://localhost:8545 Returns the current whisper protocol version. **Deprecated** This function will be removed in the future. **Parameters** none **Returns** ``String`` - The current whisper protocol version -------------- .. _request-72: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_version", "params":[], "id":67 } -------------- shh_newIdentity (deprecated) ------------------------ :: POST http://localhost:8545 Creates new whisper identity in the client. **Deprecated** This function will be removed in the future. **Parameters** none **Returns** ``DATA``, 60 Bytes - The address of the new identiy -------------- .. _request-73: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_newIdentity", "params":[], "id":73 } -------------- shh_hasIdentity (deprecated) ------------------------ :: POST http://localhost:8545 Checks if the client hold the private keys for a given identity. **Deprecated** This function will be removed in the future. **Parameters** ``DATA``, 60 Bytes - The identity address to check :: params: [ "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1" ] **Returns** ``Boolean`` - ``true`` if the client holds the privatekey for that identity, ``false`` otherwise -------------- .. _request-74: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_hasIdentity", "params":[ "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1" ], "id":73 } -------------- shh_newGroup (deprecated) --------------------- :: POST http://localhost:8545 Create a new group. **Deprecated** This function will be removed in the future. **Parameters** none **Returns** ``DATA``, 60 Bytes - The address of the new group -------------- .. _request-75: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_newGroup", "params":[], "id":73 } -------------- shh_addToGroup (deprecated) ----------------------- :: POST http://localhost:8545 Add to a group. **Deprecated** This function will be removed in the future. **Parameters** ``DATA``, 60 Bytes - The identity address to add to a group :: params: [ "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1" ] **Returns** ``Boolean`` - ``true`` if the identity was successfully added to the group, ``false`` otherwise -------------- .. _request-76: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_addToGroup", "params":[ "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1" ], "id":73 } -------------- shh_newFilter (deprecated) ---------------------- :: POST http://localhost:8545 Creates filter to notify, when client receives whisper message matching the filter options. **Deprecated** This function will be removed in the future. **Parameters** ``Object`` - The filter options ``to``: ``DATA``, 60 Bytes - (optional) Identity of the receiver. When present it will try to decrypt any incoming message if the client holds the private key to this identity ``topics``: ``Array of DATA`` - Array of ``DATA`` topics which the incoming message’s topics should match :: params: [{ "topics": ['0x12341234bf4b564f'], "to": "0x04f96a5e25610293e42a73908e93ccc8c4d4dc0edcfa9fa872f50cb214e08ebf61a03e245533f97284d442460f2998cd41858798ddfd4d661997d3940272b717b1" }] **Returns** ``QUANTITY`` - The newly created filter id -------------- .. _request-77: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_newFilter", "params":[{ "topics": [ "0x12341234bf4b564f" ], "to": "0x2341234bf4b2341234bf4b564f..." }], "id":73 } -------------- shh_uninstallFilter (deprecated) ---------------------------- :: POST http://localhost:8545 Uninstalls a filter with given id. **Deprecated** This function will be removed in the future. **Parameters** ``QUANTITY`` - The filter id :: params: [ "0x7" // 7 ] **Returns** ``Boolean`` - ``true`` if the filter was successfully uninstalled, ``false`` otherwise -------------- .. _request-78: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_uninstallFilter", "params":[ "0x7" ], "id":73 } -------------- shh_getFilterChanges (deprecated) ----------------------------- :: POST http://localhost:8545 Polling method for whisper filters. Returns new messages since the last call of this method. **Deprecated** This function will be removed in the future. **Note** calling the ``shh_getMessages`` method, will reset the buffer for this method, so that you won’t receive duplicate messages. **Parameters** ``QUANTITY`` - The filter id :: params: [ "0x7" // 7 ] **Returns** ``Array`` - Array of messages received since last poll ``hash``: ``DATA``, 32 Bytes (?) - The hash of the message ``from``: ``DATA``, 60 Bytes - The sender of the message, if a sender was specified ``to``: ``DATA``, 60 Bytes - The receiver of the message, if a receiver was specified ``expiry``: ``QUANTITY`` - Integer of the time in seconds when this message should expire ``ttl``: ``QUANTITY`` - Integer of the time the message should float in the system in seconds ``sent``: ``QUANTITY`` - Integer of the unix timestamp when the message was sent ``topics``: ``Array of DATA`` - Array of DATA topics the message contained ``payload``: ``DATA`` - The payload of the message. ``workProved``: ``QUANTITY`` - Integer of the work this message required before it was send -------------- .. _request-79: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_getFilterChanges", "params":[ "0x7" ], "id":73 } -------------- shh_getMessages (deprecated) ------------------------ :: POST http://localhost:8545 Get all messages matching a filter. Unlike ``shh_getFilterChanges`` this returns all messages. **Deprecated** This function will be removed in the future. **Parameters** ``QUANTITY`` - The filter id :: params: [ "0x7" // 7 ] **Returns** ``Array`` - Array of messages received since last poll -------------- .. _request-80: Request ~~~~~~~ **Header** ============ ================ =========== Key Value Description ============ ================ =========== Content-Type application/json ============ ================ =========== **Body** :: { "jsonrpc":"2.0", "method":"shh_getMessages", "params":[ "0x7" ], "id":73 } -------------- -------------- Built with `Postdown `__. Author: `Titor `__