For the complete documentation index, see llms.txt. This page is also available as Markdown.

estimate_cycle - Nervos

Example code for the estimate_cycle JSON-RPC method. Complete guide on how to use estimate_cycle JSON-RPC in GetBlock Web3 documentation.

Returns the estimated CKB-VM cycles needed to execute a transaction's scripts. Like Ethereum's eth_estimateGas but for CKB-VM cycles instead of gas. The transaction does not have to be valid for execution at the moment of the call.

Parameters

Parameter
Type
Required
Description

tx

Transaction

Yes

Transaction to estimate cycles for

Request Example

curl --location --request POST 'https://go.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "estimate_cycles",
    "params": [
        {
            "version": "0x0",
            "cell_deps": [],
            "header_deps": [],
            "inputs": [],
            "outputs": [],
            "outputs_data": [],
            "witnesses": []
        }
    ],
    "id": "getblock.io"
}'
import axios from 'axios';

const data = JSON.stringify({
    "jsonrpc": "2.0",
    "method": "estimate_cycles",
    "params": [
        {
            "version": "0x0",
            "cell_deps": [],
            "header_deps": [],
            "inputs": [],
            "outputs": [],
            "outputs_data": [],
            "witnesses": []
        }
    ],
    "id": "getblock.io"
});

const config = {
    method: 'post',
    url: 'https://go.getblock.io/<ACCESS-TOKEN>/',
    headers: {
        'Content-Type': 'application/json'
    },
    data: data
};

axios(config)
    .then(response => console.log(JSON.stringify(response.data, null, 2)))
    .catch(error => console.log(error));

Response Example

Response Parameters

Field
Type
Description

result.cycles

Uint64

Estimated CKB-VM cycles consumed (hex)

Use Cases

  • Wallet pre-flight checks before broadcasting a transaction

  • Computing transaction fees based on cycle count

  • Detecting transactions that would exceed cycle limits

Error Handling

Status Code
Error Message
Cause

403

Forbidden

Missing or invalid <ACCESS-TOKEN>

-32602

Invalid params

Request parameters are missing or malformed

-32601

Method not found

Method does not exist or is not enabled on this node

-32603

Internal error

Server-side error while processing the request

429

Too Many Requests

Rate limit exceeded for your plan

-32000

Transaction failed verification

Scripts in the transaction would revert; estimation cannot complete

SDK Integration

Was this helpful?