Updated 2019-12-04
Hyperledger Besu API Methods
Attention
- All JSON-RPC HTTP examples use the default host and port endpoint
http://127.0.0.1:8545
. If using the –rpc-http-host or –rpc-http-port options, update the endpoint. - Except for the examples made on the Ropsten network, the example requests are made against private networks. Depending on network configuration and activity, your example results may be different.
Click the button to import our collection of API examples to Postman.
Admin Methods
Note
The ADMIN
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the ADMIN
API methods.
admin_addPeer
Adds a static node.
Caution
If connections are timing out, ensure the node ID in the enode URL is correct.
Parameters
string
: Enode URL of peer to add
Returns
result
: boolean
- true
if peer added or false
if peer already a static node.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_addPeer","params":["enode://f59c0ab603377b6ec88b89d5bb41b98fc385030ab1e4b03752db6f7dab364559d[email protected]127.0.0.1:30304"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"admin_addPeer","params":["enode://f59c0ab603377b6ec88b89d5bb41b98fc385030ab1e4b03752db6f7dab364559d[email protected]127.0.0.1:30304"],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": true }
admin_changeLogLevel
Changes the log level without restarting Besu. You can change the log level for all logs, or you can change the log level for specific packages or classes.
Only one log level can be specified per RPC call.
Parameters
level
- Log level
log_filter
: Array
- Packages or classes to change the log level for. Optional.
Returns
result
: Success
if the log level has changed; otherwise error
.
This example changes the debug level for specified classes to DEBUG
.
Example
curl -X POST --data '{"jsonrpc":"2.0", "method":"admin_changeLogLevel", "params":["DEBUG", ["tech.pegasys.pantheon.ethereum.eth.manager","tech.pegasys.pantheon.ethereum.p2p.rlpx.connections.netty.ApiHandler"]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0", "method":"admin_changeLogLevel", "params":["DEBUG", ["tech.pegasys.pantheon.ethereum.eth.manager","tech.pegasys.pantheon.ethereum.p2p.rlpx.connections.netty.ApiHandler"]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
This example changes the debug level of all logs to WARN
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_changeLogLevel","params":["WARN"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"admin_changeLogLevel","params":["WARN"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
admin_nodeInfo
Returns networking information about the node. The information includes general information about the node
and specific information from each running Ethereum sub-protocol (for example, eth
).
Parameters
None
Returns
result
: Node object
Properties of the node object are:
enode
- Enode URL for the nodelistenAddr
- Host and port for the nodename
- Client nameid
- Node public keyports
- Peer discovery and listening portsprotocols
- List of objects containing information for each Ethereum sub-protocol
Note
If the node is running locally, the host of the enode
and listenAddr
are displayed as [::]
in the result.
If UPnP is enabled, the external address is
displayed for the enode
and listenAddr
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "enode": "enode://87ec35d558352cc55cd1bf6a472557797f91287b78fe5e86760219124563450ad[email protected][::]:30303", "listenAddr": "[::]:30303", "name": "besu/v1.0.1-dev-0d2294a5/osx-x86_64/oracle-java-1.8", "id": "87ec35d558352cc55cd1bf6a472557797f91287b78fe5e86760219124563450ad1bb807e4cc61e86c574189a851733227155551a14b9d0e1f62c5e11332a18a3", "ports": { "discovery": 30303, "listener": 30303 }, "protocols": { "eth": { "config": { "chainId": 2018, "homesteadBlock": 0, "daoForkBlock": 0, "daoForkSupport": true, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0, "byzantiumBlock": 0, "constantinopleBlock": 0, "constantinopleFixBlock": 0, "ethash": { "fixeddifficulty": 100 } }, "difficulty": 78536, "genesis": "0x43ee12d45470e57c86a0dfe008a5b847af9e372d05e8ba8f01434526eb2bea0f", "head": "0xc6677651f16d07ae59cab3a5e1f0b814ed2ec27c00a93297b2aa2e29707844d9", "network": 2018 } } } }
admin_peers
Returns networking information about connected remote nodes.
Parameters
None
Returns
result
: array of objects - Object returned for each remote node.
Properties of the remote node object are:
version
- P2P protocol versionname
- Client namecaps
- List of Ethereum sub-protocol capabilitiesnetwork
- Local and remote addresses established at time of bonding with the peer. The remote address may not match the hex value forport
. The remote address depends on which node initiated the connection.port
- Port on the remote node on which P2P peer discovery is listeningid
- Node public key. Excluding the0x
prefix, the node public key is the ID in the enode URLenode://<id ex 0x>@<host>:<port>
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : [ { "version": "0x5", "name": "Parity-Ethereum/v2.3.0-nightly-1c2e121-20181116/x86_64-linux-gnu/rustc1.30.0", "caps": [ "eth/62", "eth/63", "par/1", "par/2", "par/3", "pip/1" ], "network": { "localAddress": "192.168.1.229:50115", "remoteAddress": "168.61.153.255:40303" }, "port": "0x9d6f", "id": "0xea26ccaf0867771ba1fec32b3589c0169910cb4917017dba940efbef1d2515ce864f93a9abc846696ebad40c81de7c74d7b2b46794a71de8f95a0d019f494ff3" } ] }
admin_removePeer
Removes a static node.
Parameters
string
: Enode URL of peer to remove
Returns
result
: boolean
- true
if peer removed or false
if peer not a static node).
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_removePeer","params":["enode://f59c0ab603377b6ec88b89d5bb41b98fc385030ab1e4b03752db6f7dab364559d[email protected]127.0.0.1:30304"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"admin_removePeer","params":["enode://f59c0ab603377b6ec88b89d5bb41b98fc385030ab1e4b03752db6f7dab364559d[email protected]127.0.0.1:30304"],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": true }
Web3 Methods
web3_clientVersion
Returns the current client version.
Parameters
None
Returns
result
: string - Current client version.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "besu/<version>" }
web3_sha3
Returns a SHA3 hash of the specified data. The result value is a Keccak-256 hash, not the standardized SHA3-256.
Parameters
DATA
- Data to convert to a SHA3 hash.
Returns
result
(DATA) - SHA3 result of the input data.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c00"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c00"],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x5e39a0a66544c0668bde22d61c47a8710000ece931f13b84d3b2feb44ec96d3f" }
Net Methods
net_version
Returns the current chain ID.
Parameters
None
Returns
result
: string - Current chain ID.
Chain ID | Chain | Network | Description |
---|---|---|---|
1 |
ETH | MainNet | Main Ethereum network |
3 |
ETH | Ropsten | PoW test network |
4 |
ETH | Rinkeby | PoA test network using Clique |
5 |
ETH | Goerli | PoA test network using Clique |
6 |
ETC | Kotti | PoA test network using Clique |
61 |
ETC | Classic | Main Ethereum Classic network |
63 |
ETC | Mordor | PoW test network |
2018 |
ETH | Dev | PoW development network |
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"net_version","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"net_version","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 51, "result" : "1" }
{ "jsonrpc" : "2.0", "id" : 53, "result" : "3" }
net_listening
Indicates whether the client is actively listening for network connections.
Parameters
None
Returns
result
(BOOLEAN) - true
if the client is actively listening for network connections; otherwise false
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"net_listening","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : true }
net_peerCount
Returns the number of peers currently connected to the client.
Parameters
None
Returns
result
: integer - Number of connected peers in hexadecimal.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x5" }
net_enode
Returns the enode URL.
Parameters
None
Returns
result
: string - Enode URL for the node
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"net_enode","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"net_enode","params":[],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : "enode://6a63160d0ccef5e4986d270937c6c8d60a9a4d3b25471cda960900d037c61988e[email protected]127.0.0.1:30303" }
net_services
Returns enabled services (for example, jsonrpc
) and the host and port for each service.
Parameters
None
Returns
result
: objects - Enabled services
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"net_services","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"net_services","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "jsonrpc": { "host": "127.0.0.1", "port": "8545" }, "p2p" : { "host" : "127.0.0.1", "port" : "30303" }, "metrics" : { "host": "127.0.0.1", "port": "9545" } } }
Eth Methods
Note
Methods with an equivalent GraphQL query include a GraphQL request and result in the method example. The parameter and result descriptions apply to the JSON-RPC requests. The GraphQL specification is defined in the schema.
eth_syncing
Returns an object with data about the synchronization status, or false
if not synchronizing.
Parameters
None
Returns
result
: Object|Boolean - Object with synchronization status data or false
, when not synchronizing:
-
startingBlock
: quantity - Index of the highest block on the blockchain when the network synchronization starts. -
currentBlock
: quantity - Index of the latest block (also known as the best block) for the current node. This is the same index that eth_blockNumber returns. -
highestBlock
: quantity - Index of the highest known block in the peer network (that is, the highest block so far discovered among peer nodes). This is the same value ascurrentBlock
if the current node has no peers.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":51}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":51}
{ "jsonrpc" : "2.0", "id" : 51, "result" : { "startingBlock" : "0x5a0", "currentBlock" : "0xad9", "highestBlock" : "0xad9" } }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{syncing{startingBlock currentBlock highestBlock}}"}' http://localhost:8547/graphql
{ syncing { startingBlock currentBlock highestBlock } }
{ "data" : { "syncing" : { "startingBlock" : 1592, "currentBlock" : 31988, "highestBlock" : 4389714 } } }
eth_chainId
Returns the chain ID.
Parameters
None
Returns
result
: quantity - Chain ID in hexadecimal.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":51}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":51}
{ "jsonrpc" : "2.0", "id" : 51, "result" : "0x7e2" }
eth_protocolVersion
Returns current Ethereum protocol version.
Parameters
None
Returns
result
: quantity - Ethereum protocol version
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_protocolVersion","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x3f" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{protocolVersion}"}' http://localhost:8547/graphql
{ protocolVersion }
{ "data" : { "protocolVersion" : 63 } }
eth_coinbase
Returns the client coinbase address. The coinbase address is the account to which mining rewards are paid.
To set a coinbase address, start Besu with the --miner-coinbase
option set to a valid Ethereum account address.
You can get the Ethereum account address from a client such as MetaMask or Etherscan. For example:
Example
besu --miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73" --rpc-http-enabled
Parameters
None
Returns
result
: data - Coinbase address.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_coinbase","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73" }
eth_mining
Indicates whether the client is actively mining new blocks. Mining is paused while the client synchronizes with the network regardless of command settings or methods called.
Parameters
None
Returns
result
(BOOLEAN) - true
if the client is actively mining new blocks; otherwise false
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_mining","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : true }
eth_hashrate
Returns the number of hashes per second with which the node is mining.
Is not supported for GPU mining.
Parameters
None
Returns
result
: quantity
- Number of hashes per second
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_hashrate","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x12b" }
eth_gasPrice
Returns the current gas unit price in wei. It is the hexadecimal equivalent of the price specified for the --min-gas-price
command line option when the node was started or the default minimum gas price.
Parameters
None
Returns
result
: quantity - Current gas unit price in wei as a hexadecimal value.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x3e8" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{gasPrice}"}' http://localhost:8547/graphql
{ gasPrice }
{ "data" : { "gasPrice" : "0x3e8" } }
eth_accounts
Returns a list of account addresses that the client owns.
Note
This method returns an empty object because Besu doesn’t support key management inside the client.
Use EthSigner with Besu to provide access to your key store and sign transactions.
Parameters
None
Returns
Array of data
: List of 20-byte account addresses owned by the client.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_accounts","params":[],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : [ ] }
eth_blockNumber
Returns the index corresponding to the block number of the current chain head.
Parameters
None
Returns
result
: QUANTITY - Hexadecimal integer representing the index corresponding to the block number of the current chain head.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":51}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":51}
{ "jsonrpc" : "2.0", "id" : 51, "result" : "0x2377" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block{number}}"}' http://localhost:8547/graphql
{ block { number } }
{ "data" : { "block" : { "number" : 16221 } } }
eth_getBalance
Returns the account balance of the specified address.
Parameters
DATA
- 20-byte account address from which to retrieve the balance.
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: QUANTITY - Current balance in wei as a hexadecimal value.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "latest"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getBalance","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "latest"],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x1cfe56f3795885980000" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ account ( address: \"0xfe3b557e8fb62b89f4916b721be55ceb828dbd73\") { balance } }"}' http://localhost:8547/graphql
{ account(address: "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73") { balance } }
{ "data": { "account": { "balance": "0x1ce96a1ffe7620d00000" } } }
eth_getProof
Returns the account and storage values of the specified account, including the merkle proof.
The API allows IoT devices or mobile apps which are unable to run light clients to verify responses from untrusted sources, by using a trusted block hash.
Parameters
DATA
- 20-byte address of the account or contract.
ARRAY
- Array of 32-byte storage keys to generate proofs for.
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: Object - Account details:
balance
:Quantity
- Account balancecodeHash
:Data, 32-byte
- Hash of the account codenonce
:Quantity
- Number of transactions sent from the accountstorageHash
:Data, 32-byte
- SHA3 of thestorageRoot
accountProof
:Array
- RLP-encoded merkle tree nodes, starting with thestateRoot
storageProof
:Array
- Storage entries. Each entry is an object that displays:key
:Quantity
- Storage keyvalue
:Quantity
- Storage valueproof
:Array
- RLP-encoded merkle tree nodes, starting with thestorageHash
Example
curl -X POST --data '{"jsonrpc":"2.0","method": "eth_getProof","params": [ "0a8156e7ee392d885d10eaa86afd0e323afdcd95", ["0x0000000000000000000000000000000000000000000000000000000000000347"], "latest"],"id": 1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method": "eth_getProof","params": [ "0a8156e7ee392d885d10eaa86afd0e323afdcd95", ["0x0000000000000000000000000000000000000000000000000000000000000347"], "latest"],"id": 1}
{ "jsonrpc": "2.0", "id": 1, "result": { "accountProof": [ "0xf90211a0...608d898380", "0xf90211a0...ec33f19580", "0xf901d1a0...9e55584480", "0xf8718080...18e5777142" ], "address": "0x0a8156e7ee392d885d10eaa86afd0e323afdcd95", "balance": "0x0", "codeHash": "0x2b6975dcaf69f9bb9a3b30bb6a37b305ce440250bf0dd2f23338cb18e5777142", "nonce": "0x5f", "storageHash": "0x917688de43091589aa58c1dfd315105bc9de4478b9ba7471616a4d8a43d46203", "storageProof": [ { "key": "0x0000000000000000000000000000000000000000000000000000000000000347", "value": "0x0", "proof": [ "0xf90211a0...5176779280", "0xf901f1a0...c208d86580", "0xf8d180a0...1ce6808080" ] } ] } }
eth_getStorageAt
Returns the value of a storage position at a specified address.
Parameters
DATA
- A 20-byte storage address.
QUANTITY
- Integer index of the storage position.
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: DATA - The value at the specified storage position.
Example
Calculating the correct position depends on the storage you want to retrieve.
curl -X POST --data '{"jsonrpc":"2.0","method": "eth_getStorageAt","params": ["0x3B3F3E","0x0","latest"],"id": 53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method": "eth_getStorageAt","params": ["0x3B3F3E","0x0","latest"],"id": 53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x0000000000000000000000000000000000000000000000000000000000000000" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{account(address: \"0xfe3b557e8fb62b89f4916b721be55ceb828dbd73\") {storage(slot: \"0x04\")}}"}' http://localhost:8547/graphql
{ account(address: "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73") { storage(slot: "0x04") } }
{ "data" : { "account" : { "storage" : "0x0000000000000000000000000000000000000000000000000000000000000000" } } }
eth_getTransactionCount
Returns the number of transactions sent from a specified address. Use the pending
tag to get the account nonce.
Parameters
data
- 20-byte account address.
quantity|tag
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: quantity - Integer representing the number of transactions sent from the specified address.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0xc94770007dda54cF92009BFF0dE90c06F603a09f","latest"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getTransactionCount","params":["0xc94770007dda54cF92009BFF0dE90c06F603a09f","latest"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : "0x1" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{ account (address:\"0xfe3b557e8fb62b89f4916b721be55ceb828dbd73\"){transactionCount}}"}' http://localhost:8547/graphql
{ account(address: "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73") { transactionCount } }
{ "data" : { "account" : { "transactionCount" : 5 } } }
eth_getBlockTransactionCountByHash
Returns the number of transactions in the block matching the given block hash.
Parameters
data
- 32-byte block hash.
Returns
result
: quantity
- Integer representing the number of transactions in the specified block.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : null }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(hash:\"0xe455c14f757b0b9b67774baad1be1c180a4c1657df52259dbb685bf375408097\"){transactionCount}}"}' http://localhost:8547/graphql
{ block(hash: "0xe455c14f757b0b9b67774baad1be1c180a4c1657df52259dbb685bf375408097") { transactionCount } }
{ "data" : { "block" : { "transactionCount" : 1 } } }
eth_getBlockTransactionCountByNumber
Returns the number of transactions in a block matching the specified block number.
Parameters
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: QUANTITY - Integer representing the number of transactions in the specified block.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":51}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getBlockTransactionCountByNumber","params":["0xe8"],"id":51}
{ "jsonrpc" : "2.0", "id" : 51, "result" : "0x8" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(number:232){transactionCount}}"}' http://localhost:8547/graphql
{ block(number: 232) { transactionCount } }
{ "data" : { "block" : { "transactionCount" : 1 } } }
eth_getUncleByBlockHashAndIndex
Returns uncle specified by block hash and index.
Parameters
data
- 32-byte block hash.
quantity
- Index of the uncle.
Returns
result
: Block object
Note
Uncles do not contain individual transactions.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0xc48fb64230a82f65a08e7280bd8745e7fea87bc7c206309dee32209fe9a985f7", "0x0"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getUncleByBlockHashAndIndex","params":["0xc48fb64230a82f65a08e7280bd8745e7fea87bc7c206309dee32209fe9a985f7", "0x0"],"id":1}
{ "jsonrpc":"2.0", "id":1, "result":{ "difficulty":"0x76b123df93230", "extraData":"0x50505945206e616e6f706f6f6c2e6f7267", "gasLimit":"0x7a121d", "gasUsed":"0x7a0175", "hash":"0xc20189c0b1a4a23116ab3b177e929137f6e826f17fc4c2e880e7258c620e9817", "logsBloom":"0x890086c024487ca422be846a201a10e41bc2882902312116c1119609482031e9c000e2a708004a10281024028020c505727a12570c4810121c59024490b040894406a1c23c37a0094810921da3923600c71c03044b40924280038d07ab91964a008084264a01641380798840805a284cce201a8026045451002500113a00de441001320805ca2840037000111640d090442c11116d2112948084240242340400236ce81502063401dcc214b9105194d050884721c1208800b20501a4201400276004142f118e60808284506979a86e050820101c170c185e2310005205a82a2100382422104182090184800c02489e033440218142140045801c024cc1818485", "miner":"0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5", "mixHash":"0xf557cc827e058862aa3ea1bd6088fb8766f70c0eac4117c56cf85b7911f82a14", "nonce":"0xd320b48904347cdd", "number":"0x768964", "parentHash":"0x98d752708b3677df8f439c4529f999b94663d5494dbfc08909656db3c90f6255", "receiptsRoot":"0x0f838f0ceb73368e7fc8d713a7761e5be31e3b4beafe1a6875a7f275f82da45b", "sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "size":"0x21a", "stateRoot":"0xa0c7d4fca79810c89c517eff8dadb9c6d6f4bcc27c2edfb301301e1cf7dec642", "timestamp":"0x5cdcbba6", "totalDifficulty":"0x229ad33cabd4c40d23d", "transactionsRoot":"0x866e38e91d01ef0387b8e07ccf35cd910224271ccf2b7477b8c8439e8b70f365", "uncles":[] } }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(hash:\"0xc48fb64230a82f65a08e7280bd8745e7fea87bc7c206309dee32209fe9a985f7\"){ ommerAt(index: 0) {difficulty extraData gasLimit gasUsed hash logsBloom mixHash nonce number receiptsRoot stateRoot timestamp totalDifficulty transactionsRoot}}}"}' http://localhost:8547/graphql
{ block(hash: "0xc48fb64230a82f65a08e7280bd8745e7fea87bc7c206309dee32209fe9a985f7") { ommerAt(index: 0) { difficulty extraData gasLimit gasUsed hash logsBloom mixHash nonce number receiptsRoot stateRoot timestamp totalDifficulty transactionsRoot } } }
{ "data": { "block": { "difficulty": "0x1", "extraData": "0xf882a00000000000000000000000000000000000000000000000000000000000000000d5949811ebc35d7b06b3fa8dc5809a1f9c52751e1deb808400000000f843b8418e98ef756acdae1e510b1df4b507b7af04eb3802db7fa0f3e73e7d0721b3645e76f4eb3d0dbf0de75620c4405bd5a663247cdd9616482c883053856d857f884a01", "gasLimit": 4700000, "gasUsed": 0, "hash": "0x0efe67972b982eb6be5df84e5238eb07475f86afa8a7de708f6a13ac0ff60d6c", "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "nonce": "0x0000000000000000", "number": 200, "receiptsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "stateRoot": "0xd650578a04b39f50cc979155f4510ec28c2c0a7c1e5fdbf84609bc7b1c430f48", "timestamp": "0x5cd109fb", "totalDifficulty": "0xc9", "transactionsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" } } }
eth_getUncleByBlockNumberAndIndex
Returns uncle specified by block number and index.
Parameters
quantity|tag
- Index of the block, or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
quantity
- Index of the uncle.
Returns
result
: Block object
Note
Uncles do not contain individual transactions.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x7689D2", "0x0"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getUncleByBlockNumberAndIndex","params":["0x7689D2", "0x0"],"id":1}
{ "jsonrpc":"2.0", "id":1, "result":{ "difficulty":"0x77daec467bf93", "extraData":"0x50505945206e616e6f706f6f6c2e6f7267", "gasLimit":"0x7a121d", "gasUsed":"0x7a0f7b", "hash":"0x42d83ae9c0743f4b1f9c61ff7ea8b164c1bab3627decd49233760680be006ecf", "logsBloom":"0x888200800000340120220008640200500408006100038400100581c000080240080a0014e8002010080004088040004022402a000c18010001400100002a041141a0610a0052900600041018c0002a0003090020404c00206010010513d00020005380124e08050480710000000108401012b0901c1424006000083a10a8c1040100a0440081050210124400040044304070004001100000012600806008061d0320800000b40042160600002480000000800000c0002100200940801c000820800048024904710000400640490026000a44300309000286088010c2300060003011380006400200812009144042204810209020410a84000410520c08802941", "miner":"0x52bc44d5378309ee2abf1539bf71de1b7d7be3b5", "mixHash":"0xf977fcdb52868be410b75ef2becc35cc312f13ab0a6ce400ecd9d445f66fa3f2", "nonce":"0x628b28403bf1e3d3", "number":"0x7689d0", "parentHash":"0xb32cfdfbf4adb05d30f02fcc6fe039cc6666402142954051c1a1cb9cc91aa11e", "receiptsRoot":"0x9c7c8361d1a24ea2841432234c81974a9920d3eba2b2b1c496b5f925a95cb4ac", "sha3Uncles":"0x7d972aa1b182b7e93f1db043f03fbdbfac6874fe7e67e162141bcc0aefa6336b", "size":"0x21a", "stateRoot":"0x74e97b77813146344d75acb5a52a006cc6dfaca678a10fb8a484a8443e919272", "timestamp":"0x5cdcc0a7", "totalDifficulty":"0x229b0583b4bd2698ca0", "transactionsRoot":"0x1d21626afddf05e5866de66ca3fcd98f1caf5357eba0cc6ec675606e116a891b", "uncles":[] } }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(number:2587){ ommerAt(index: 0) {difficulty extraData gasLimit gasUsed hash logsBloom mixHash nonce number receiptsRoot stateRoot timestamp totalDifficulty transactionsRoot}}}"}' http://localhost:8547/graphql
{ block(number: 2587) { ommerAt(index: 0) { difficulty extraData gasLimit gasUsed hash logsBloom mixHash nonce number receiptsRoot stateRoot timestamp totalDifficulty transactionsRoot } } }
{ "data" : { "block" : { "ommerAt" : null } } }
eth_getUncleCountByBlockHash
Returns the number of uncles in a block from a block matching the given block hash.
Parameters
DATA
- 32-byte block hash.
Returns
result
: QUANTITY - Integer representing the number of uncles in the specified block.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockHash","params":["0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : 0x0 }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(hash:\"0x65c08d792e4192b9ece6b6f2390da7da464208b22d88490be8add9373917b426\"){ommerCount}}"}' http://localhost:8547/graphql
{ block(hash: "0x65c08d792e4192b9ece6b6f2390da7da464208b22d88490be8add9373917b426") { ommerCount } }
{ "data" : { "block" : { "ommerCount" : 2 } } }
eth_getUncleCountByBlockNumber
Returns the number of uncles in a block matching the specified block number.
Parameters
QUANTITY|TAG
- Integer representing either the index of the block within the blockchain, or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: QUANTITY - Integer representing the number of uncles in the specified block.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getUncleCountByBlockNumber","params":["0xe8"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : "0x1" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block(number:\"0x59fd\"){ommerCount}}"}' http://localhost:8547/graphql
{ block(number: "0x59fd") { ommerCount } }
{ "data" : { "block" : { "ommerCount" : 0 } } }
eth_getCode
Returns the code of the smart contract at the specified address. Compiled smart contract code is stored as a hexadecimal value.
Parameters
DATA
- 20-byte contract address.
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
: DATA - Code stored at the specified address.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa50a51c09a5c451c52bb714527e1974b686d8e77", "latest"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getCode","params":["0xa50a51c09a5c451c52bb714527e1974b686d8e77", "latest"],"id":53}
{ "jsonrpc": "2.0", "id": 53, "result": "0x60806040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114604d57806355241077146071575b600080fd5b348015605857600080fd5b50605f6088565b60408051918252519081900360200190f35b348015607c57600080fd5b506086600435608e565b005b60005481565b60008190556040805182815290517f199cd93e851e4c78c437891155e2112093f8f15394aa89dab09e38d6ca0727879181900360200190a1505600a165627a7a723058209d8929142720a69bde2ab3bfa2da6217674b984899b62753979743c0470a2ea70029" }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{account(address: \"0xa50a51c09a5c451c52bb714527e1974b686d8e77\"){ code }}"}' http://localhost:8547/graphql
{ account(address: "0xa50a51c09a5c451c52bb714527e1974b686d8e77") { code } }
{ "data" : { "account" : { "code" : "0x60806040526004361060485763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f2458114604d57806355241077146071575b600080fd5b348015605857600080fd5b50605f6088565b60408051918252519081900360200190f35b348015607c57600080fd5b506086600435608e565b005b60005481565b60008190556040805182815290517f199cd93e851e4c78c437891155e2112093f8f15394aa89dab09e38d6ca0727879181900360200190a1505600a165627a7a723058209d8929142720a69bde2ab3bfa2da6217674b984899b62753979743c0470a2ea70029" } } }
eth_sendRawTransaction
Sends a signed transaction. A transaction can send ether, deploy a contract, or interact with a contract.
You can interact with contracts using eth_sendRawTransaction or eth_call.
To avoid exposing your private key, create signed transactions offline and send the signed transaction data using eth_sendRawTransaction
.
Important
Besu does not implement eth_sendTransaction.
EthSigner provides transaction signing and implements eth_sendTransaction
.
Parameters
data
- Signed transaction serialized to hexadecimal format. For example:
params: ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"]
Note
Creating and Sending Transactions includes examples of creating signed transactions using the web3.js library.
Returns
result
: data
- 32-byte transaction hash
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"],"id":1}
{ "id":1, "jsonrpc": "2.0", "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "mutation {sendRawTransaction(data: \"0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833\")}"}' http://localhost:8547/graphql
mutation { sendRawTransaction(data: "0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833") }
{ "data" : { "sendRawTransaction" : "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" } }
eth_call
Invokes a contract function locally and does not change the state of the blockchain.
You can interact with contracts using eth_sendRawTransaction or eth_call.
Parameters
OBJECT - Transaction call object.
QUANTITY|TAG - Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result
- data
- Return value of the executed contract.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13","value":"0x1"}, "latest"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13","value":"0x1"}, "latest"],"id":53}
{ "jsonrpc": "2.0", "id": 53, "result": "0x" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block {number call (data : {from : \"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b\", to: \"0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13\", data :\"0x12a7b914\"}){data status}}}"}' http://localhost:8547/graphql
{ block { number call(data: {from: "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", to: "0x69498dd54bd25aa0c886cf1f8b8ae0856d55ff13", data: "0x12a7b914"}) { data status } } }
{ "data" : { "block" : { "number" : 17449, "call" : { "data" : "0x", "status" : 1 } } } }
eth_estimateGas
Returns an estimate of how much gas is needed for a transaction to complete. The estimation process does not use gas and the transaction is not added to the blockchain. The resulting estimate can be greater than the amount of gas that the transaction actually uses, for various reasons including EVM mechanics and node performance.
The eth_estimateGas
call does not send a transaction. You must make a subsequent call to
eth_sendRawTransaction to execute the transaction.
Parameters
The transaction call object parameters are the same as those for eth_call, except that in eth_estimateGas
,
all fields are optional. Setting a gas limit is irrelevant to the estimation process (unlike transactions, in which gas
limits apply).
OBJECT - Transaction call object.
Returns
result
: quantity
- Amount of gas used.
The following example returns an estimate of 21000 wei (0x5208) for the transaction.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73","to":"0x44Aa93095D6749A706051658B970b941c72c1D53","value":"0x1"}],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_estimateGas","params":[{"from":"0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73","to":"0x44Aa93095D6749A706051658B970b941c72c1D53","value":"0x1"}],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : "0x5208" }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block{estimateGas (data: {from :\"0x6295ee1b4f6dd65047762f924ecd367c17eabf8f\", to :\"0x8888f1f195afa192cfee860698584c030f4c9db1\"})}}"}' http://localhost:8547/graphql
{ block { estimateGas(data: {from: "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f", to: "0x8888f1f195afa192cfee860698584c030f4c9db1"}) } }
{ "data" : { "block" : { "estimateGas" : 21000 } } }
The following example request estimates the cost of deploying a simple storage smart contract to the network. The data field contains the hash of the compiled contract to be deployed. (You can obtain the compiled contract hash from your IDE; for example, Remix > Compile tab > details > WEB3DEPLOY.) The result is 113355 wei.
Returns
Example
curl -X POST \ http://127.0.0.1:8545 \ -H 'Content-Type: application/json' \ -d '{ "jsonrpc": "2.0", "method": "eth_estimateGas", "params": [{ "from": "0x8bad598904ec5d93d07e204a366d084a80c7694e", "data": "0x608060405234801561001057600080fd5b5060e38061001f6000396000f3fe6080604052600436106043576000357c0100000000000000000000000000000000000000000000000000000000900480633fa4f24514604857806355241077146070575b600080fd5b348015605357600080fd5b50605a60a7565b6040518082815260200191505060405180910390f35b348015607b57600080fd5b5060a560048036036020811015609057600080fd5b810190808035906020019092919050505060ad565b005b60005481565b806000819055505056fea165627a7a7230582020d7ad478b98b85ca751c924ef66bcebbbd8072b93031073ef35270a4c42f0080029" }], "id": 1 }'
Example
{ "jsonrpc": "2.0", "id": 1, "result": "0x1bacb" }
eth_getBlockByHash
Returns information about the block by hash.
Parameters
DATA
- 32-byte hash of a block.
Boolean
- If true
, returns the full transaction objects; if false
, returns the transaction hashes.
Returns
result
: OBJECT - Block object , or null
when no block is found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0x16b69965a5949262642cfb5e86368ddbbe57ab9f17d999174a65fd0e66580d8f", false],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getBlockByHash","params":["0x16b69965a5949262642cfb5e86368ddbbe57ab9f17d999174a65fd0e66580d8f", false],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : { "number" : "0x7", "hash" : "0x16b69965a5949262642cfb5e86368ddbbe57ab9f17d999174a65fd0e66580d8f", "parentHash" : "0xe9bd4b277983580ef0eabad6011891f8b6aff9381a78bd1c4faca374a48b3e09", "nonce" : "0x46acb59e85b5bb6d", "sha3Uncles" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "transactionsRoot" : "0x7aa0913c235f272eb6ed6ab74ba5a057e0a62c1c1d1dbccfd971221e6b6e83a3", "stateRoot" : "0xfaf6520d6e3d24107a4309855593341ab87a1744dbb6eea4e709b92e9c9107ca", "receiptsRoot" : "0x056b23fbba480696b65fe5a59b8f2148a1299103c4f57df839233af2cf4ca2d2", "miner" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "difficulty" : "0x5", "totalDifficulty" : "0x10023", "extraData" : "0x", "size" : "0x270", "gasLimit" : "0x1000000", "gasUsed" : "0x5208", "timestamp" : "0x5bbbe99f", "uncles" : [ ], "transactions" : [ "0x2cc6c94c21685b7e0f8ddabf277a5ccf98db157c62619cde8baea696a74ed18e" ] } }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block (hash : \"0xb0efed1fc9326fee967cb2d845d4ebe57c5350a0670c8e86f8052dea6f219f92\") {number transactions{hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot}}"}' http://localhost:8547/graphql
{ block(hash: "0xb0efed1fc9326fee967cb2d845d4ebe57c5350a0670c8e86f8052dea6f219f92") { number transactions { hash } timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot } }
{ "data" : { "block" : { "number" : 17607, "transactions" : [ ], "timestamp" : "0x5cdbdfb5", "difficulty" : "0x1", "totalDifficulty" : "0x44c8", "gasUsed" : 0, "gasLimit" : 4700000, "hash" : "0xb0efed1fc9326fee967cb2d845d4ebe57c5350a0670c8e86f8052dea6f219f92", "nonce" : "0x0000000000000000", "ommerCount" : 0, "logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "ommerHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "extraData" : "0xf882a00000000000000000000000000000000000000000000000000000000000000000d5949811ebc35d7b06b3fa8dc5809a1f9c52751e1deb808400000000f843b841fae6d25da0b91e3e88669d0a765c98479d86d53e9ea1f3fb6b36d7ff22fa622a3da0c49c20e5562c774e90acae8ad487936f6b6019cd8a782db684693cba1e9800", "stateRoot" : "0xa7086c266aed46cd3bc45579178f8acb36d9d147de575a3ecbf8c7e6f1c737fc", "receiptsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "transactionCount" : 0, "transactionsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421" } } }
eth_getBlockByNumber
Returns information about a block by block number.
Parameters
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Boolean
- If true
, returns the full transaction objects; if false
, returns only the hashes of the transactions.
Returns
result
: OBJECT - Block object , or null
when no block is found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x64", true],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["0x64", true],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : { "number" : "0x64", "hash" : "0xdfe2e70d6c116a541101cecbb256d7402d62125f6ddc9b607d49edc989825c64", "parentHash" : "0xdb10afd3efa45327eb284c83cc925bd9bd7966aea53067c1eebe0724d124ec1e", "nonce" : "0x37129c7f29a9364b", "sha3Uncles" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "transactionsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "stateRoot" : "0x90c25f6d7fddeb31a6cc5668a6bba77adbadec705eb7aa5a51265c2d1e3bb7ac", "receiptsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "miner" : "0xbb7b8287f3f0a933474a79eae42cbca977791171", "difficulty" : "0x42be722b6", "totalDifficulty" : "0x19b5afdc486", "extraData" : "0x476574682f4c5649562f76312e302e302f6c696e75782f676f312e342e32", "size" : "0x21e", "gasLimit" : "0x1388", "gasUsed" : "0x0", "timestamp" : "0x55ba43eb", "uncles" : [ ], "transactions" : [ ] } }
curl -X POST -H "Content-Type: application/json" --data '{ "query": "{block (number : 100) {transactions{hash} timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot ommers{hash} ommerAt(index : 1){hash} miner{address} account(address: \"0xfe3b557e8fb62b89f4916b721be55ceb828dbd73\"){balance} parent{hash} }}"}' http://localhost:8547/graphql
{ block(number: 100) { transactions { hash } timestamp difficulty totalDifficulty gasUsed gasLimit hash nonce ommerCount logsBloom mixHash ommerHash extraData stateRoot receiptsRoot transactionCount transactionsRoot ommers { hash } ommerAt(index: 1) { hash } miner { address } account(address: "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73") { balance } parent { hash } } }
{ "data" : { "block" : { "transactions" : [ ], "timestamp" : "0x5cd10933", "difficulty" : "0x1", "totalDifficulty" : "0x65", "gasUsed" : 0, "gasLimit" : 4700000, "hash" : "0x63b3ea2bc37fec8f82680eb823652da6af8acebb4f6c4d0ff659c55be473c8b0", "nonce" : "0x0000000000000000", "ommerCount" : 0, "logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365", "ommerHash" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", "extraData" : "0xf882a00000000000000000000000000000000000000000000000000000000000000000d5949811ebc35d7b06b3fa8dc5809a1f9c52751e1deb808400000000f843b8414d877d8d0ced37ea138fab55a978f3740367a24a31731322ecdc3368f11e0d4966c9ce17ae59a76fb94eb436e8a386868f6bd6b0a5678e58daf49f5dd940558b00", "stateRoot" : "0xd650578a04b39f50cc979155f4510ec28c2c0a7c1e5fdbf84609bc7b1c430f48", "receiptsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "transactionCount" : 0, "transactionsRoot" : "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", "ommers" : [ ], "ommerAt" : null, "miner" : { "address" : "0x9811ebc35d7b06b3fa8dc5809a1f9c52751e1deb" }, "account" : { "balance" : "0xad0f47f269cbf31ac" }, "parent" : { "hash" : "0x7bca25e1fa5e395fd6029eb496a70b6b5495843976bf9e49b993c723ded29d9e" } } } }
eth_getTransactionByHash
Returns transaction information for the specified transaction hash.
Parameters
DATA
- 32-byte transaction hash.
Returns
Object - Transaction object, or null
when no transaction is found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getTransactionByHash","params":["0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44"],"id":53}
{ "jsonrpc" : "2.0", "id" : 53, "result" : { "blockHash" : "0x510efccf44a192e6e34bcb439a1947e24b86244280762cbb006858c237093fda", "blockNumber" : "0x422", "from" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "gas" : "0x5208", "gasPrice" : "0x3b9aca00", "hash" : "0xa52be92809541220ee0aaaede6047d9a6c5d0cd96a517c854d944ee70a0ebb44", "input" : "0x", "nonce" : "0x1", "to" : "0x627306090abab3a6e1400e9345bc60c78a8bef57", "transactionIndex" : "0x0", "value" : "0x4e1003b28d9280000", "v" : "0xfe7", "r" : "0x84caf09aefbd5e539295acc67217563438a4efb224879b6855f56857fa2037d3", "s" : "0x5e863be3829812c81439f0ae9d8ecb832b531d651fb234c848d1bf45e62be8b9" } }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{transaction(hash : \"0x03d80b9ca0a71435399a268609d6d7896f7155d2147cc22b780672bcb59b170d\") { block{hash} gas gasPrice hash nonce value from {address} to {address} status}}"}' http://localhost:8547/graphql
{ transaction(hash: "0x03d80b9ca0a71435399a268609d6d7896f7155d2147cc22b780672bcb59b170d") { block { hash } gas gasPrice hash nonce value from { address } to { address } status } }
{ "data" : { "transaction" : { "block" : { "hash" : "0xb1ef35744bade6980c3a933024b2557a8c724a19e5fdd2116bac712aa5e57198" }, "gas" : 21000, "gasPrice" : "0x2540be400", "hash" : "0x03d80b9ca0a71435399a268609d6d7896f7155d2147cc22b780672bcb59b170d", "nonce" : 6, "value" : "0x8ac7230489e80000", "from" : { "address" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73" }, "to" : { "address" : "0x9d8f8572f345e1ae53db1dfa4a7fce49b467bd7f" }, "status" : 1 } } }
eth_getTransactionByBlockHashAndIndex
Returns transaction information for the specified block hash and transaction index position.
Parameters
DATA
- 32-byte hash of a block.
QUANTITY
- Integer representing the transaction index position.
Returns
Object - Transaction object, or null
when no transaction is found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7", "0x2"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getTransactionByBlockHashAndIndex","params":["0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7", "0x2"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : { "blockHash" : "0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7", "blockNumber" : "0x1442e", "from" : "0x70c9217d814985faef62b124420f8dfbddd96433", "gas" : "0x3d090", "gasPrice" : "0x57148a6be", "hash" : "0xfc766a71c406950d4a4955a340a092626c35083c64c7be907060368a5e6811d6", "input" : "0x51a34eb8000000000000000000000000000000000000000000000029b9e659e41b780000", "nonce" : "0x2cb2", "to" : "0xcfdc98ec7f01dab1b67b36373524ce0208dc3953", "transactionIndex" : "0x2", "value" : "0x0", "v" : "0x2a", "r" : "0xa2d2b1021e1428740a7c67af3c05fe3160481889b25b921108ac0ac2c3d5d40a", "s" : "0x63186d2aaefe188748bfb4b46fb9493cbc2b53cf36169e8501a5bc0ed941b484" } }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{ block(hash: \"0x9270651f9c6fa36232c379d0ecf69b519383aa275815a65f1e03114346668f69\") { transactionAt(index: 0) {block{hash} hash } } }"}' http://localhost:8547/graphql
{ block(hash: "0x9270651f9c6fa36232c379d0ecf69b519383aa275815a65f1e03114346668f69") { transactionAt(index: 0) { block { hash } hash } } }
{ "data" : { "block" : { "transactionAt" : { "block" : { "hash" : "0x9270651f9c6fa36232c379d0ecf69b519383aa275815a65f1e03114346668f69" }, "hash" : "0x5f5366af89e8777d5ae62a1af94a0876bdccbc22417bed0aff361eefa3e37f86" } } } }
eth_getTransactionByBlockNumberAndIndex
Returns transaction information for the specified block number and transaction index position.
Parameters
QUANTITY|TAG
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
QUANTITY
- The transaction index position.
Returns
Object - Transaction object, or null
when no transaction is found.
Example
This request returns the third transaction in the 82990 block on the Ropsten testnet. You can also view this block and transaction on Etherscan.
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["82990", "0x2"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getTransactionByBlockNumberAndIndex","params":["82990", "0x2"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : { "blockHash" : "0xbf137c3a7a1ebdfac21252765e5d7f40d115c2757e4a4abee929be88c624fdb7", "blockNumber" : "0x1442e", "from" : "0x70c9217d814985faef62b124420f8dfbddd96433", "gas" : "0x3d090", "gasPrice" : "0x57148a6be", "hash" : "0xfc766a71c406950d4a4955a340a092626c35083c64c7be907060368a5e6811d6", "input" : "0x51a34eb8000000000000000000000000000000000000000000000029b9e659e41b780000", "nonce" : "0x2cb2", "to" : "0xcfdc98ec7f01dab1b67b36373524ce0208dc3953", "transactionIndex" : "0x2", "value" : "0x0", "v" : "0x2a", "r" : "0xa2d2b1021e1428740a7c67af3c05fe3160481889b25b921108ac0ac2c3d5d40a", "s" : "0x63186d2aaefe188748bfb4b46fb9493cbc2b53cf36169e8501a5bc0ed941b484" } }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{block(number:20303) {transactionAt(index: 0) {block{hash} hash}}}"}' http://localhost:8547/graphql
{ block(number: 20303) { transactionAt(index: 0) { block { hash } hash } } }
{ "data" : { "block" : { "transactionAt" : { "block" : { "hash" : "0x9270651f9c6fa36232c379d0ecf69b519383aa275815a65f1e03114346668f69" }, "hash" : "0x5f5366af89e8777d5ae62a1af94a0876bdccbc22417bed0aff361eefa3e37f86" } } } }
eth_getTransactionReceipt
Returns the receipt of a transaction by transaction hash. Receipts for pending transactions are not available.
If revert reason is enabled, includes available revert reasons in the response.
Parameters
DATA
- 32-byte hash of a transaction.
Returns
Object
- Transaction receipt object, or null
when no receipt is found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x504ce587a65bdbdb6414a0c6c16d86a04dd79bfcc4f2950eec9634b30ce5370f"],"id":53}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getTransactionReceipt","params":["0x504ce587a65bdbdb6414a0c6c16d86a04dd79bfcc4f2950eec9634b30ce5370f"],"id":53}
{ "jsonrpc": "2.0", "id": 1, "result": { "blockHash": "0xe7212a92cfb9b06addc80dec2a0dfae9ea94fd344efeb157c41e12994fcad60a", "blockNumber": "0x50", "contractAddress": null, "cumulativeGasUsed": "0x5208", "from": "0x627306090abab3a6e1400e9345bc60c78a8bef57", "gasUsed": "0x5208", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "status": "0x1", "to": "0xf17f52151ebef6c7334fad080c5704d77216b732", "transactionHash": "0xc00e97af59c6f88de163306935f7682af1a34c67245e414537d02e422815efc3", "transactionIndex": "0x0" } }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{transaction(hash: \"0x5f5366af89e8777d5ae62a1af94a0876bdccbc22417bed0aff361eefa3e37f86\") {block{hash logsBloom} hash createdContract{address} cumulativeGasUsed gas gasUsed logs{topics} from{address} to{address} index}}"}' http://localhost:8547/graphql
{ transaction(hash: "0x5f5366af89e8777d5ae62a1af94a0876bdccbc22417bed0aff361eefa3e37f86") { block { hash logsBloom } hash createdContract { address } cumulativeGasUsed gas gasUsed logs { topics } from { address } to { address } index } }
{ "data" : { "transaction" : { "block" : { "hash" : "0x9270651f9c6fa36232c379d0ecf69b519383aa275815a65f1e03114346668f69", "logsBloom" : "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "hash" : "0x5f5366af89e8777d5ae62a1af94a0876bdccbc22417bed0aff361eefa3e37f86", "createdContract" : null, "cumulativeGasUsed" : 21000, "gas" : 21000, "gasUsed" : 21000, "logs" : [ ], "from" : { "address" : "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73" }, "to" : { "address" : "0x9d8f8572f345e1ae53db1dfa4a7fce49b467bd7f" }, "index" : 0 } } }
eth_newFilter
Creates a log filter. To poll for logs associated with the created filter, use eth_getFilterChanges.
Parameters
Object
- Filter options object.
Note
fromBlock
and toBlock
in the filter options object default to latest
. To obtain logs using eth_getFilterLogs
, set fromBlock
and toBlock
appropriately.
Returns
data
- Filter ID hash
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"fromBlock":"earliest", "toBlock":"latest", "topics":[]}],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_newFilter","params":[{"fromBlock":"earliest", "toBlock":"latest", "topics":[]}],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x1ddf0c00989044e9b41cc0ae40272df3" }
eth_newBlockFilter
Creates a filter to retrieve new block hashes. To poll for new blocks, use eth_getFilterChanges.
Parameters
None
Returns
data
- Filter ID hash
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x9d78b6780f844228b96ecc65a320a825" }
eth_newPendingTransactionFilter
Creates a filter to retrieve new pending transactions hashes. To poll for new pending transactions, use eth_getFilterChanges.
Parameters
None
Returns
data
- Filter ID hash
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_newPendingTransactionFilter","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x443d6a77c4964707a8554c92f7e4debd" }
eth_uninstallFilter
Uninstalls a filter with the specified ID. When a filter is no longer required, call this method.
Filters time out when not requested by eth_getFilterChanges for 10 minutes.
Parameters
data
- Filter ID hash
Returns
Boolean
- true
if the filter was successfully uninstalled; otherwise false
.
Example
The following request deletes the block filter with an ID of 0x4:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0x70355a0b574b437eaa19fe95adfedc0a"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_uninstallFilter","params":["0x70355a0b574b437eaa19fe95adfedc0a"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : true }
eth_getFilterChanges
Polls the specified filter and returns an array of changes that have occurred since the last poll.
Parameters
data
- Filter ID hash
Returns
result
: Array of Object
- If nothing changed since the last poll, an empty list. Otherwise:
- For filters created with
eth_newBlockFilter
, returns block hashes. - For filters created with
eth_newPendingTransactionFilter
, returns transaction hashes. - For filters created with
eth_newFilter
, returns log objects.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0xf8bf5598d9e04fbe84523d42640b9b0e"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getFilterChanges","params":["0xf8bf5598d9e04fbe84523d42640b9b0e"],"id":1}
Example result from a filter created with `eth_newBlockFilter`: { "jsonrpc": "2.0", "id": 1, "result": [ "0xda2bfe44bf85394f0d6aa702b5af89ae50ae22c0928c18b8903d9269abe17e0b", "0x88cd3a37306db1306f01f7a0e5b25a9df52719ad2f87b0f88ee0e6753ed4a812", "0x4d4c731fe129ff32b425e6060d433d3fde278b565bbd1fd624d5a804a34f8786" ] } Example result from a filter created with `eth_newPendingTransactionFilter`: { "jsonrpc": "2.0", "id": 1, "result": [ "0x1e977049b6db09362da09491bee3949d9362080ce3f4fc19721196d508580d46", "0xa3abc4b9a4e497fd58dc59cdff52e9bb5609136bcd499e760798aa92802769be" ] } Example result from a filter created with `eth_newFilter`: { "jsonrpc": "2.0", "id": 1, "result": [ { "logIndex": "0x0", "removed": false, "blockNumber": "0x233", "blockHash": "0xfc139f5e2edee9e9c888d8df9a2d2226133a9bd87c88ccbd9c930d3d4c9f9ef5", "transactionHash": "0x66e7a140c8fa27fe98fde923defea7562c3ca2d6bb89798aabec65782c08f63d", "transactionIndex": "0x0", "address": "0x42699a7612a82f1d9c36148af9c77354759b210b", "data": "0x0000000000000000000000000000000000000000000000000000000000000004", "topics": [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] }, { "logIndex": "0x0", "removed": false, "blockNumber": "0x238", "blockHash": "0x98b0ec0f9fea0018a644959accbe69cd046a8582e89402e1ab0ada91cad644ed", "transactionHash": "0xdb17aa1c2ce609132f599155d384c0bc5334c988a6c368056d7e167e23eee058", "transactionIndex": "0x0", "address": "0x42699a7612a82f1d9c36148af9c77354759b210b", "data": "0x0000000000000000000000000000000000000000000000000000000000000007", "topics": [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] } ] }
eth_getFilterLogs
Returns an array of logs for the specified filter.
Note
eth_getFilterLogs
is only used for filters created with eth_newFilter
.
You can use eth_getLogs
to specify a filter object and get logs without creating a filter.
Parameters
data
- Filter ID hash
Returns
array
- Log objects
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x5ace5de3985749b6a1b2b0d3f3e1fb69"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getFilterLogs","params":["0x5ace5de3985749b6a1b2b0d3f3e1fb69"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : [ { "logIndex" : "0x0", "removed" : false, "blockNumber" : "0xb3", "blockHash" : "0xe7cd776bfee2fad031d9cc1c463ef947654a031750b56fed3d5732bee9c61998", "transactionHash" : "0xff36c03c0fba8ac4204e4b975a6632c862a3f08aa01b004f570cc59679ed4689", "transactionIndex" : "0x0", "address" : "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "data" : "0x0000000000000000000000000000000000000000000000000000000000000003", "topics" : [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] }, { "logIndex" : "0x0", "removed" : false, "blockNumber" : "0xb6", "blockHash" : "0x3f4cf35e7ed2667b0ef458cf9e0acd00269a4bc394bb78ee07733d7d7dc87afc", "transactionHash" : "0x117a31d0dbcd3e2b9180c40aca476586a648bc400aa2f6039afdd0feab474399", "transactionIndex" : "0x0", "address" : "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "data" : "0x0000000000000000000000000000000000000000000000000000000000000005", "topics" : [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] } ] }
eth_getLogs
Returns an array of logs matching a specified filter object.
Parameters
Object
- Filter options object
Returns
array
- Log objects
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"earliest", "toBlock":"latest", "address": "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "topics":[]}], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getLogs","params":[{"fromBlock":"earliest", "toBlock":"latest", "address": "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "topics":[]}], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : [ { "logIndex" : "0x0", "removed" : false, "blockNumber" : "0xb3", "blockHash" : "0xe7cd776bfee2fad031d9cc1c463ef947654a031750b56fed3d5732bee9c61998", "transactionHash" : "0xff36c03c0fba8ac4204e4b975a6632c862a3f08aa01b004f570cc59679ed4689", "transactionIndex" : "0x0", "address" : "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "data" : "0x0000000000000000000000000000000000000000000000000000000000000003", "topics" : [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] }, { "logIndex" : "0x0", "removed" : false, "blockNumber" : "0xb6", "blockHash" : "0x3f4cf35e7ed2667b0ef458cf9e0acd00269a4bc394bb78ee07733d7d7dc87afc", "transactionHash" : "0x117a31d0dbcd3e2b9180c40aca476586a648bc400aa2f6039afdd0feab474399", "transactionIndex" : "0x0", "address" : "0x2e1f232a9439c3d459fceca0beef13acc8259dd8", "data" : "0x0000000000000000000000000000000000000000000000000000000000000005", "topics" : [ "0x04474795f5b996ff80cb47c148d4c5ccdbe09ef27551820caa9c2f8ed149cce3" ] } ] }
curl -X POST -H "Content-Type: application/json" --data '{"query": "{logs(filter:{fromBlock: 1486000, toBlock: 1486010, addresses: [\"0x7ef66b77759e12caf3ddb3e4aff524e577c59d8d\"], topics: [[\"0x8a22ee899102a366ac8ad0495127319cb1ff2403cfae855f83a89cda1266674d\"]]}) {index topics data account{address} transaction{hash} }}"}' http://localhost:8547/graphql
{ logs(filter: {fromBlock: 1486000, toBlock: 1486010, addresses: ["0x7ef66b77759e12caf3ddb3e4aff524e577c59d8d"], topics: [["0x8a22ee899102a366ac8ad0495127319cb1ff2403cfae855f83a89cda1266674d"]]}) { index topics data account { address } transaction { hash } } }
{ "data": { "logs": [ { "index": 0, "topics": [ "0x8a22ee899102a366ac8ad0495127319cb1ff2403cfae855f83a89cda1266674d", "0x0000000000000000000000000000000000000000000000000000000000000004", "0x0000000000000000000000000000000000000000000000000000000000508918" ], "data": "0xa5a04999ec29a8bd19ce32b859280ef9dbb464d846be06f64a1b1012ec08ab03", "account": { "address": "0x7ef66b77759e12caf3ddb3e4aff524e577c59d8d" }, "transaction": { "hash": "0x36a2186344c6a32760e7700fdf3685936220876c51ff39d071eb48c17f7e802f" } }, { "index": 0, "topics": [ "0x8a22ee899102a366ac8ad0495127319cb1ff2403cfae855f83a89cda1266674d", "0x0000000000000000000000000000000000000000000000000000000000000003", "0x0000000000000000000000000000000000000000000000000000000000648c72" ], "data": "0x0ee96b660ad82c8010c90760a03edfbb40b4af5e3634a8c214e4ac7fa1f61492", "account": { "address": "0x7ef66b77759e12caf3ddb3e4aff524e577c59d8d" }, "transaction": { "hash": "0x9e2cc9e84a9e78839d6f4b591dfd98cc7a454a8ee3cd6ccd0a18e662e22d3818" } } ] } }
eth_getWork
Returns the hash of the current block, the seed hash, and the target boundary condition to be met.
Parameters
None
Returns
result
: Array of DATA
with the following fields:
- DATA, 32 Bytes - Hash of the current block header (pow-hash).
- DATA, 32 Bytes - The seed hash used for the DAG.
- DATA, 32 Bytes - The target boundary condition to be met; 2^256 / difficulty.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eth_getWork","params":[],"id":1}
{ "id":1, "jsonrpc":"2.0", "result": [ "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0x5EED00000000000000000000000000005EED0000000000000000000000000000", "0xd1ff1c01710000000000000000000000d1ff1c01710000000000000000000000" ] }
eth_submitWork
Submits a Proof of Work (Ethash) solution.
Used by mining software such as Ethminer.
Parameters
- DATA, 8 Bytes - Retrieved nonce.
- DATA, 32 Bytes - Hash of the block header (PoW-hash).
- DATA, 32 Bytes - Mix digest.
Returns
result: Boolean
, true
if the provided solution is valid, otherwise false
.
Example
curl -X POST --data '{"jsonrpc":"2.0", "method":"eth_submitWork", "params":["0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0", "method":"eth_submitWork", "params":["0x0000000000000001", "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000D1GE5700000000000000000000000000"],"id":73}
{ "id":1, "jsonrpc":"2.0", "result": true }
Clique Methods
Note
The CLIQUE
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the CLIQUE
API methods.
clique_discard
Discards a proposal to add or remove a signer with the specified address.
Parameters
data
- 20-byte address of proposed signer.
Returns
result: boolean
- true
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_discard","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_discard","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : true }
clique_getSigners
Lists signers for the specified block.
Parameters
quantity|tag
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result: array of data
- List of 20-byte addresses of signers.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_getSigners","params":["latest"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_getSigners","params":["latest"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : [ "0x42eb768f2244c8811c63729a21a3569731535f06", "0x7ffc57839b00206d1ad20c69a1981b489f772031", "0xb279182d99e65703f0076e4812653aab85fca0f0" ] }
clique_getSignerMetrics
Provides validator metrics for the specified range:
- Number of blocks from each validator
- Block number of the last block proposed by each validator (if any proposed in the specified range)
- All validators present in the last block
Parameters
fromBlockNumber
- Integer representing a block number or the string tag earliest
as described in Block Parameter
toBlockNumber
- Integer representing a block number or one of the string tags latest
or pending
, as described in Block Parameter
If no parameters are specified, metrics are provided for the last 100 blocks or all blocks if there are less than 100 blocks.
If only the first parameter is specified, metrics are provided for all blocks from the block specified by the first parameter to the latest block.
Returns
result
: object - List of validator objects
Note
The proposer of the genesis block has address 0x0000000000000000000000000000000000000000
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_getSignerMetrics","params":["1", "100"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_getSignerMetrics","params":["1", "100"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "address": "0x7ffc57839b00206d1ad20c69a1981b489f772031", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x61" }, { "address": "0x42eb768f2244c8811c63729a21a3569731535f06", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x63" }, { "address": "0xb279182d99e65703f0076e4812653aab85fca0f0", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x62" } ] }
clique_getSignersAtHash
Lists signers for the specified block.
Parameters
data
- 32-byte block hash.
Returns
result: array of data
- List of 20-byte addresses of signers.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_getSignersAtHash","params":["0x98b2ddb5106b03649d2d337d42154702796438b3c74fd25a5782940e84237a48"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_getSignersAtHash","params":["0x98b2ddb5106b03649d2d337d42154702796438b3c74fd25a5782940e84237a48"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : [ "0x42eb768f2244c8811c63729a21a3569731535f06", "0x7ffc57839b00206d1ad20c69a1981b489f772031", "0xb279182d99e65703f0076e4812653aab85fca0f0" ] }
clique_propose
Proposes adding or removing a signer with the specified address.
Parameters
data
- 20-byte address.
boolean
- true
to propose adding signer or false
to propose removing signer.
Returns
result: boolean
- true
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_propose","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73", true], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_propose","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73", true], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : true }
clique_proposals
Returns current proposals.
Parameters
None
Returns
result
:object - Map of account addresses to corresponding boolean values indicating the proposal for each account.
If the boolean value is true
, the proposal is to add a signer. If false
, the proposal is to remove a signer.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"clique_proposals","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"clique_proposals","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "0x42eb768f2244c8811c63729a21a3569731535f07": false, "0x12eb759f2222d7711c63729a45c3585731521d01": true } }
Debug Methods
Note
The DEBUG
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the DEBUG
API methods.
debug_accountRange
Retesteth uses debug_accountRange
to implement debugging.
Returns the accounts for a specified block.
Parameters
blockHashOrNumber
: data
- Block hash or number
txIndex
: integer
- Transaction index from which to start
address
: data
- Address hash from which to start
limit
: integer
- Maximum number of account entries to return
Returns
result
:object
- Account details:
addressMap
:object
- List of address hashes and account addresses.nextKey
:data
- Hash of the next address if any addresses are left in the state, otherwise zero
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_accountRange","params":["12345", 0, "0", 5],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_accountRange","params":["12345", 0, "0", 5],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "addressMap": { "0x005e5...86960": "0x0000000000000000000000000000000000000000", "0x021fe...6ffe3": "0x0000000000000000000000000000000000000000", "0x028e6...ab776": "0x0000000000000000000000000000000000000000", "0x02cb5...bc4d8": "0x0000000000000000000000000000000000000000", "0x03089...23fd5": "0x0000000000000000000000000000000000000000" }, "nextKey": "0x04242954a5cb9748d3f66bcd4583fd3830287aa585bebd9dd06fa6625976be49" } }
debug_storageRangeAt
Remix uses debug_storageRangeAt
to implement debugging. Use the Debugger tab in Remix rather than calling debug_storageRangeAt
directly.
Returns the contract storage for the specified range.
Parameters
blockHash
: data
- Block hash
txIndex
: integer
- Transaction index from which to start
address
: data
- Contract address
startKey
: hash
- Start key
limit
: integer
- Number of storage entries to return
Returns
result
:object
- Range object
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_storageRangeAt","params":["0x2b76b3a2fc44c0e21ea183d06c846353279a7acf12abcc6fb9d5e8fb14ae2f8c",0,"0x0e0d2c8f7794e82164f11798276a188147fbd415","0x0000000000000000000000000000000000000000000000000000000000000000",1], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_storageRangeAt","params":["0x2b76b3a2fc44c0e21ea183d06c846353279a7acf12abcc6fb9d5e8fb14ae2f8c",0,"0x0e0d2c8f7794e82164f11798276a188147fbd415","0x0000000000000000000000000000000000000000000000000000000000000000",1], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "storage": { "0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563": { "key": null, "value": "0x0000000000000000000000000000000000000000000000000000000000000001" } }, "nextKey": "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6" } }
debug_metrics
Returns metrics providing information on the internal operation of Besu.
The available metrics may change over time. The JVM metrics may vary based on the JVM implementation being used.
The metric types are:
- Timer
- Counter
- Gauge
Parameters
None
Returns
result
:object
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_metrics","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_metrics","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "jvm": { "memory_bytes_init": { "heap": 268435456, "nonheap": 2555904 }, "threads_current": 41, "memory_bytes_used": { "heap": 696923976, "nonheap": 63633456 }, "memory_pool_bytes_used": { "PS Eden Space": 669119360, "Code Cache": 19689024, "Compressed Class Space": 4871144, "PS Survivor Space": 2716320, "PS Old Gen": 25088296, "Metaspace": 39073288 }, ... }, "process": { "open_fds": 546, "cpu_seconds_total": 67.148992, "start_time_seconds": 1543897699.589, "max_fds": 10240 }, "rpc": { "request_time": { "debug_metrics": { "bucket": { "+Inf": 2, "0.01": 1, "0.075": 2, "0.75": 2, "0.005": 1, "0.025": 2, "0.1": 2, "1.0": 2, "0.05": 2, "10.0": 2, "0.25": 2, "0.5": 2, "5.0": 2, "2.5": 2, "7.5": 2 }, "count": 2, "sum": 0.015925392 } } }, "blockchain": { "difficulty_total": 3533501, "announcedBlock_ingest": { "bucket": { "+Inf": 0, "0.01": 0, "0.075": 0, "0.75": 0, "0.005": 0, "0.025": 0, "0.1": 0, "1.0": 0, "0.05": 0, "10.0": 0, "0.25": 0, "0.5": 0, "5.0": 0, "2.5": 0, "7.5": 0 }, "count": 0, "sum": 0 }, "height": 1908793 }, "peers": { "disconnected_total": { "remote": { "SUBPROTOCOL_TRIGGERED": 5 }, "local": { "TCP_SUBSYSTEM_ERROR": 1, "SUBPROTOCOL_TRIGGERED": 2, "USELESS_PEER": 3 } }, "peer_count_current": 2, "connected_total": 10 } } }
debug_traceTransaction
Remix uses debug_traceTransaction
to implement debugging. Use the Debugger tab in Remix rather than calling debug_traceTransaction
directly.
Reruns the transaction with the same state as when the transaction was executed.
Parameters
transactionHash
: data
- Transaction hash.
Object
- request options (all optional and default to false
):
disableStorage
:boolean
-true
disables storage capture.disableMemory
:boolean
-true
disables memory capture.disableStack
:boolean
-true
disables stack capture.
Returns
result
:object
- Trace object.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["0x2cc6c94c21685b7e0f8ddabf277a5ccf98db157c62619cde8baea696a74ed18e",{"disableStorage":true}],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_traceTransaction","params":["0x2cc6c94c21685b7e0f8ddabf277a5ccf98db157c62619cde8baea696a74ed18e",{"disableStorage":true}],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : { "gas" : 21000, "failed" : false, "returnValue" : "", "structLogs" : [ { "pc" : 0, "op" : "STOP", "gas" : 0, "gasCost" : 0, "depth" : 1, "stack" : [ ], "memory" : [ ], "storage" : null } ] } }
debug_traceBlock
Returns full trace of all invoked opcodes of all transactions included in the block.
Parameters
Block
: data
- RLP of the block
Object
- request options (all optional and default to false
):
disableStorage
:boolean
-true
disables storage capture.disableMemory
:boolean
-true
disables memory capture.disableStack
:boolean
-true
disables stack capture.
Returns
result
:object
- Trace object.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_traceBlock","params":["0xf90277f90208a05a41d0e66b4120775176c09fcf39e7c0520517a13d2b57b18d33d342df038bfca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794e6a7a1d47ff21b6321162aea7c6cb457d5476bcaa00e0df2706b0a4fb8bd08c9246d472abbe850af446405d9eba1db41db18b4a169a04513310fcb9f6f616972a3b948dc5d547f280849a87ebb5af0191f98b87be598a0fe2bf2a941abf41d72637e5b91750332a30283efd40c424dc522b77e6f0ed8c4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000860153886c1bbd82b44382520b8252088455c426598b657468706f6f6c2e6f7267a0b48c515a9dde8d346c3337ea520aa995a4738bb595495506125449c1149d6cf488ba4f8ecd18aab215f869f86780862d79883d2000825208945df9b87991262f6ba471f09758cde1c0fc1de734827a69801ca088ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0a045e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33ac0"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_traceBlock","params":["0xf90277f90208a05a41d0e66b4120775176c09fcf39e7c0520517a13d2b57b18d33d342df038bfca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794e6a7a1d47ff21b6321162aea7c6cb457d5476bcaa00e0df2706b0a4fb8bd08c9246d472abbe850af446405d9eba1db41db18b4a169a04513310fcb9f6f616972a3b948dc5d547f280849a87ebb5af0191f98b87be598a0fe2bf2a941abf41d72637e5b91750332a30283efd40c424dc522b77e6f0ed8c4b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000860153886c1bbd82b44382520b8252088455c426598b657468706f6f6c2e6f7267a0b48c515a9dde8d346c3337ea520aa995a4738bb595495506125449c1149d6cf488ba4f8ecd18aab215f869f86780862d79883d2000825208945df9b87991262f6ba471f09758cde1c0fc1de734827a69801ca088ff6cf0fefd94db46111149ae4bfc179e9b94721fffd821d38d16464b3f71d0a045e0aff800961cfce805daef7016b9b675c137a6a41a548f7b60a3484c06a33ac0"],"id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : { "gas" : 21000, "failed" : false, "returnValue" : "", "structLogs" : [ { "pc" : 0, "op" : "STOP", "gas" : 0, "gasCost" : 0, "depth" : 1, "stack" : [ ], "memory" : [ ], "storage" : null } ] } }
debug_traceBlockByHash
Returns full trace of all invoked opcodes of all transactions included in the block.
Parameters
block hash
: data
- Block hash
Object
- request options (all optional and default to false
):
disableStorage
:boolean
-true
disables storage capture.disableMemory
:boolean
-true
disables memory capture.disableStack
:boolean
-true
disables stack capture.
Returns
result
:array of objects
- Trace objects.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_traceBlockByHash","params":["0xaceb3b2c9b25b0589230873921eb894b28722011b8df63977145517d754875a5"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_traceBlockByHash","params":["0xaceb3b2c9b25b0589230873921eb894b28722011b8df63977145517d754875a5"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "gas": 21000, "failed": false, "returnValue": "", "structLogs": [ { "pc": 0, "op": "STOP", "gas": 0, "gasCost": 0, "depth": 1, "stack": [], "memory": [], "storage": {}, "reason": null } ] } ] }
debug_traceBlockByNumber
Returns full trace of all invoked opcodes of all transactions included in the block.
Parameters
quantity|tag
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Object
- request options (all optional and default to false
):
disableStorage
:boolean
-true
disables storage capture.disableMemory
:boolean
-true
disables memory capture.disableStack
:boolean
-true
disables stack capture.
Returns
result
:array of objects
- Trace objects.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"debug_traceBlockByNumber","params":["0x7224",{"disableStorage":true}], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"debug_traceBlockByNumber","params":["0x7224",{"disableStorage":true}], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "gas": 21000, "failed": false, "returnValue": "", "structLogs": [ { "pc": 0, "op": "STOP", "gas": 0, "gasCost": 0, "depth": 1, "stack": [], "memory": [], "storage": null, "reason": null } ] } ] }
Miner Methods
Note
The MINER
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the MINER
API methods.
miner_start
Starts the mining process. To start mining, a miner coinbase must have been previously specified using the --miner-coinbase
command line option.
Parameters
None
Returns
result
: boolean
- true
if the mining start request was received successfully; otherwise returns an error.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"miner_start","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"miner_start","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": true }
miner_stop
Stops the mining process on the client.
Parameters
None
Returns
result
: boolean
- true
if the mining stop request was received successfully; otherwise returns an error.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"miner_stop","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"miner_stop","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": true }
IBFT 2.0 Methods
Note
The IBFT
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the IBFT
API methods.
ibft_discardValidatorVote
Discards a proposal to add or remove a validator with the specified address.
Parameters
data
- 20-byte address of proposed validator
Returns
result: boolean
- true
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_discardValidatorVote","params":["0xef1bfb6a12794615c9b0b5a21e6741f01e570185"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_discardValidatorVote","params":["0xef1bfb6a12794615c9b0b5a21e6741f01e570185"], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : true }
ibft_getPendingVotes
Returns current votes.
Parameters
None
Returns
result
: object
- Map of account addresses to corresponding boolean values indicating the vote for each account.
If the boolean value is true
, the vote is to add a validator. If false
, the proposal is to remove a validator.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getPendingVotes","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_getPendingVotes","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "0xef1bfb6a12794615c9b0b5a21e6741f01e570185": true, "0x42d4287eac8078828cf5f3486cfe601a275a49a5": true } }
ibft_getValidatorsByBlockHash
Lists the validators defined in the specified block.
Parameters
data
- 32-byte block hash
Returns
result: array of data
- List of validator addresses
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockHash","params":["0xbae7d3feafd743343b9a4c578cab5e5d65eb735f6855fb845c00cab356331256"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockHash","params":["0xbae7d3feafd743343b9a4c578cab5e5d65eb735f6855fb845c00cab356331256"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ "0x42d4287eac8078828cf5f3486cfe601a275a49a5", "0xb1b2bc9582d2901afdc579f528a35ca41403fa85", "0xef1bfb6a12794615c9b0b5a21e6741f01e570185" ] }
ibft_getValidatorsByBlockNumber
Lists the validators defined in the specified block.
Parameters
quantity|tag
- Integer representing a block number or one of the string tags latest
, earliest
, or pending
, as described in Block Parameter.
Returns
result: array of data
- List of validator addresses
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ "0x42d4287eac8078828cf5f3486cfe601a275a49a5", "0xb1b2bc9582d2901afdc579f528a35ca41403fa85", "0xef1bfb6a12794615c9b0b5a21e6741f01e570185" ] }
ibft_proposeValidatorVote
Proposes adding or removing a validator with the specified address.
Parameters
data
- Account address
boolean
- true
to propose adding validator or false
to propose removing validator.
Returns
result: boolean
- true
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["42d4287eac8078828cf5f3486cfe601a275a49a5",true], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["42d4287eac8078828cf5f3486cfe601a275a49a5",true], "id":1}
{ "jsonrpc" : "2.0", "id" : 1, "result" : true }
ibft_getSignerMetrics
Provides validator metrics for the specified range:
- Number of blocks from each validator
- Block number of the last block proposed by each validator (if any proposed in the specified range)
- All validators present in the last block of the range
Parameters
fromBlockNumber
- Integer representing a block number or the string tag earliest
as described in Block Parameter
toBlockNumber
- Integer representing a block number or one of the string tags latest
or pending
, as described in Block Parameter
If no parameters are specified, metrics are provided for the last 100 blocks or all blocks if there are less than 100 blocks.
If only the first parameter is specified, metrics are provided for all blocks from the block specified by the first parameter to the latest block.
Returns
result
: object - List of validator objects
Note
The proposer of the genesis block has address 0x0000000000000000000000000000000000000000
.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getSignerMetrics","params":["1", "100"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"ibft_getSignerMetrics","params":["1", "100"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "address": "0x7ffc57839b00206d1ad20c69a1981b489f772031", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x61" }, { "address": "0x42eb768f2244c8811c63729a21a3569731535f06", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x63" }, { "address": "0xb279182d99e65703f0076e4812653aab85fca0f0", "proposedBlockCount": "0x21", "lastProposedBlockNumber": "0x62" } ] }
Permissioning Methods
The permissioning API methods are used for local permissioning only.
Important
The PERM
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
CLI options to enable the PERM
API methods.
perm_addAccountsToWhitelist
Adds accounts (participants) to the accounts whitelist.
Parameters
list of strings
- List of account addresses
Note
The parameters list contains a list which is why the account addresses are enclosed by double square brackets.
Returns
result
- Success
or error
. Errors include attempting to add accounts already on the whitelist or
including invalid account addresses.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addAccountsToWhitelist","params":[["0xb9b81ee349c3807e46bc71aa2632203c5b462032", "0xb9b81ee349c3807e46bc71aa2632203c5b462034"]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_addAccountsToWhitelist","params":[["0xb9b81ee349c3807e46bc71aa2632203c5b462032", "0xb9b81ee349c3807e46bc71aa2632203c5b462034"]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
perm_getAccountsWhitelist
Lists accounts (participants) in the accounts whitelist.
Parameters
None
Returns
result: list
- Accounts (participants) in the accounts whitelist.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_getAccountsWhitelist","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_getAccountsWhitelist","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ "0x0000000000000000000000000000000000000009", "0xb9b81ee349c3807e46bc71aa2632203c5b462033" ] }
perm_removeAccountsFromWhitelist
Removes accounts (participants) from the accounts whitelist.
Parameters
list of strings
- List of account addresses
Note
The parameters list contains a list which is why the account addresses are enclosed by double square brackets.
Returns
result
- Success
or error
. Errors include attempting to remove accounts not on the whitelist or
including invalid account addresses.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_removeAccountsFromWhitelist","params":[["0xb9b81ee349c3807e46bc71aa2632203c5b462032", "0xb9b81ee349c3807e46bc71aa2632203c5b462034"]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_removeAccountsFromWhitelist","params":[["0xb9b81ee349c3807e46bc71aa2632203c5b462032", "0xb9b81ee349c3807e46bc71aa2632203c5b462034"]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
perm_addNodesToWhitelist
Adds nodes to the nodes whitelist.
Parameters
list of strings
- List of enode URLs
Note
The parameters list contains a list which is why the enode URLs are enclosed by double square brackets.
Returns
result
- Success
or error
. Errors include attempting to add nodes already on the whitelist or
including invalid enode URLs.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addNodesToWhitelist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9[email protected]127.0.0.1:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a[email protected]127.0.0.1:30304"]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_addNodesToWhitelist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9[email protected]127.0.0.1:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a[email protected]127.0.0.1:30304"]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
perm_getNodesWhitelist
Lists nodes in the nodes whitelist.
Parameters
None
Returns
result: list
- Enode URLs of nodes in the nodes whitelist.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_getNodesWhitelist","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_getNodesWhitelist","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ "enode://7b61d5ee4b44335873e6912cb5dd3e3877c860ba21417c9b9ef1f7e500a822137[email protected]127.0.0.1:30305", "enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a[email protected]127.0.0.1:30304" ] }
perm_removeNodesFromWhitelist
Removes nodes from the nodes whitelist.
Parameters
list of strings
- List of enode URLs
Note
The parameters list contains a list which is why the enode URLs are enclosed by double square brackets.
Returns
result
- Success
or error
. Errors include attempting to remove nodes not on the whitelist or
including invalid enode URLs.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_removeNodesFromWhitelist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9b6f9e66fcc73ef[email protected]:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a[email protected]127.0.0.1:30304"]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_removeNodesFromWhitelist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9[email protected]127.0.0.1:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a[email protected]127.0.0.1:30304"]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
perm_reloadPermissionsFromFile
Reloads the accounts and nodes whitelists from the permissions configuration file.
Parameters
None
Returns
result
- Success
or error
if the permissions configuration file is not valid.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_reloadPermissionsFromFile","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"perm_reloadPermissionsFromFile","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "Success" }
Txpool Methods
Note
The TXPOOL
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the TXPOOL
API methods.
txpool_besuStatistics
Lists statistics about the node transaction pool.
Parameters
None
Returns
result
- Transaction pool statistics:
maxSize
- Maximum number of transactions kept in the transaction pool. Use the--tx-pool-max-size
option to configure the maximum size.localCount
- Number of transactions submitted directly to this noderemoteCount
- Number of transactions received from remote nodes.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"txpool_besuStatistics","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"txpool_besuStatistics","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "maxSize": 4096, "localCount": 1, "remoteCount": 0 } }
txpool_besuTransactions
Lists transactions in the node transaction pool.
Parameters
None
Returns
result
- List of transactions
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"txpool_besuTransactions","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"txpool_besuTransactions","params":[],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "hash": "0x8a66830098be4006a3f63a03b6e9b67aa721e04bd6b46d420b8f1937689fb4f1", "isReceivedFromLocalSource": true, "addedToPoolAt": "2019-03-21T01:35:50.911Z" }, { "hash": "0x41ee803c3987ceb5bcea0fad7a76a8106a2a6dd654409007d9931032ea54579b", "isReceivedFromLocalSource": true, "addedToPoolAt": "2019-03-21T01:36:00.374Z" } ] }
EEA Methods
Note
The EEA
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the EEA
API methods.
eea_sendRawTransaction
Distributes the private transaction, generates the Privacy Marker Transaction and submits it to the transaction pool, and returns the transaction hash of the Privacy Marker Transaction.
The signed transaction passed as an input parameter includes the privateFrom
, privateFor
or privacyGroupId
,
and restriction
fields.
To avoid exposing your private key, create signed transactions offline and send the signed transaction
data using eea_sendRawTransaction
.
Important
For production systems requiring private transactions, we recommend using a network with a consensus mechanism supporting transaction finality. For example, IBFT 2.0.
Besu does not implement eea_sendTransaction
.
EthSigner provides transaction signing and implements eea_sendTransaction
.
Parameters
data
- Signed RLP-encoded private transaction. For example:
params: ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"]
Returns
result
: data
- 32-byte transaction hash of the Privacy Marker Transaction
Tip
If creating a contract, use priv_getTransactionReceipt to retrieve the contract address after the transaction is finalized.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"eea_sendRawTransaction","params": ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"eea_sendRawTransaction","params": ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"], "id":1}
{ "id":1, "jsonrpc": "2.0", "result": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331" }
Priv Methods
Note
The PRIV
API methods are not enabled by default for JSON-RPC. Use the --rpc-http-api
or --rpc-ws-api
options to enable the PRIV
API methods.
priv_distributeRawTransaction
Distributes a signed, RLP encoded private transaction.
Tip
If you want to sign the Privacy Marker Transaction outside of Besu, use priv_distributeRawTransaction
instead of eea_sendRawTransaction
.
Parameters
data
- Signed RLP-encoded private transaction. For example:
params: ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"]
Returns
result
: data
- 32-byte enclave key. The enclave key is a pointer to the private transaction in Orion.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_distributeRawTransaction","params": ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_distributeRawTransaction","params": ["0xf869018203e882520894f17f52151ebef6c7334fad080c5704d77216b732881bc16d674ec80000801ba02da1c48b670996dcb1f447ef9ef00b33033c48a4fe938f420bec3e56bfd24071a062e0aa78a81bf0290afbc3a9d8e9a068e6d74caa66c5e0fa8a46deaae96b0833"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0xfd0d90ab824574abc19c0776ca0210e764561d0ef6d621f2bbbea316eccfe56b" }
priv_getEeaTransactionCount
Returns the private transaction count for the specified account and group of sender and recipients.
Important
If sending more than 1 transaction to be mined in the same block (that is, you’re not waiting for the transaction receipt), you must calculate the private transaction nonce outside Besu.
Parameters
data
- Account address
data
- Base64 encoded Orion address of the sender
array of data
- Base64 encoded Orion addresses of recipients
Returns
quantity
- Integer representing the number of private transactions sent from the address to the specified group of sender and recipients.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_getEeaTransactionCount","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "GGilEkXLaQ9yhhtbpBT03Me9iYa7U/mWXxrJhnbl1XY=", ["KkOjNLmCI6r+mICrC6l+XuEDjFEzQllaMQMpWLl4y1s=","eLb69r4K8/9WviwlfDiZ4jf97P9czyS3DkKu0QYGLjg="]], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_getEeaTransactionCount","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "GGilEkXLaQ9yhhtbpBT03Me9iYa7U/mWXxrJhnbl1XY=", ["KkOjNLmCI6r+mICrC6l+XuEDjFEzQllaMQMpWLl4y1s=","eLb69r4K8/9WviwlfDiZ4jf97P9czyS3DkKu0QYGLjg="]], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x1" }
priv_getPrivacyPrecompileAddress
Returns the address of the privacy precompiled contract.
The address is specified by the --privacy-precompiled-address
command line option.
Parameters
None
Returns
result
: data
- Address of the privacy precompile
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_getPrivacyPrecompileAddress","params":[], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_getPrivacyPrecompileAddress","params":[], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x000000000000000000000000000000000000007e" }
priv_getPrivateTransaction
Returns the private transaction if you are a participant; otherwise, null.
Parameters
data
- Transaction hash returned by eea_sendRawTransaction
or
eea_sendTransction
. .
Returns
Object - Private transaction object, or null
if not a participant in the private transaction.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_getPrivateTransaction","params":["0x623c4ce5275a87b91f4f1c521012d39ca19311c787bde405490f4c0426a71498"], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_getPrivateTransaction","params":["0x623c4ce5275a87b91f4f1c521012d39ca19311c787bde405490f4c0426a71498"], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "gas": "0x2dc6c0", "gasPrice": "0x0", "hash": "0x623c4ce5275a87b91f4f1c521012d39ca19311c787bde405490f4c0426a71498", "input": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610221806100606000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633fa4f2451461005c5780636057361d1461008757806367e404ce146100b4575b600080fd5b34801561006857600080fd5b5061007161010b565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b506100b260048036038101908080359060200190929190505050610115565b005b3480156100c057600080fd5b506100c96101cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600254905090565b7fc9db20adedc6cf2b5d25252b101ab03e124902a73fcb12b753f3d1aaa2d8f9f53382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a18060028190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058208efaf938851fb2d235f8bf9a9685f149129a30fe0f4b20a6c1885dc02f639eba0029", "nonce": "0x0", "to": null, "value": "0x0", "v": "0xfe8", "r": "0x654a6a9663ca70bb13e27cca14b3777cc92da184e19a151cdeef2ccbbd5c6405", "s": "0x5dd4667b020c8a5af7ae28d4c3126f8dcb1187f49dcf0de9d7a39b1651892eef", "privateFrom": "negmDcN2P4ODpqn/6WkJ02zT/0w0bjhGpkZ8UP6vARk=", "privateFor": [ "g59BmTeJIn7HIcnq8VQWgyh/pDbvbt2eyP0Ii60aDDw=" ], "restriction": "restricted" } }
priv_createPrivacyGroup
Creates a privacy group containing the specified members. Members are specified by their Orion public key.
Parameters
Object
- Request options:
addresses
:array of data
- Array of members specified by Orion public keys.name
:string
- Privacy group name. Optional.description
:string
- Privacy group description. Optional.
Returns
Privacy group ID
Example
curl -X POST --data '{"jsonrpc":"2.0","method": "priv_createPrivacyGroup", "params": [{"addresses":["sTZpbQhcOfd9ZaFDnC00e/N2Ofv9p4/ZTBbEeVtXJ3E=","quhb1pQPGN1w8ZSZSyiIfncEAlVY/M/rauSyQ5wVMRE="],"name":"Group A","description":"Description Group A"}],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method": "priv_createPrivacyGroup", "params": [{"addresses":["sTZpbQhcOfd9ZaFDnC00e/N2Ofv9p4/ZTBbEeVtXJ3E=","quhb1pQPGN1w8ZSZSyiIfncEAlVY/M/rauSyQ5wVMRE="],"name":"Group A","description":"Description Group A"}],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "ewuTVoc5nlvWMwTFdRRK/wvV0dcyQo/Pauvx5bNEbTk=" }
priv_deletePrivacyGroup
Deletes the specified privacy group.
Parameters
data
- Privacy group ID
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_deletePrivacyGroup","params":["ewuTVoc5nlvWMwTFdRRK/wvV0dcyQo/Pauvx5bNEbTk="],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_deletePrivacyGroup","params":["ewuTVoc5nlvWMwTFdRRK/wvV0dcyQo/Pauvx5bNEbTk="],"id":1}
{ "jsonrpc": "2.0", "id": 53, "result": "ewuTVoc5nlvWMwTFdRRK/wvV0dcyQo/Pauvx5bNEbTk=" }
priv_findPrivacyGroup
Returns a list of privacy groups containing only the listed members. For example, if the listed members are A and B, a privacy group containing A, B, and C is not returned.
Parameters
array of data
- Members specified by Orion public keys
Returns
Privacy groups containing only the specified members. Privacy groups are EEA-compliant or Besu-extended with types:
LEGACY
for EEA-compliant groupsBESU
for Besu-extended groups.
Example
curl -X POST --data '{"jsonrpc": "2.0","method": "priv_findPrivacyGroup","params": [["negmDcN2P4ODpqn/6WkJ02zT/0w0bjhGpkZ8UP6vARk=", "g59BmTeJIn7HIcnq8VQWgyh/pDbvbt2eyP0Ii60aDDw="]],"id": 1}' http://127.0.0.1:8545
{"jsonrpc": "2.0","method": "priv_findPrivacyGroup","params": [["negmDcN2P4ODpqn/6WkJ02zT/0w0bjhGpkZ8UP6vARk=", "g59BmTeJIn7HIcnq8VQWgyh/pDbvbt2eyP0Ii60aDDw="]],"id": 1}
{ "jsonrpc": "2.0", "id": 1, "result": [ { "privacyGroupId": "GpK3ErNO0xF27T0sevgkJ3+4qk9Z+E3HtXYxcKIBKX8=", "name": "Group B", "description": "Description of Group B", "type": "BESU", "members": [ "negmDcN2P4ODpqn/6WkJ02zT/0w0bjhGpkZ8UP6vARk=", "g59BmTeJIn7HIcnq8VQWgyh/pDbvbt2eyP0Ii60aDDw=" ] } ] }
priv_getTransactionCount
Returns the private transaction count for specified account and privacy group.
Important
If sending more than 1 transaction to be mined in the same block (that is, you’re not waiting for the transaction receipt), you must calculate the private transaction nonce outside Besu.
Parameters
data
- Account address
data
- Privacy group ID
Returns
quantity
- Integer representing the number of private transactions sent from the address to the specified privacy group.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_getTransactionCount","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "kAbelwaVW7okoEn1+okO+AbA4Hhz/7DaCOWVQz9nx5M="], "id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_getTransactionCount","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73", "kAbelwaVW7okoEn1+okO+AbA4Hhz/7DaCOWVQz9nx5M="], "id":1}
{ "jsonrpc": "2.0", "id": 1, "result": "0x1" }
priv_getTransactionReceipt
Returns information about the private transaction after the transaction was mined. Receipts for pending transactions are not available.
Parameters
data
- 32-byte hash of a transaction.
Returns
Object
- Private Transaction receipt object, or null
if no receipt found.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"priv_getTransactionReceipt","params":["0xf3ab9693ad92e277bf785e1772f29fb1864904bbbe87b0470455ddb082caab9d"],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"priv_getTransactionReceipt","params":["0xf3ab9693ad92e277bf785e1772f29fb1864904bbbe87b0470455ddb082caab9d"],"id":1}
{ "jsonrpc": "2.0", "id": 1, "result": { "contractAddress": "0xf4464be696b6531b87edbfb8c21dd178c34eb89e", "from": "0x372a70ace72b02cc7f1757183f98c620254f9c8d", "to": null, "output": "0x6080604052600436106100565763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416633fa4f245811461005b5780636057361d1461008257806367e404ce146100ae575b600080fd5b34801561006757600080fd5b506100706100ec565b60408051918252519081900360200190f35b34801561008e57600080fd5b506100ac600480360360208110156100a557600080fd5b50356100f2565b005b3480156100ba57600080fd5b506100c3610151565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b60025490565b604080513381526020810183905281517fc9db20adedc6cf2b5d25252b101ab03e124902a73fcb12b753f3d1aaa2d8f9f5929181900390910190a16002556001805473ffffffffffffffffffffffffffffffffffffffff191633179055565b60015473ffffffffffffffffffffffffffffffffffffffff169056fea165627a7a72305820c7f729cb24e05c221f5aa913700793994656f233fe2ce3b9fd9a505ea17e8d8a0029", "logs": [] } }
Miscellaneous Methods
rpc_modules
Lists enabled APIs and the version of each.
Parameters
None
Returns
Enabled APIs.
Example
curl -X POST --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' http://127.0.0.1:8545
{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}
```json tab=”JSON result” { “jsonrpc”: “2.0”, “id”: 1, “result”: { “web3”: “1.0”, “eth”: “1.0”, “net”: “1.0” } }