RPC API
Public EVMKit and supported `eth_*` JSON-RPC methods on the shared root POST endpoint.
All current public methods are sent through the same regional JSON-RPC root endpoint:
https://rpc-<endpoint>.evmkit.app/Replace <endpoint> with your chosen regional endpoint. See Regions for hostname patterns and the current regional layout.
Use the same headers for every method:
Content-Type: application/jsonX-Api-Key: evk_your_live_keyMethods that execute against a chosen block use hex block numbers in the request body.
For pricing, use the single table on the Billing & CU pricing page.
evmkit_prepare
Section titled “evmkit_prepare”Register a structured transaction payload under a deterministic hash for later simulation or tracing.
Example request:
{ "jsonrpc": "2.0", "id": 1, "method": "evmkit_prepare", "params": [ { "tx": { "from": "0x1111111111111111111111111111111111111111", "to": "0x2222222222222222222222222222222222222222", "input": "0x1234", "value": "0x0", "gas": 250000 }, "hash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "blockNumber": "0x16e3600", "stateBlockNumber": "0x16e35ff" } ]}Example response:
{ "jsonrpc": "2.0", "id": 1, "result": null}Successful prepare calls return null.
evmkit_prepareRaw
Section titled “evmkit_prepareRaw”Register a pre-built payload under a deterministic hash for later simulation or tracing.
Example request:
{ "jsonrpc": "2.0", "id": 1, "method": "evmkit_prepareRaw", "params": [ { "tx": "0x02f86c01808506fc23ac0082520894aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa80c0", "hash": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "blockNumber": "0x16e3600", "stateBlockNumber": "0x16e35ff" } ]}Example response:
{ "jsonrpc": "2.0", "id": 1, "result": null}Successful raw prepare calls return null.
evmkit_call
Section titled “evmkit_call”Run a prepared or one-shot simulation request and return success status, gas used, optional output bytes, and optional access list.
prep is the prepared hash you previously registered with evmkit_prepare or evmkit_prepareRaw.
Example request:
{ "jsonrpc": "2.0", "id": 1, "method": "evmkit_call", "params": [ { "prep": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "tx": { "from": "0x1111111111111111111111111111111111111111", "to": "0x2222222222222222222222222222222222222222", "value": "0x0", "input": "0x1234", "gas": 250000 }, "blockNumber": "0x16e3600", "stateBlockNumber": "0x16e35ff", "createOutput": true, "createAccessList": true } ]}Example response:
{ "jsonrpc": "2.0", "id": 1, "result": { "s": true, "r": { "s": true, "g": 184221, "c": "0x0000000000000000000000000000000000000000000000000000000000000001", "a": { "g": 123456, "l": [ { "address": "0xabc", "storageKeys": [ "0x1", "0x2" ] }, { "address": "0xdef", "storageKeys": [] } ] } } }}If createAccessList is true, result.r.a.g returns the access-list gas estimate and result.r.a.l returns the generated access list.
evmkit_trace
Section titled “evmkit_trace”Return a structured trace for a prepared or one-shot simulation request.
Example request:
{ "jsonrpc": "2.0", "id": 1, "method": "evmkit_trace", "params": [ { "options": { "disableStorage": false, "disableStack": true, "disableReturnData": true, "disableMemory": true, "tracer": "muxTracer", "tracerConfig": { "callTracer": { "withLog": true } } }, "tx": { "hash": "0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", "tx": { "from": "0x1111111111111111111111111111111111111111", "to": "0x2222222222222222222222222222222222222222", "value": "0x0", "input": "0x1234", "gas": 250000 } }, "blockNumber": "0x16e3600", "stateBlockNumber": "0x16e35ff" } ]}Example response:
{ "jsonrpc": "2.0", "id": 1, "result": { "e": false, "s": true, "g": 184221, "r": { "callTracer": { "from": "0x1111111111111111111111111111111111111111", "to": "0x2222222222222222222222222222222222222222", "gas": "0x3d090", "gasUsed": "0x2cf9d", "input": "0x1234", "output": "0x", "type": "CALL", "logs": [ { "address": "0x2222222222222222222222222222222222222222", "topics": [ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" ], "data": "0x0000000000000000000000001111111111111111111111111111111111111111", "index": "0x0", "position": "0x0" } ] } } }}result.g returns the gas used by the traced transaction.
result.e is true when the traced transaction already exists on chain.
evmkit_pendingBlock
Section titled “evmkit_pendingBlock”Returns the latest pending block context: number, basefee, timestamp.
Example request:
{ "jsonrpc": "2.0", "id": 1, "method": "evmkit_pendingBlock", "params": []}Example response:
{ "jsonrpc": "2.0", "id": 1, "result": { "number": "0x14d99a2", "basefee": "0x5e57394a", "timestamp": "0x67d1a25a" }}eth namespace methods
Section titled “eth namespace methods”| Method | Notes |
|---|---|
eth_getBlockByHash | Block by hash, with optional full transactions. |
eth_getBlockByNumber | Block by tag or number, with optional full transactions. |
eth_getBlockReceipts | Full receipt list for a block. |
eth_getRawTransactionByHash | Raw signed transaction bytes by hash. |
eth_getTransactionByHash | Decoded transaction by hash. |
eth_getRawTransactionByBlockHashAndIndex | Raw transaction by block hash and index. |
eth_getTransactionByBlockHashAndIndex | Transaction by block hash and index. |
eth_getRawTransactionByBlockNumberAndIndex | Raw transaction by block number and index. |
eth_getTransactionByBlockNumberAndIndex | Transaction by block number and index. |
eth_getTransactionBySenderAndNonce | Reth extension for sender plus nonce lookup. |
eth_getTransactionReceipt | Receipt by transaction hash. |
eth_getBalance | Account balance at a block tag or number. |
eth_getStorageAt | Storage slot value at a block tag or number. |
eth_getTransactionCount | Nonce at a block tag or number. |
eth_getCode | Bytecode at a block tag or number. |
eth_gasPrice | Suggested legacy gas price. |
eth_maxPriorityFeePerGas | Suggested priority fee. |
eth_blobBaseFee | Current blob base fee. |
eth_getLogs | Log query with upstream range and result limits. |