Description of command parameters.
Without a command argument, returns a plain-text list of all registered CLI commands with short descriptions. With a command name, returns detailed documentation for that command.
A synonym ? is registered with the same handler in the CLI, but on public nodes such as
rpc.cellframe.net the ? method is not in allowed_cmd — use
method "help" instead.
help [<command>]
The help command is not in json_commands(), so successful responses use
type 0 (TYPE_RESPONSE_STRING) and result is a plain string.
Two request formats are supported. If params is present, the version 2 path is ignored.
params string
Put the full command line in params[0]. Arguments are separated by semicolons (;)
— the same delimiter the CLI server uses in dap_strsplit(str_cmd, ";", -1).
Spaces are not separators. For example, "help wallet" is treated as a single
token and returns the command list, not wallet help.
{"method":"help","params":[""],"id":1,"version":1}
Equivalent forms: params ["help"], omitted params, or params [].
{"method":"help","params":["help;wallet"],"id":2,"version":1}
{"method":"help","params":["help;net"],"id":3,"version":1}
The first token is the command name (help); the second is the target command.
subcommand + arguments
Omit params. Use subcommand for the target command name only — do not
repeat help in the subcommand (the server prepends method automatically).
{"method":"help","id":1,"version":2}
Omit subcommand entirely. Do not pass "subcommand":"" — that produces an empty command token and returns command "" not recognized.
{"method":"help","subcommand":"wallet","id":2,"version":2}
{"method":"help","subcommand":"net","id":3,"version":2}
There are no flags for help; arguments is unused.
Request fields:
method — "help" (required on public nodes; "?" is restricted)params — version 1: array; first element is the semicolon-separated command stringsubcommand — version 2: target command name, or omit for the full command listid — request identifier (required)version — RPC protocol version: 1 or 2 (optional)The HTTP body uses the Cellframe RPC envelope: type, result, id, version.
{
"type": 0,
"result": "Available commands:\n\nsrv_stake:\t\t\tDelegated stake service commands\ndag:\t\t\tDAG commands\n...\nwallet:\t\t\tWallet operations\n...\n",
"id": 1,
"version": 1
}
Each line has the form name:\t\t\tdescription. The list includes every command registered on the node, including commands that may be restricted for remote callers. Verified with both version: 1 and version: 2 on rpc.cellframe.net (2026-07-14).
{
"type": 0,
"result": "Wallet operations:\nwallet list\nwallet new -w <wallet_name> ...\n",
"id": 2,
"version": 2
}
The result text is built from the command’s doc and doc_ex fields (doc line, then doc_ex body).
{
"type": 0,
"result": "command \"foo\" not recognized",
"id": 6,
"version": 1
}
The handler returns exit code -1; the error is still delivered as a plain string in result.
{
"type": 0,
"result": "command \"\" not recognized",
"id": 1,
"version": 2
}
Caused by "subcommand":"". Omit the field instead.
Calling a method not listed in allowed_cmd from a non-local client returns type 2:
{
"type": 2,
"result": [
{
"errors": [
{
"code": -1,
"message": "Command \"?\" is restricted"
}
]
}
],
"id": 5,
"version": 1
}
allowed_cmd
The general help list shows all registered commands. On rpc.cellframe.net (verified 2026-07-14),
only the following method names are callable remotely; all others return
Command "<name>" is restricted even though they appear in the help list:
version, help, wallet, net, block, ledger, mempool, mempool_add, srv_xchange, srv_dex, stake_lock, net_srv, tx_create_json, token, tx_history, pollsrv_stake, dag, dag_poa, esbocs, stake_ext, global_db, node, ?, token_update, token_decl, token_update_sign, token_decl_sign, token_emit, token_emit_sign, chain_ca_pub, tx_create, tx_cond, tx_verify, tx_sign, print_log, stats, gdb_export, gdb_import, remove, decree, exec_cmd, find, policy, exit, vpn_clientHelp for restricted commands (e.g. version 1 params ["help;exit"] or version 2 subcommand "exit") still works because help itself is allowed; only invoking those commands remotely is blocked.