```{eval-rst} .. meta:: :title: Control RPCs :description: A list of all the Control RPCs in Dash. ``` # Control RPCs ## Debug The [`debug` RPC](../api/remote-procedure-calls-control.md#debug) changes the debug category from the console. >❗️ > > Breaking change(s) in Dash Core 18.0. See parameter and/or response information for details. *Parameter #1---debug category* Name | Type | Presence | Description --- | --- | --- | --- Debug category | string | Required
(1 or more) | The debug category to activate. Use a `+` to specify multiple categories. Categories will be one of the following:
• `0` - Disables all categories
• `1` or `all` - Enables all categories
• `addrman`
• `bench`
• `cmpctblock`
• `coindb`
• `walletdb` (**renamed from `db` in Dash Core 18.0.0**)
• `estimatefee`
• `http`
• `leveldb`
• `libevent`
• `mempool`
• `mempoolrej`
• `net`
• `proxy`
• `prune`
• `qt`
• `rand`
• `reindex`
• `rpc`
• `selectcoins`
• `tor`
• `zmq`
• `dash` (all subcategories)

The `dash` sub-categories can be enabled individually:
• `chainlocks`
• `gobject`
• `instantsend`
• `llmq`
• `llmq-dkg`
• `llmq-sigs`
• `mnpayments`
• `mnsync`
• `coinjoin`
• `spork`


Note: No error will be thrown even if the specified category doesn't match any of the above *Example from Dash Core 0.15.0* ```bash dash-cli -testnet debug "net+mempool" ``` Result: ```text Debug mode: net+mempool ``` *See also* * [Logging](../api/remote-procedure-calls-control.md#logging): gets and sets the logging configuration ## GetMemoryInfo *Added in Dash Core 0.12.3 / Bitcoin Core 0.14.0* The [`getmemoryinfo` RPC](../api/remote-procedure-calls-control.md#getmemoryinfo) returns information about memory usage. *Parameter #1---mode* Name | Type | Presence | Description --- | --- | --- | --- mode| string | Optional
Default: `stats` | *Added in Dash Core 0.15.0*

Determines what kind of information is returned.
- `stats` returns general statistics about memory usage in the daemon.
- `mallocinfo` returns an XML string describing low-level heap state (only available if compiled with glibc 2.10+). *Result---information about memory usage* Name | Type | Presence | Description --- | --- | --- | --- `result` | object | Required
(exactly 1) | An object containing information about memory usage →
`locked` | string : object | Required
(exactly 1) | An object containing information about locked memory manager →→
`used` | number (int) | Required
(exactly 1) | Number of bytes used →→
`free` | number (int) | Required
(exactly 1) | Number of bytes available in current arenas →→
`total` | number (int) | Required
(exactly 1) | Total number of bytes managed →→
`locked` | number (int) | Required
(exactly 1) | Amount of bytes that succeeded locking →→
`chunks_used` | number (int) | Required
(exactly 1) | Number allocated chunks →→
`chunks_free` | number (int) | Required
(exactly 1) | Number unused chunks *Example from Dash Core 0.12.3* ```bash dash-cli getmemoryinfo ``` Result: ```json { "locked": { "used": 1146240, "free": 426624, "total": 1572864, "locked": 1572864, "chunks_used": 16368, "chunks_free": 7 } } ``` *See also* * [GetMemPoolInfo](../api/remote-procedure-calls-blockchain.md#getmempoolinfo): returns information about the node's current transaction memory pool. ## GetRPCInfo *Added in Dash Core 18.0.0* The [`getrpcinfo` RPC](#getrpcinfo) returns details about the RPC server. *Parameters: none* *Result---information about the RPC server* Name | Type | Presence | Description --- | --- | --- | --- `result` | object | Required
(exactly 1) | An object containing information about the RPC server →
`active_commands` | array of objects | Required
(exactly 1) | An object containing information about active RPC commands →→
Active command | object | Optional
(0 or more) | Information about a currently active command →→→
`method` | number (int) | Required
(exactly 1) | Name of the command →→→
`duration` | number (int) | Required
(exactly 1) | Number of microseconds the command has been active *Example from Dash Core 18.0.0* ```bash dash-cli getrpcinfo ``` Result: ```json { "active_commands": [ { "method": "generate", "duration": 5226138 }, { "method": "getrpcinfo", "duration": 5 } ] } ``` *See also: none* ## Help The [`help` RPC](../api/remote-procedure-calls-control.md#help) lists all available public RPC commands, or gets help for the specified RPC. Commands which are unavailable will not be listed, such as wallet RPCs if wallet support is disabled. *Parameter #1---the name of the RPC to get help for* Name | Type | Presence | Description --- | --- | --- | --- RPC | string | Optional
(0 or 1) | The name of the RPC to get help for. If omitted, Dash Core 0.10x will display an alphabetical list of commands; Dash Core 0.11.0 will display a categorized list of commands *Parameter #2---the name of the subcommand to get help for* Name | Type | Presence | Description --- | --- | --- | --- Sub-command | string | Optional
(0 or 1) | The subcommand to get help on. Please note that not all subcommands support this at the moment *Result---a list of RPCs or detailed help for a specific RPC* Name | Type | Presence | Description --- | --- | --- | --- `result` | string | Required
(exactly 1) | The help text for the specified RPC or the list of commands. The `dash-cli` command will parse this text and format it as human-readable text *Example from Dash Core 0.17.0* Command to get help about the [`help` RPC](../api/remote-procedure-calls-control.md#help): ```bash dash-cli -testnet help help ``` Result: ```text help ( "command" "subcommand" ) List all commands, or get help for a specified command. Arguments: 1. "command" (string, optional) The command to get help on 2. "subcommand" (string, optional) The subcommand to get help on. Please note that not all subcommands support this at the moment Result: "text" (string) The help text ``` *See also* * The [RPC Quick Reference](../api/remote-procedure-call-quick-reference.md) ## Logging The [`logging` RPC](../api/remote-procedure-calls-control.md#logging) gets and sets the logging configuration >❗️ > > Breaking change(s) in Dash Core 18.0. See parameter and/or response information for details. *Parameter #1---include categories* Name | Type | Presence | Description --- | --- | --- | --- `include` | array of strings | Optional
(0 or 1) | Enable debugging for these categories *Parameter #2---exclude categories* Name | Type | Presence | Description --- | --- | --- | --- `exclude` | array of strings | Optional
(0 or 1) | Enable debugging for these categories The categories are: | Type | Category | | - | - | | Special | • `0` - Disables all categories
• `1` or `all` - Enables all categories
• `dash` - Enables/disables all Dash categories | | Standard | `addrman`, `bench`
`cmpctblock`, `coindb`, `estimatefee`, `http`, `leveldb`, `libevent`, `mempool`, `mempoolrej`, `net`, `proxy`, `prune`, `qt`, `rand`, `reindex`, `rpc`, `selectcoins`, `tor`, `zmq`, `walletdb` (**renamed from `db` in Dash Core 18.0.0**)| | Dash |
`chainlocks`, `gobject`, `instantsend`, `llmq`, `llmq-dkg`, `llmq-sigs`, `mnpayments`, `mnsync`, `coinjoin`, `spork` | *Result---a list of the logging categories that are active* Name | Type | Presence | Description --- | --- | --- | --- `result` | object | Required
(exactly 1) | A JSON object show a list of the logging categories that are active *Example from Dash Core 0.15.0* Include a category in logging ```bash dash-cli -testnet logging '["llmq", "spork"]' ``` Result: ```json { "net": 0, "tor": 0, "mempool": 0, "http": 0, "bench": 0, "zmq": 0, "walletdb": 0, "rpc": 0, "estimatefee": 0, "addrman": 0, "selectcoins": 0, "reindex": 0, "cmpctblock": 0, "rand": 0, "prune": 0, "proxy": 0, "mempoolrej": 0, "libevent": 0, "coindb": 0, "qt": 0, "leveldb": 0, "chainlocks": 0, "gobject": 0, "instantsend": 0, "llmq": 1, "llmq-dkg": 0, "llmq-sigs": 0, "mnpayments": 0, "mnsync": 0, "coinjoin": 0, "spork": 1 } ``` Excluding a previously included category (without including any new ones): ```bash dash-cli -testnet logging '[]' '["spork"]' ``` Result: ```json { "net": 0, "tor": 0, "mempool": 0, "http": 0, "bench": 0, "zmq": 0, "walletdb": 0, "rpc": 0, "estimatefee": 0, "addrman": 0, "selectcoins": 0, "reindex": 0, "cmpctblock": 0, "rand": 0, "prune": 0, "proxy": 0, "mempoolrej": 0, "libevent": 0, "coindb": 0, "qt": 0, "leveldb": 0, "chainlocks": 0, "gobject": 0, "instantsend": 0, "llmq": 1, "llmq-dkg": 0, "llmq-sigs": 0, "mnpayments": 0, "mnsync": 0, "coinjoin": 0, "spork": 0 } ``` *See also* * [Debug](../api/remote-procedure-calls-control.md#debug): changes the debug category from the console. ## Stop The [`stop` RPC](../api/remote-procedure-calls-control.md#stop) safely shuts down the Dash Core server. *Parameters: none* *Result---the server is safely shut down* Name | Type | Presence | Description --- | --- | --- | --- `result` | string | Required
(exactly 1) | The string \Dash Core server stopping\"" *Example from Dash Core 0.12.2* ```bash dash-cli -testnet stop ``` Result: ```text Dash Core server stopping ``` *See also: none* ## Uptime The [`uptime` RPC](../api/remote-procedure-calls-control.md#uptime) returns the total uptime of the server. *Parameters: none* *Result* Name | Type | Presence | Description --- | --- | --- | --- `result` | number (int) | Required
(exactly 1) | The number of seconds that the server has been running *Example from Dash Core 0.15.0* ```bash dash-cli -testnet uptime ``` Result: ```text 5500 ``` *See also: none*