token

Token info — list all tokens with declaration/update history, or inspect a single token ticker.

JSON-RPC

Method name: token. Supports API version 1 (params string) and version 2 (subcommand + arguments).

Version 1 — semicolon params

{
  "jsonrpc": "2.0",
  "method": "token",
  "params": ["token;list;-net;Backbone"],
  "id": 1,
  "version": 1
}

Arguments are separated by ; only. Example: token;info;-net;Backbone;-name;CELL.

Version 2 — subcommand + arguments

{
  "method": "token",
  "subcommand": "list",
  "arguments": {"net": "Backbone"},
  "id": 1,
  "version": 2
}

{
  "method": "token",
  "subcommand": "info",
  "arguments": {"net": "Backbone", "name": "CELL", "history_limit": "10"},
  "id": 2,
  "version": 2
}

Public node note: On rpc.cellframe.net (Jul 2026), token;list and token;info (both v1 and v2) consistently close the HTTP connection without a response body after ~15 s (likely payload size / server timeout). Use ledger;list;coins for token tickers and supply summary on the public node:

{"method":"ledger","subcommand":"list;coins","arguments":{"net":"Backbone","limit":"20"},"id":3,"version":2}

Full declaration/update history requires a local node or direct CLI access.

Global options

Optionv2 arguments keyDescription
-net <net_name>netNetwork name (required).
-name <token_ticker>nameToken ticker (required for info).
-fullfull (empty string)Local CLI: show full declaration hash in table; no effect on JSON-RPC body.
-history_limit <N>history_limitUTXO blocklist history items per blocked UTXO in current state (default 10; 0 = all). Passed via dap_ledger_token_info_by_name.
-H hex|base58HHash format in declaration/update datum dumps (default hex).
-hh (empty string)Local CLI table output for list (see below).

Subcommands

Subcommandv1 paramsv2 subcommandPublic RPC
listtoken;list;-net;<net>;[-full][;-h]"list"connection drop on rpc.cellframe.net (large response)
infotoken;info;-net;<net>;-name;<ticker>;[-history_limit;N]"info"connection drop on rpc.cellframe.net (large response)
txDeprecated — returns error.n/a

Example requests

Version 1

{"jsonrpc":"2.0","method":"token","params":["token;list;-net;Backbone"],"id":1,"version":1}

{"jsonrpc":"2.0","method":"token","params":["token;info;-net;Backbone;-name;CELL;-history_limit;10"],"id":2,"version":1}

Version 2

{"method":"token","subcommand":"list","arguments":{"net":"Backbone"},"id":1,"version":2}

{"method":"token","subcommand":"info","arguments":{"net":"Backbone","name":"CELL","history_limit":"10"},"id":2,"version":2}

Discover tickers on the public node via ledger list coins instead:

{"jsonrpc":"2.0","method":"ledger","params":["ledger;list;coins;-net;Backbone;-limit;20"],"id":3,"version":1}

{"method":"ledger","subcommand":["list","coins"],"arguments":{"net":"Backbone","limit":"20"},"id":4,"version":2}

Response envelope

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

Errors: result[0].errors[] with codes such as -name missing or token not found.

Version 1 vs version 2 response field names

Token history is built in dap_chain_node_cli_cmd_tx.c; per-token live state reuses dap_ledger_token_info_by_name (same fields as ledger list coins).

ContextVersion 1Version 2
Top-level token arrayTOKENStokens
Total token count (list only)tokens (uint64)tokens (uint64)
Live ledger snapshotcurrent statecurrent_state
Token ticker in snapshot-->Token nametoken_name
Token typetypesubtype
Supply fieldsSupply current / Supply totalsupply_current / supply_total
Declaration status codeLedger return codeledger_ret_code
Emissions countTotal emissionstotal_emissions

Inside current state / current_state, field names follow the same v1/v2 mapping as ledger list coins.

Response structure (from implementation)

Both list and info call dap_db_net_history_token_list (dap_chain_node_cli_cmd_tx.c). result[0] is an object:

Each token entry contains:

list — expected shape (local node)

{
  "type": 2,
  "result": [
    {
      "TOKENS": [
        {
          "CELL": {
            "current state": {
              "-->Token name": "CELL",
              "type": "CF20",
              "Supply current": "0",
              "Supply total": "0",
              "Decimals": "18",
              "Auth signs valid": 4,
              "Auth signs total": 6,
              "flags": ["ALL_SENDER_ALLOWED"],
              "utxo_blocklist_count": 0,
              "Total emissions": 26898
            },
            "declarations": [
              {
                "status": "ACCEPTED",
                "Ledger return code": 0,
                "Datum": { "hash": "0x...", "type_id": "DATUM_TOKEN", "...": "..." }
              }
            ],
            "updates": []
          },
          "BUSD": { "...": "..." }
        }
      ],
      "tokens": 42
    }
  ],
  "id": 1,
  "version": 1
}

With version: 2, TOKENS becomes tokens (array), current state becomes current_state, and nested token fields use snake_case as in the mapping table above. TOKENS has one element per chain that contains token datums (e.g. zerochain on Backbone). Tickers are keys inside each chain object.

info — expected shape (local node)

Same object as list, but the token array contains only the requested ticker (or an error if not found).

{
  "result": [
    {
      "TOKENS": [
        {
          "CELL": {
            "current state": { "...": "..." },
            "declarations": [ "..." ],
            "updates": [ "..." ]
          }
        }
      ]
    }
  ]
}

current state / UTXO blocklist fields

When UTXO blocking is enabled, current state / current_state may include:

Local CLI -h vs JSON-RPC response

JSON-RPC always returns the JSON object above; -h does not change the HTTP response (same as block and ledger). Local CLI uses s_print_for_token_list to print an ASCII table for token list ... -h.

Contexttoken;list;...;-h output
JSON-RPCFull JSON (identical to omitting -h).
Local CLITable columns: Token Ticker, Type, Decimals, Current Signs, Declarations, Updates, Decl Status, Decl Hash, Total Supply, Current Supply; footer Total tokens: N.

With -full in local CLI, declaration hash column shows the full hash; otherwise last 10 characters.

Back to index