Skip to main content
Core Lane provides custom JSON-RPC methods that extend beyond standard Ethereum compatibility to support its unique features.

Fee and Economics Methods

eth_baseFeePerGas

Returns the current EIP-1559 base fee per gas.
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_baseFeePerGas",
    "params": [],
    "id": 1
  }'
result
string
Current base fee per gas in wei (hex)
Example Response:
{
  "jsonrpc": "2.0",
  "result": "0x3b9aca00",
  "id": 1
}

corelane_sequencerBalance

Returns the balance of the sequencer address (which receives priority fees).
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "corelane_sequencerBalance",
    "params": [],
    "id": 1
  }'
result
string
Sequencer balance in wei (hex)
Example Response:
{
  "jsonrpc": "2.0",
  "result": "0x1bc16d674ec80000",
  "id": 1
}
The sequencer address is configured via the --sequencer-address command-line flag. If not specified, it defaults to 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 (first Hardhat test account).

corelane_totalBurned

Returns the total amount of tokens burned from EIP-1559 base fees.
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "corelane_totalBurned",
    "params": [],
    "id": 1
  }'
result
string
Total burned amount in wei (hex)
Example Response:
{
  "jsonrpc": "2.0",
  "result": "0xde0b6b3a7640000",
  "id": 1
}
In Core Lane’s EIP-1559 implementation, base fees are burned (removed from circulation) while priority fees go to the sequencer.

Key-Value Store Methods

corelane_getKV

Retrieves a value from the Core Lane key-value store.
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "corelane_getKV",
    "params": ["my-key"],
    "id": 1
  }'
params[0]
string
required
Key to retrieve from the KV store
result
string | null
Stored value as hex-encoded bytes, or null if key not found
Example Response:
{
  "jsonrpc": "2.0",
  "result": "0x68656c6c6f",
  "id": 1
}
The key-value store is a Core Lane-specific feature that allows applications to store and retrieve arbitrary data on-chain. Values are stored via special transaction calldata and can be queried via this RPC method.

Bitcoin Wallet Methods

bitcoin_getWalletBalance

Returns the Bitcoin wallet balance for the configured mnemonic.
This method is only available when the node is configured with Bitcoin DA (not in derived or Espresso mode).
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "bitcoin_getWalletBalance",
    "params": [],
    "id": 1
  }'
result
object
Bitcoin wallet balance information
Example Response:
{
  "jsonrpc": "2.0",
  "result": {
    "network": "regtest",
    "total_sats": 500000000,
    "confirmed_sats": 500000000,
    "unconfirmed_sats": 0,
    "total_btc": "5.00000000",
    "confirmed_btc": "5.00000000",
    "unconfirmed_btc": "0.00000000"
  },
  "id": 1
}

Intent System Methods

Core Lane supports an intent system through eth_call. These calls use specific function selectors and are decoded internally.

IsIntentSolved

Check if a specific intent has been solved.
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_call",
    "params": [{
      "to": "0x0000000000000000000000000000000000000045",
      "data": "0x<encoded_is_intent_solved_call>"
    }, "latest"],
    "id": 1
  }'
data
string
required
Encoded function call with intent ID. The calldata should encode:
  • Function selector for isIntentSolved(bytes32)
  • Intent ID (32 bytes)
result
string
Returns 0x0000000000000000000000000000000000000000000000000000000000000001 if solved, 0x0000000000000000000000000000000000000000000000000000000000000000 if not
Example Response (solved):
{
  "jsonrpc": "2.0",
  "result": "0x0000000000000000000000000000000000000000000000000000000000000001",
  "id": 1
}

ValueStoredInIntent

Retrieve the value stored in a specific intent.
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "method": "eth_call",
    "params": [{
      "to": "0x0000000000000000000000000000000000000045",
      "data": "0x<encoded_value_stored_in_intent_call>"
    }, "latest"],
    "id": 1
  }'
data
string
required
Encoded function call with intent ID. The calldata should encode:
  • Function selector for valueStoredInIntent(bytes32)
  • Intent ID (32 bytes)
result
string
Returns the value stored in the intent as a 32-byte hex-encoded uint256, or zero if intent not found
Example Response:
{
  "jsonrpc": "2.0",
  "result": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000",
  "id": 1
}

REST Endpoints

Core Lane also provides HTTP GET endpoints for specific data access:

GET /health

Health check endpoint.
curl http://127.0.0.1:8545/health
Response:
{
  "status": "healthy"
}

GET /get_raw_block/:block_number

Returns raw block data (BundleStateManager) for a specific block.
curl http://127.0.0.1:8545/get_raw_block/123
block_number
integer
required
Block number to retrieve
Response: Binary data (Borsh-serialized BundleStateManager)

GET /get_raw_block_delta/:block_number

Returns the state delta for a specific block.
curl http://127.0.0.1:8545/get_raw_block_delta/123
block_number
integer
required
Block number to retrieve delta for
Response: Binary data (Borsh-serialized delta)

GET /get_latest_block

Returns information about the latest block.
curl http://127.0.0.1:8545/get_latest_block
Response:
{
  "block_number": 123,
  "block_hash": "0x1234...",
  "timestamp": 1704067200,
  "transaction_count": 5
}

GET /kv/:key

Returns the value for a key from the key-value store.
curl http://127.0.0.1:8545/kv/my-key
key
string
required
Key to retrieve
Response: Raw bytes if found, or 404 if not found

GET /bitcoin/wallet/balance

Returns Bitcoin wallet balance information.
curl http://127.0.0.1:8545/bitcoin/wallet/balance
Response:
{
  "network": "regtest",
  "total_sats": 500000000,
  "confirmed_sats": 500000000,
  "unconfirmed_sats": 0,
  "total_btc": "5.00000000",
  "confirmed_btc": "5.00000000",
  "unconfirmed_btc": "0.00000000"
}

POST /do_poll

Triggers an on-demand block scan (only available when --on-demand-polling is enabled).
curl -X POST http://127.0.0.1:8545/do_poll
This endpoint is only active when the node is started with the --on-demand-polling flag, which disables automatic block scanning.
Response:
{
  "status": "ok",
  "message": "Poll triggered"
}

Configuration

These custom methods may require specific node configuration:

Bitcoin Methods

Require --mnemonic or --mnemonic-file and Bitcoin RPC configuration

Sequencer Methods

Use --sequencer-address to configure sequencer (defaults to test address)

On-Demand Polling

Enable with --on-demand-polling flag

Sequencer RPC

Set --sequencer-rpc-url to forward transactions

Next Steps

Ethereum-Compatible Methods

Return to standard Ethereum RPC methods

Build docs developers (and LLMs) love