# RPC

## rpc.start

Start the JSON-RPC service. Only available in console mode.&#x20;

**Parameters:** None

#### Console Example

```javascript
> rpc.start()
```

## rpc\_stop

Stop the JSON-RPC service. Available in console and attach mode.&#x20;

{% hint style="info" %}
**Private**: Requires authentication.
{% endhint %}

**Parameters:** None

**Curl Example:**&#x20;

```bash
curl -X POST --data '{"jsonrpc":"2.0",  "method":"rpc_stop", "id":21 }'
```

#### Console Example

```javascript
> rpc.stop()
```

#### Returns:

`Boolean`&#x20;

#### Output:

```javascript
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": true
}
```

## rpc\_methods

Get all JSON-RPC methods.

**Parameters:** None

**Curl Example:**&#x20;

```bash
curl -X POST --data '{"jsonrpc":"2.0",  "method":"rpc_methods", "id":21 }'
```

#### Console Example

```javascript
> rpc.methods()
```

#### Returns:

`Array<Object>`&#x20;

| Field       | Type    | Description                                                     |
| ----------- | ------- | --------------------------------------------------------------- |
| name        | String  | The name of the method. (format: \<namespace>\_\<method\_name>) |
| description | String  | A brief description of the method.                              |
| private     | Boolean | Indicate that the method is private or not.                     |

#### Output:

```javascript
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": [
    {
      "description": "Add a peer address",
      "name": "net_addPeer",
      "private": true
    }
  ]
}
```

## rpc\_echo

Send a value to the server and have it resent back. Used for testing.&#x20;

**Parameters:**&#x20;

| Argument | Type | Description                      |
| -------- | ---- | -------------------------------- |
| value    | Any  | The value to be sent and echoed. |

**Curl Example:**&#x20;

```bash
curl -X POST --data '{"jsonrpc":"2.0",  "method":"rpc_echo", "params": "Hello, world!", "id":21 }'
```

#### Console Example

```javascript
> rpc.echo("Hello, world!")
```

#### Returns:

`Any`&#x20;

#### Output:

```javascript
{
  "id": 21,
  "jsonrpc": "2.0",
  "result": "Hello, world!"
}
```
