Network commands — list networks/chains, inspect status and fees, view links and statistics, manage sync state.
Verified against public RPC http://rpc.cellframe.net/ (networks: Backbone, KelVPN).
Method name: net. Response type is 2 (TYPE_RESPONSE_JSON).
Two request formats are supported. The response version echoes the request version and affects JSON field names in some subcommands (see v1 vs v2 field names).
params string{
"method": "net",
"params": ["net;-net;Backbone;get;status"],
"id": 1,
"version": 1
}
params is an array with one string. Every token (command name, subcommand, flag, value) is separated by ; — not spaces. Example: net;-net;Backbone;get;status.
subcommand + arguments{
"method": "net",
"subcommand": "get;status",
"arguments": {"net": "Backbone"},
"id": 1,
"version": 2
}
subcommand may also be a JSON array (one token per element):
{
"method": "net",
"subcommand": ["get", "status"],
"arguments": {"net": "Backbone"},
"id": 2,
"version": 2
}
Both forms above produce the same internal command: net;get;status;-net;Backbone.
Spaces in subcommand do not work. "get status" is treated as a single unknown token and returns error code 34. Use "get;status" or ["get","status"].
To use version 2 fields, omit params entirely — if params is present, subcommand / arguments are ignored.
arguments mappingEach key in arguments is prefixed with - automatically. Do not include a leading dash in keys.
arguments key | CLI flag | Used by |
|---|---|---|
net | -net | All subcommands except bare list |
mode | -mode | go, sync (update or all) |
H | -H | Hash output format (hex or base58) |
from, to, prev_day | -from, -to, -prev_day | stats tx |
cert, hash | -cert, -hash | ca add, ca del |
Argument values must be strings (or null/empty string for bare flags). JSON numbers and booleans are rejected.
| Option | Description |
|---|---|
-H hex|base58 | Hash output format (default: hex). |
-net <net_name> | Network selector (required for all subcommands except bare net list). |
-mode update|all | Sync mode for go / sync. Default: update (incremental). all rebuilds from zero. |
| Subcommand | Description | Public RPC |
|---|---|---|
list | List network names, or with chains list chain details. | tested |
get status|fee|id | Network status, fee info, or network ID. | tested |
stats tx | Transaction statistics for a time range. | tested |
link list | List active uplinks/downlinks. | tested |
link add|del|info | Link management — currently returns "Not implemented". | tested (stub) |
poa_certs list | List PoA certificate public-key hashes configured for the network. | tested |
ca list | List authority certificates from GDB ACL group. | error on public node (no ACL group) |
go online|offline|sync | Change network state / resync. | tested |
sync | Trigger network sync (returns state machine info). | tested |
link disconnect_all | Stop network and disconnect all links. | state-changing — not tested on public node |
ledger reload | Purge ledger cache and reload from chain files. | state-changing — not tested on public node |
ca add | Add CA cert by -cert or -hash. | requires local certificate — not testable on public node |
ca del -hash | Delete CA cert by hash. | requires local certificate / write access — not testable on public node |
go and sync are allowed on rpc.cellframe.net and change the public node’s network state. Use with care.
net;list net;list;chains # all networks with chain details net;list;chains;-net;<net_name> # chain names for one network net;-net;<net_name>;get;status net;-net;<net_name>;get;fee net;-net;<net_name>;get;id net;-net;<net_name>;stats;tx net;-net;<net_name>;stats;tx;-from;2026-07-01_00:00:00;-to;2026-07-02_00:00:00 net;-net;<net_name>;stats;tx;-prev_day;1 net;-net;<net_name>;link;list net;-net;<net_name>;link;add # returns "Not implemented" net;-net;<net_name>;link;del # returns "Not implemented" net;-net;<net_name>;link;info # returns "Not implemented" net;-net;<net_name>;link;disconnect_all net;-net;<net_name>;poa_certs;list net;-net;<net_name>;ca;list net;-net;<net_name>;ca;add;-cert;<cert_name> net;-net;<net_name>;ca;add;-hash;<cert_hash> net;-net;<net_name>;ca;del;-hash;<cert_hash> net;-net;<net_name>;-mode;update;go;online net;-net;<net_name>;-mode;all;go;offline net;-net;<net_name>;go;sync net;-net;<net_name>;sync net;-net;<net_name>;ledger;reload
stats tx time format: YYYY-MM-DD_HH:MM:SS. If -from is omitted, defaults to last 24 hours. -to defaults to now. Use -prev_day <days> as an alternative to -from/-to.
CLI help mentions stats tps and sync {all|gdb|chains}, but the current implementation only handles stats tx and calls a single sync routine without sub-arguments.
{"method":"net","params":["net;list"],"id":1,"version":1}
{"method":"net","params":["net;list;chains;-net;Backbone"],"id":2,"version":1}
{"method":"net","params":["net;-net;KelVPN;get;status"],"id":3,"version":1}
{"method":"net","params":["net;-net;Backbone;get;fee"],"id":4,"version":1}
{"method":"net","params":["net;-net;KelVPN;stats;tx;-prev_day;1"],"id":5,"version":1}
{"method":"net","params":["net;-net;Backbone;link;list"],"id":6,"version":1}
{"method":"net","params":["net;-net;KelVPN;poa_certs;list"],"id":7,"version":1}
{"method":"net","subcommand":"list","id":1,"version":2}
{"method":"net","subcommand":"list;chains","arguments":{"net":"Backbone"},"id":2,"version":2}
{"method":"net","subcommand":"get;status","arguments":{"net":"Backbone"},"id":3,"version":2}
{"method":"net","subcommand":["get","status"],"arguments":{"net":"Backbone"},"id":4,"version":2}
{"method":"net","subcommand":"get;fee","arguments":{"net":"Backbone"},"id":5,"version":2}
{"method":"net","subcommand":"stats;tx","arguments":{"net":"Backbone","prev_day":"1"},"id":6,"version":2}
{"method":"net","subcommand":"link;list","arguments":{"net":"Backbone"},"id":7,"version":2}
{"method":"net","subcommand":"go;online","arguments":{"net":"Backbone"},"id":8,"version":2}
{"method":"net","subcommand":"go;sync","arguments":{"net":"KelVPN","mode":"update"},"id":9,"version":2}
{"method":"net","subcommand":"sync","arguments":{"net":"Backbone"},"id":10,"version":2}
net is a JSON-response command. On success, HTTP body contains:
{
"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)On error, the result array contains an object with an errors array (not a top-level JSON-RPC error field):
{
"type": 2,
"result": [
{
"errors": [
{ "code": 103, "message": "Network UnknownNet not found" }
]
}
],
"id": 1,
"version": 2
}
Most net subcommands return the same field names regardless of request version. The main difference is in get status chain sync details under status.processed.<chain>:
| Version 1 | Version 2 | Context |
|---|---|---|
in network | in_network | Total atoms in network for each chain |
Push-notification payloads (not returned by CLI/RPC commands) also use version-dependent class names: NetInfo/net_info, NetList/net_list, errorMessage/error_message.
{
"result": [
{ "networks": ["KelVPN", "Backbone"] }
]
}
{
"result": [
{
"networks": [
{
"name": "Backbone",
"chain": [
{
"name": "zerochain",
"default_types": ["token", "emission", "ca", "decree"]
},
{
"name": "main",
"default_types": ["transaction", "anchor"]
}
]
}
]
}
]
}
{
"result": [
{
"net": "Backbone",
"chains": ["zerochain", "main"]
}
]
}
{
"result": [
{
"status": {
"net": "Backbone",
"current_addr": "4A57::286A::8CE4::0B50",
"links": { "active": 3, "required": 3 },
"processed": {
"zerochain": {
"status": "synced",
"current": 106727,
"in_network": 106727,
"percent": "100.000 %"
},
"main": {
"status": "idle",
"current": 542723,
"in_network": 542723,
"percent": "100.000 %"
}
},
"states": {
"current": "NET_STATE_ONLINE",
"target": "NET_STATE_ONLINE"
}
}
}
]
}
Example above uses version 2 (in_network). With version: 1 the same field is "in network" (with a space). Chain status values: synced, idle, sync in process, error. State strings use NET_STATE_* prefix. links is omitted when the network is offline.
{
"result": [
{
"fees": {
"network": {
"coins": "0.002",
"balance": "2000000000000000",
"ticker": "CELL",
"addr": "Rj7J7MiX2bWy8sNyX38bB86KTFUnSn7sdKDsTFa2RJyQTDWFaebrj6BucT7Wa5CSq77zwRAwevbiKy1sv1RBGTonM83D3xPDwoyGasZ7"
},
"validators": {
"min": { "balance": "1000000000000", "coin": "0.000001" },
"max": { "balance": "10000000000000000000", "coin": "10.0" },
"average": { "balance": "62468943222748815", "coin": "0.062468943222748815" },
"median": { "balance": "10000000000000000", "coin": "0.01" },
"token": "CELL"
},
"xchange": "service has not announced a commission fee"
}
}
]
}
xchange may be a JSON object when the exchange service reports fees, or a plain string when not configured. Field names are the same on v1 and v2.
{
"result": [
{
"network": "Backbone",
"id": "0x0404202200000000"
}
]
}
{
"result": [
{
"transaction_statistics": {
"from": "2026-07-13_09:08:18",
"to": "2026-07-14_09:08:18",
"transaction_per_day": "1105.000",
"total": 1105
}
}
]
}
{
"result": [
{
"links": {
"uplinks": [
{
"addr": "1B3B::5AE6::8800::D011",
"ip": "159.203.77.225 ",
"port": 8079,
"channel": "RCGEND",
"total_packets_sent": 8160873
}
],
"downlinks": null
}
}
]
}
{ "result": [ { "add": "Not implemented" } ] }
{ "result": [ { "info": "Not implemented" } ] }
{
"result": [
{
"poa_certs": [
"0xCB73427D1124F5EA8068EEFA5AEC91D37888561ED43E737AFD0D08A07BE67809",
"0x3B244B31B4DC6DD7791FE34A67712BDD7647648BB9089D0266A6CC245AF70DE4"
]
}
]
}
// go online
{ "result": [ { "net": "Backbone", "current": "NET_STATE_SYNC_CHAINS", "to": "NET_STATE_ONLINE" } ] }
// go offline
{ "result": [ { "net": "KelVPN", "current": "NET_STATE_ONLINE", "to": "NET_STATE_OFFLINE" } ] }
// go sync
{ "result": [ { "net": "KelVPN", "current": "NET_STATE_SYNC_CHAINS", "start": "resynchronizing" } ] }
go online / go offline return to with the target state. go sync returns start: "resynchronizing" instead of to.
{
"result": [
{
"state_machine": {
"current": "NET_STATE_SYNC_CHAINS",
"requested": "SYNC_ALL"
}
}
]
}
| Code | When |
|---|---|
| 34 | Unknown subcommand (e.g. "get status" with a space instead of "get;status"). |
| 102 | Missing required -net parameter. |
| 103 | Unknown network name. |
| 15 | stats subcommand requires tx. |
| 16 | go subcommand requires online, offline, or sync. |
| 22 | ca add requires -cert or -hash. |
| 28 | ca list — database ACL group not defined (observed on rpc.cellframe.net). |