Transaction history (for address or by hash).
Send a POST request to the node CLI JSON-RPC endpoint (for example POST http://rpc.cellframe.net/). Set method to tx_history.
Two request formats are supported (see index for full rules):
params array with one semicolon-separated CLI string.params; use subcommand and arguments. Argument keys must not include a leading dash. Use string values and "" for bare flags; JSON booleans and numbers in arguments are rejected.Response field names depend on version: version 2 uses addr and total_tx_count; version 1 uses address and "Number of transaction" in count responses.
{
"method": "tx_history",
"params": ["tx_history;-addr;Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me;-net;Backbone;-chain;main;-limit;2;-head"],
"id": 1,
"version": 1
}
{
"method": "tx_history",
"subcommand": "",
"arguments": {
"addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me",
"net": "Backbone",
"chain": "main",
"limit": "2",
"head": ""
},
"id": 1,
"version": 2
}
For -count, either set subcommand to "-count" or leave subcommand empty and pass "count": "" in arguments (both forms are equivalent).
tx_history {-addr <addr> | {-w <wallet_name>} -net <net_name>} [-chain <chain_name>] [-limit <n>] [-offset <n>] [-head] [-brief] [-srv <service>] [-act <action>] [-H hex|base58] [-h]
tx_history -all -net <net_name> [-chain <chain_name>] [-limit <n>] [-offset <n>] [-head] [-brief] [-srv <service>] [-act <action>] [-H hex|base58] [-h]
tx_history -tx <tx_hash> -net <net_name> [-chain <chain_name>] [-H hex|base58]
tx_history -count -net <net_name> [-h]
| Option | Description |
|---|---|
-addr <addr> | Wallet address (base58). Network can be inferred from the address if -net is omitted. |
-w <wallet_name> | Local wallet name on the node; address is resolved for the given network. Requires -net. |
-net <net_name> | Chain network name (required for -all, -count, -tx, and -w; optional when -addr alone determines the network). |
-chain <chain_name> | Chain name. Defaults to the network's default TX chain (typically main on Backbone/KelVPN). |
-tx <tx_hash> | Look up a single transaction by hash (hex or base58). Incompatible with -addr. |
-all | List all transactions in the chain (paginated). |
-count | Return total transaction count for the network's default TX chain. |
-limit <n> | Maximum records to return (default: 1000). |
-offset <n> | Skip first N records (default: 0). |
-head | Iterate from the head (newest) instead of the tail. |
-brief | Omit detailed transaction body fields in list responses. |
-H hex|base58 | Hash output format (default: hex). |
-srv <service> | Filter by service name (address/all history). |
-act <action> | Filter by action type (address/all history). |
-h | Human-readable table output (CLI only; JSON-RPC returns raw JSON). |
tx_history is a JSON-response command. Successful and failed calls both return HTTP 200 with this envelope:
{
"type": 2,
"result": [ ... ],
"id": 1,
"version": 2
}
type — 2 (TYPE_RESPONSE_JSON)result — JSON array of result objects (or error objects)id — echoes the request idversion — RPC protocol version (1 or 2)There is no top-level error field. Command errors appear inside result as objects with an errors array: { "code": <int>, "message": "<text>" }.
Version 1:
{
"method": "tx_history",
"params": ["tx_history;-addr;Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me;-net;Backbone;-chain;main;-limit;2;-head"],
"id": 1,
"version": 1
}
Version 2:
{
"method": "tx_history",
"subcommand": "",
"arguments": {
"addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me",
"net": "Backbone",
"chain": "main",
"limit": "2",
"head": ""
},
"id": 1,
"version": 2
}
Version 1:
{
"method": "tx_history",
"params": ["tx_history;-w;my_wallet;-net;Backbone;-limit;10"],
"id": 2,
"version": 1
}
Version 2:
{
"method": "tx_history",
"subcommand": "",
"arguments": {"w": "my_wallet", "net": "Backbone", "limit": "10"},
"id": 2,
"version": 2
}
-w requires the wallet file to exist on the RPC node. Public nodes such as rpc.cellframe.net do not have user wallets.
Version 1:
{
"method": "tx_history",
"params": ["tx_history;-tx;0x43EC9084DDD7CA81F83CB36E6963D39E1148ACE28C654CC202198A06B232CE5C;-net;Backbone;-chain;main"],
"id": 3,
"version": 1
}
Version 2:
{
"method": "tx_history",
"subcommand": "",
"arguments": {
"tx": "0x43EC9084DDD7CA81F83CB36E6963D39E1148ACE28C654CC202198A06B232CE5C",
"net": "Backbone",
"chain": "main"
},
"id": 3,
"version": 2
}
Version 1:
{
"method": "tx_history",
"params": ["tx_history;-tx;0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9;-net;Backbone;-chain;main"],
"id": 4,
"version": 1
}
Version 2:
{
"method": "tx_history",
"subcommand": "",
"arguments": {
"tx": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
"net": "Backbone",
"chain": "main"
},
"id": 4,
"version": 2
}
Version 1:
{
"method": "tx_history",
"params": ["tx_history;-all;-net;Backbone;-chain;main;-limit;2;-head"],
"id": 5,
"version": 1
}
Version 2:
{
"method": "tx_history",
"subcommand": "",
"arguments": {"all": "", "net": "Backbone", "chain": "main", "limit": "2", "head": ""},
"id": 5,
"version": 2
}
Version 1 (response field "Number of transaction"):
{
"method": "tx_history",
"params": ["tx_history;-count;-net;Backbone"],
"id": 6,
"version": 1
}
Version 2 — form A (subcommand "-count"; response field total_tx_count):
{
"method": "tx_history",
"subcommand": "-count",
"arguments": {"net": "Backbone"},
"id": 6,
"version": 2
}
Version 2 — form B (count flag in arguments):
{
"method": "tx_history",
"subcommand": "",
"arguments": {"count": "", "net": "Backbone"},
"id": 6,
"version": 2
}
Two elements: transaction list array, then summary object.
{
"type": 2,
"result": [
[
{ "addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me" },
{ "limit": 2 },
{
"status": "ACCEPTED",
"hash": "0x43EC9084DDD7CA81F83CB36E6963D39E1148ACE28C654CC202198A06B232CE5C",
"atom_hash": "0x9FFF6C8686A93DB4616158E1E21F697380B160282312508D8085495C627F24B1",
"ret_code": 0,
"ret_code_str": "No error",
"action": "take",
"service": "wallet_shared",
"batching": "false",
"tx_created": "Tue, 07 Jul 2026 23:50:32 +0000",
"data": [
{
"tx_type": "recv",
"recv_coins": "524.974432117843343041",
"recv_datoshi": "524974432117843343041",
"token": "CELL",
"source_address": "Rj7J7MiX2bWy8sNyadg47jAEJQuj6AF3drDg7o6Gc4zetrzkUNceEyYbSR3FDrx2PbPJn28u6wPZkS7xX2U9viSx2V8uNnio83nHLVJ7"
}
]
}
],
{
"network": "Backbone",
"chain": "main",
"tx_accept_count": 2,
"tx_reject_count": 0,
"tx_count": 2,
"total_tx_count": 7
}
],
"id": 1,
"version": 2
}
The first element of the inner array is the address header. A { "limit": N } object records pagination. Each transaction includes a data array with per-address send/recv breakdown when applicable.
{
"type": 2,
"result": [
[
{ "limit": 2 },
{
"status": "ACCEPTED",
"hash": "0xECA1E788C30E76774AEB976399397CDECE80EB758C907884CF13156C7244ECEB",
"ret_code": 0,
"ret_code_str": "No error",
"action": "UNKNOWN",
"batching": "false",
"first_transaction": "emit",
"tx_created": "Thu, 07 Apr 2022 18:40:26 +0000",
"token_ticker": "CELL",
"tx_num": 1,
"items": [ { "item_type": "in_ems", "ticker": "CELL" } ]
}
],
{
"network": "Backbone",
"chain": "main",
"tx_sum": 2,
"accepted_tx": 2,
"rejected_tx": 0
}
],
"id": 5,
"version": 2
}
{
"type": 2,
"result": [
{
"status": "ACCEPTED",
"hash": "0x43EC9084DDD7CA81F83CB36E6963D39E1148ACE28C654CC202198A06B232CE5C",
"atom_hash": "0x9FFF6C8686A93DB4616158E1E21F697380B160282312508D8085495C627F24B1",
"confirmations": 2959,
"ret_code": 0,
"ret_code_str": "No error",
"action": "take",
"batching": "false",
"first_transaction": "empty",
"tx_created": "Tue, 07 Jul 2026 23:50:32 +0000",
"token_ticker": "CELL",
"items": [
{ "item_type": "in", "tx_prev_hash": "0x...", "tx_out_prev_idx": 4 },
{ "item_type": "out_std", "addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me", "token": "CELL", "value": "524974432117843343041" },
{ "item_type": "sign", "sig_type": "sig_dil", "sender_addr": "Rj7J7MiX2bWy8sNyadg47jAEJQuj6AF3drDg7o6Gc4zetrzkUNceEyYbSR3FDrx2PbPJn28u6wPZkS7xX2U9viSx2V8uNnio83nHLVJ7" }
]
}
],
"id": 3,
"version": 2
}
{
"type": 2,
"result": [
{
"status": "pending",
"source": "mempool",
"hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
"ret_code": 0,
"ret_code_str": "pending",
"action": "UNKNOWN",
"comment": "Transaction is found in mempool and has not been accepted yet"
}
],
"id": 4,
"version": 2
}
Version 2:
{
"type": 2,
"result": [
{ "total_tx_count": 1074658 }
],
"id": 6,
"version": 2
}
Version 1:
{
"type": 2,
"result": [
{ "Number of transaction": 1074658 }
],
"id": 6,
"version": 1
}
Missing required mode parameter:
{
"type": 2,
"result": [
{
"errors": [
{ "code": 2, "message": "tx_history requires parameter '-addr' or '-w' or '-tx'" }
]
}
],
"id": 1,
"version": 2
}
Transaction not found:
{
"type": 2,
"result": [
{
"errors": [
{ "code": -1, "message": "TX hash 0x0000000000000000000000000000000000000000000000000000000000000001 not found in chains and mempool" },
{ "code": 12, "message": "something went wrong in tx_history" }
]
}
],
"id": 1,
"version": 2
}
When -h is passed, the CLI client (s_print_for_tx_history_all) formats the JSON response as a table (hash, status, action, service, time). For address/wallet history it prints the address header, a numbered table, limit/offset, and summary counts. For -count it prints Total transactions count: N. JSON-RPC callers receive structured JSON regardless.