mempool

Command for working with mempool.

JSON-RPC

Send a POST request to the node CLI JSON-RPC endpoint (for example POST http://rpc.cellframe.net/). Set method to mempool. Subcommands are the first token after mempool (list, count, check, …).

Two request formats are supported (see index for full rules):

Response field names depend on version: version 2 uses datum_hash / datum_type; version 1 uses legacy hash / type.

Version 1 — params string

{
  "method": "mempool",
  "params": ["mempool;list;-net;Backbone;-chain;main;-limit;2"],
  "id": 1,
  "version": 1
}

Version 2 — subcommand + arguments

{
  "method": "mempool",
  "subcommand": "list",
  "arguments": {"net": "Backbone", "chain": "main", "limit": "2", "brief": ""},
  "id": 1,
  "version": 2
}

Both requests above are equivalent to CLI mempool list -net Backbone -chain main -limit 2 -brief.

Method aliases

These aliases map subcommands to separate RPC method names. On public nodes such as rpc.cellframe.net only the base mempool method is allowed; alias methods return Command "mempool" is restricted.

Subcommands

list

mempool list -net <net_name> [-chain <chain_name>] [-addr <addr>] [-brief] [-limit <n>] [-offset <n>] [-H hex|base58] [-h]

List mempool entries for the selected network. Without -chain, all chains in the network are scanned. With -addr, only datums related to the address are returned. -brief returns hash, type, and timestamp only (mutually exclusive with -addr).

count

mempool count -net <net_name> [-chain <chain_name>]

Return the number of mempool elements per chain.

check

mempool check -net <net_name> [-chain <chain_name>] -datum <datum_hash> [-H hex|base58]

Check whether a datum is present in the mempool or already in a chain.

dump

mempool dump -net <net_name> [-chain <chain_name>] -datum <datum_hash> [-tx_to_json] [-H hex|base58]

Output information about a datum in the mempool. With -tx_to_json, transaction datums are returned in the JSON format used by tx_create_json (items array with type fields).

proc

mempool proc -net <net_name> [-chain <chain_name>] -datum <datum_hash>

Process a mempool entry with the specified hash.

CAUTION: This command processes the transaction with any commission. The minimum_comission parameter is not taken into account.

Requires master node role or higher. Not available on public read-only RPC nodes.

proc_all

mempool proc_all -net <net_name> -chain <chain_name>

Process all mempool entries for the selected chain.

delete

mempool delete -net <net_name> [-chain <chain_name>] -datum <datum_hash>

Delete a datum with the given hash from the mempool.

add_ca

mempool add_ca -net <net_name> [-chain <chain_name>] -ca_name <pub_cert_name>

Add a public certificate into the mempool to prepare its way to chains. Requires a local certificate on the node.

Common parameters

OptionDescription
-net <net_name>Chain network (required for all subcommands).
-chain <chain_name>Limit operation to one chain; omit to scan all chains in the network.
-datum <hash>Datum hash (hex with 0x prefix or base58).
-addr <addr>Filter list results to datums related to this address.
-briefFast list mode: hash, type, and timestamp only. Mutually exclusive with -addr.
-limit <n>Pagination limit (default: 1000).
-offset <n>Pagination offset (default: 0).
-H hex|base58Hash output format (default: hex).
-hHuman-readable table output (CLI client only; JSON-RPC always returns JSON).

JSON-RPC response envelope

mempool is a JSON-response command. Successful and failed calls both return HTTP 200 with this envelope:

{
  "type": 2,
  "result": [ ... ],
  "id": 1,
  "version": 2
}

There is no top-level error field. Command errors appear inside result as objects with an errors array. Add -verbose anywhere in the params string to append a ret_code object to the result array.

Examples (verified on rpc.cellframe.net)

Count

Version 1:

{
  "method": "mempool",
  "params": ["mempool;count;-net;Backbone"],
  "id": 1,
  "version": 1
}

Version 2:

{
  "method": "mempool",
  "subcommand": "count",
  "arguments": {"net": "Backbone"},
  "id": 1,
  "version": 2
}

List (Backbone, main chain, brief, limit 2)

Version 1:

{
  "method": "mempool",
  "params": ["mempool;list;-net;Backbone;-chain;main;-brief;-limit;2"],
  "id": 2,
  "version": 1
}

Version 2:

{
  "method": "mempool",
  "subcommand": "list",
  "arguments": {"net": "Backbone", "chain": "main", "limit": "2", "brief": ""},
  "id": 2,
  "version": 2
}

List with address filter

Version 1:

{
  "method": "mempool",
  "params": ["mempool;list;-net;Backbone;-chain;main;-addr;Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me;-limit;1"],
  "id": 3,
  "version": 1
}

Version 2:

{
  "method": "mempool",
  "subcommand": "list",
  "arguments": {
    "net": "Backbone",
    "chain": "main",
    "addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me",
    "limit": "1"
  },
  "id": 3,
  "version": 2
}

Check datum in mempool

Version 1:

{
  "method": "mempool",
  "params": ["mempool;check;-net;Backbone;-datum;0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9"],
  "id": 4,
  "version": 1
}

Version 2:

{
  "method": "mempool",
  "subcommand": "check",
  "arguments": {
    "net": "Backbone",
    "datum": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9"
  },
  "id": 4,
  "version": 2
}

Dump with tx_to_json

Version 1:

{
  "method": "mempool",
  "params": ["mempool;dump;-net;Backbone;-chain;main;-datum;0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9;-tx_to_json"],
  "id": 5,
  "version": 1
}

Version 2:

{
  "method": "mempool",
  "subcommand": "dump",
  "arguments": {
    "net": "Backbone",
    "chain": "main",
    "datum": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
    "tx_to_json": ""
  },
  "id": 5,
  "version": 2
}

Typical responses

list (full mode)

{
  "type": 2,
  "result": [
    {
      "net": "Backbone",
      "chains": [
        {
          "name": "main",
          "removed": 0,
          "datums": [
            {
              "datum_type": "DATUM_TX",
              "datum_hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
              "created": {
                "time_stamp": 1783947227,
                "str": "Mon, 13 Jul 2026 12:53:47 +0000"
              },
              "main_ticker": "",
              "ledger_rc": "No enough valid signatures in datum",
              "service": "wallet_shared",
              "action": "take",
              "batching": "true",
              "from": "Rj7J7MiX2bWy8sNyadg47jAEJQuj6AF3drDg7o6Gc4zetrzkUNceEyYbSR3FDrx2PbPJn28u6wPZkS7xX2U9viSx2V8uNnio83nHLVJ7",
              "to": [
                {
                  "money": {
                    "value": "526683128422439695515",
                    "coins": "526.683128422439695515",
                    "token": "CELL"
                  },
                  "addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me"
                }
              ],
              "fee": [
                {
                  "value": "62971038373205741",
                  "coins": "0.062971038373205741",
                  "token": "CELL"
                }
              ],
              "change": [ { "money": { "value": "...", "coins": "...", "token": "CELL" } } ]
            }
          ],
          "pages": [ { "limit": 1 } ],
          "total": "Backbone.main: 6"
        }
      ]
    }
  ],
  "id": 1,
  "version": 2
}

When no chain is specified, all chains are returned (for example zerochain and main). Version 1 uses hash and type instead of datum_hash and datum_type.

list (-brief)

{
  "type": 2,
  "result": [
    {
      "net": "Backbone",
      "chains": [
        {
          "name": "main",
          "removed": 0,
          "datums": [
            {
              "datum_type": "DATUM_TX",
              "datum_hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
              "created": {
                "time_stamp": 1783947227,
                "str": "Mon, 13 Jul 2026 12:53:47 +0000"
              }
            }
          ],
          "pages": [ { "limit": 2 } ],
          "total": "Backbone.main: 6"
        }
      ]
    }
  ],
  "id": 3,
  "version": 2
}

count

{
  "type": 2,
  "result": [
    {
      "net": "Backbone",
      "chains": [
        { "name": "zerochain", "count": 0 },
        { "name": "main", "count": 6 }
      ]
    }
  ],
  "id": 4,
  "version": 2
}

check — found in mempool

{
  "type": 2,
  "result": [
    {
      "datum_hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
      "net": "Backbone",
      "chain": "main",
      "find": true,
      "source": "mempool",
      "datum": {
        "datum": {
          "datum_type": "transaction",
          "hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
          "items": [ { "item_type": "in", "tx_prev_hash": "0x...", "tx_out_prev_idx": 4 } ]
        }
      }
    }
  ],
  "id": 5,
  "version": 2
}

check — not found

{
  "type": 2,
  "result": [
    {
      "datum_hash": "0x0000000000000000000000000000000000000000000000000000000000000001",
      "net": "Backbone",
      "chain": null,
      "find": false
    }
  ],
  "id": 5,
  "version": 2
}

dump (-tx_to_json)

{
  "type": 2,
  "result": [
    {
      "datum_hash": "0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9",
      "ts_created": 1783947227,
      "datum_type": "tx",
      "items": [
        { "type": "in", "prev_hash": "0xC7ECF43411E24509C240C6FC2003227AB930183719291555F658744C1FE46FF8", "out_prev_idx": 4 },
        { "type": "out_std", "addr": "Rj7J7MiX2bWy8sNyZ43aVJB3RACsGwXbLrabvgAVEMr3vBVoqJy85nKTE5ghwytbymAbQCiLV1VparMcyKetuLx6TUhhbsSVN6zTY1me", "token": "CELL", "value": "526683128422439695515" }
      ]
    }
  ],
  "id": 6,
  "version": 2
}

Without -tx_to_json, dump returns a nested datum object with item_type fields (serialized transaction view).

Errors

Missing -net:

{
  "type": 2,
  "result": [
    {
      "errors": [
        { "code": 102, "message": "mempool requires parameter '-net'" },
        { "code": 102, "message": "Request parsing error (code: 102)" }
      ]
    }
  ],
  "id": 1,
  "version": 2
}

Invalid subcommand (plain string in result array):

{
  "type": 2,
  "result": [
    "Invalid sub command specified. Sub command foo is not supported."
  ],
  "id": 1,
  "version": 2
}

CLI table output (-h)

When -h is passed with mempool list, the CLI client (s_print_for_mempool_list) formats the JSON response as a table:

Removed 0 records from the main chain mempool in Backbone network.
________________________________________________________________________________________________________________
  Hash                                                         | Datum type             | Time create
________________________________________________________________________________________________________________
  0xFEEDA89E98CE31F90DF1907F088B630FCCC2E940D1AF30BA1865A4736B37DFF9 | DATUM_TX               | Mon, 13 Jul 2026 12:53:47 +0000 |
_____________________________________________________________________|________________________|_________________________________|

  total: Backbone.main: 6

Without -h, the CLI prints raw JSON. JSON-RPC always returns structured JSON.

The table reader accepts both v1 (hash, type) and v2 (datum_hash, datum_type) response formats. The created object may contain str (RFC822 string) or time_stamp (numeric).