Skip to main content

Simulator RPC Reference

Intro

The simulator gives you complete control of a private Chia blockchain, including the ability to advance and revert blocks as needed.

This page includes a comprehensive list of Chia's Remote Procedure Calls for using the simulator.

For more info, see the following:


Note about Windows command escaping

This document will use Linux/MacOS RPC syntax. When running rpc commands on Windows, you'll need to escape all quotes with backslashes.

For example, here is a typical RPC command on Linux and MacOS:

chia rpc wallet create_new_wallet '{"wallet_type": "nft_wallet"}'

To run the same command on Windows, you need to escape the quotes, so it looks like this (the braces have been removed to support the formatting for this page. You still need to use them in your actual commands.):

chia rpc wallet create_new_wallet '{\"wallet_type\": \"nft_wallet\"}'

Reference

farm_block

Functionality: Farm one or more blocks. Can ensure farming a transaction block if required

Usage: chia rpc full_node [OPTIONS] farm_block [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters:

ParameterRequiredDescription
addressTrueThe address to use to farm the block
guarantee_tx_blockFalseSet to True to farm a transaction block (ie, farm new blocks until a tx block is farmed); set to False to farm the next block, which could also be a transaction block, but is not guaranteed (Default: False)
blocksFalseNumber of blocks to farm. If guarantee_tx_block is True, then each block will be a transaction block (Default: 1)
Example 1

Farm a single block:

chia rpc full_node farm_block '{"address": "txch1v3wjjapxvepyadvr2wgp7272md84lv6kmaxyxm4lq5le2jcc90zqkxhgv6"}'

Response:

{
"new_peak_height": 21,
"success": true
}
Example 2

Farm three transaction blocks:

chia rpc full_node farm_block '{"address": "txch1v3wjjapxvepyadvr2wgp7272md84lv6kmaxyxm4lq5le2jcc90zqkxhgv6", "guarantee_tx_block": "True", "blocks": 3}'

Response:

{
"new_peak_height": 24,
"success": true
}

get_all_blocks

Functionality: Return a list of all blocks in the blockhain

Usage: chia rpc full_node [OPTIONS] get_all_blocks [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters: None

Example
chia rpc full_node get_all_blocks

Response (abbreviated):

{
"blocks": [
{
"challenge_chain_ip_proof": {
"normalized_to_identity": false,
"witness": "0x04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"witness_type": 0
},
"challenge_chain_sp_proof": {
"normalized_to_identity": false,
"witness": "0x02004c00010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"witness_type": 0
},
"finished_sub_slots":
{
"challenge_chain": {
"challenge_chain_end_of_slot_vdf": {
"challenge": "0xeb8c4d20b322be8d9fddbf9412016bdffe9a2901d7edb0e364e94266d0e095f7",
"number_of_iterations": 1024,
"output": {
"data": "0x00006100050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"infused_challenge_chain_sub_slot_hash": null,
"new_difficulty": null,
"new_sub_slot_iters": null,
"subepoch_summary_hash": null
},
"infused_challenge_chain": null,
"proofs": {
"challenge_chain_slot_proof": {
"normalized_to_identity": false,
"witness": "0x00003d00020100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"witness_type": 0
},
"infused_challenge_chain_slot_proof": null,
"reward_chain_slot_proof": {
"normalized_to_identity": false,
"witness": "0x00003d00020100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"witness_type": 0
}
},
"reward_chain": {
"challenge_chain_sub_slot_hash": "0xe44e06ed13eb06c7c2f0218945b7c62e785d6482c27ebbe69aab499ae199258c",
"deficit": 12,
"end_of_slot_vdf": {
"challenge": "0xeb8c4d20b322be8d9fddbf9412016bdffe9a2901d7edb0e364e94266d0e095f7",
"number_of_iterations": 1024,
"output": {
"data": "0x00006100050100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
},
"infused_challenge_chain_sub_slot_hash": null
}
},

...
...

"reward_claims_incorporated": [
{
"amount": 1750000000000,
"parent_coin_info": "0xeb8c4d20b322be8d9fddbf9412016bdf00000000000000000000000000000011",
"puzzle_hash": "0x5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740"
},
{
"amount": 250000000000,
"parent_coin_info": "0xfe9a2901d7edb0e364e94266d0e095f700000000000000000000000000000011",
"puzzle_hash": "0x5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740"
}
]
}
}
],
"success": true
}

get_all_coins

Functionality: Get all coins

Usage: chia rpc full_node [OPTIONS] get_all_coins [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters:

ParameterRequiredDescription
include_spent_coinsFalseBoolean, if True then spent coins will be included in the result (Default: False)
Example
chia rpc full_node get_all_coins

Response (abbreviated):

{
"coin_records": [
{
"coin": {
"amount": 1750000000000,
"parent_coin_info": "0xeb8c4d20b322be8d9fddbf9412016bdf00000000000000000000000000000011",
"puzzle_hash": "0x5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740"
},
"coinbase": true,
"confirmed_block_index": 18,
"spent_block_index": 0,
"timestamp": 1664294613
},
{
"coin": {
"amount": 1750000000000,
"parent_coin_info": "0xeb8c4d20b322be8d9fddbf9412016bdf00000000000000000000000000000007",
"puzzle_hash": "0x5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740"
},
"coinbase": true,
"confirmed_block_index": 9,
"spent_block_index": 0,
"timestamp": 1664294445
},

...
...
],
"success": true
}

get_all_puzzle_hashes

Functionality: Get all puzzle hashes used in this blockchain

Usage: chia rpc full_node [OPTIONS] get_all_puzzle_hashes [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters: None

Example
chia rpc full_node get_all_puzzle_hashes

Response:

{
"puzzle_hashes": {
"000000000000000000000000000000000000000000000000000000000000dead": [
6000000000000, 6
],
"5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740": [
21000034000000000000, 36
],
"645d29742666424eb58353901f2bcadb4f5fb356df4c436ebf053f954b182bc4": [
6000000000000, 6
]
},
"success": true
}

get_auto_farming

Functionality: Returns a Boolean to indicate whether auto farming is enabled

Usage: chia rpc full_node [OPTIONS] get_auto_farming [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters: None

Example
chia rpc full_node get_auto_farming

Response:

{
"auto_farm_enabled": true,
"success": true
}

get_farming_ph

Functionality: Get the puzzle hash used by the farmer

Usage: chia rpc full_node [OPTIONS] get_farming_ph [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters: None

Example
chia rpc full_node get_farming_ph

Response:

{
"puzzle_hash": "5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740",
"success": true
}

You can then use cdv encode to convert this puzzle hash to an address:

cdv encode --prefix txch 5fb3e0ccc23760a7f917a81e7872cc921f9ddbc86582dfb4f64eee66fad5e740

Response:

txch1t7e7pnxzxas207gh4q08sukvjg0emk7gvkpdld8kfmhxd7k4uaqq9x4yd2

reorg_blocks

Functionality: Initiate a reorg or a customizable number of blocks

Usage: chia rpc full_node [OPTIONS] reorg_blocks [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters:

ParameterRequiredDescription
num_of_blocks_to_revFalseThe number of blocks to go back (Default: 1)
num_of_new_blocksFalseThe number of blocks to add (Default: 1)
revert_all_blocksFalseBoolean, set to True to fork all blocks (Default: False)
random_seedFalseString, used to randomize the seed, which will differentiate reorgs
Example 1

Starting from block 11, we'll revert 3 blocks and create 5 new blocks:

chia rpc full_node reorg_blocks '{"num_of_blocks_to_rev": 3, "num_of_new_blocks": 5}'

Response:

{
"new_peak_height": 16,
"success": true
}
Example 2

Reorg with a random seed:

chia rpc full_node reorg_blocks '{"random_seed": "aaaaaa"}'

Response:

{
"new_peak_height": 18,
"success": true
}

revert_blocks

Functionality: Revert a customizable number of blocks

Usage: chia rpc full_node [OPTIONS] revert_blocks [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters:

ParameterRequiredDescription
num_of_blocksFalseThe number of blocks to revert (Default: 1)
delete_all_blocksFalseBoolean, set to True to revert all blocks (Default: False)
Example 1

Revert a single block:

chia rpc full_node revert_blocks

Response:

{
"new_peak_height": 23,
"success": true
}
Example 2

Delete all blocks -- this will reset the blockchain:

chia rpc full_node revert_blocks '{"delete_all_blocks": "True"}'

Response:

{
"new_peak_height": 1,
"success": true
}

set_auto_farming

Functionality: Set whether to auto farm (Boolean)

Usage: chia rpc full_node [OPTIONS] set_auto_farming [REQUEST]

Options:

Short CommandLong CommandTypeRequiredDescription
-j--json-fileTEXTFalseInstead of REQUEST, provide a json file containing the request data
-h--helpNoneFalseShow a help message and exit

Request Parameters:

ParameterRequiredDescription
auto_farmTrueBoolean to enable or disable auto farming
Example 1

Enable auto farming:

chia rpc full_node set_auto_farming '{"auto_farm": true}'

Response:

{
"auto_farm_enabled": true,
"success": true
}
Example 2

Disable auto farming:

chia rpc full_node set_auto_farming '{"auto_farm": false}'

Response:

{
"auto_farm_enabled": false,
"success": true
}