# Getting Started

## What is JSON

JSON is a lightweight data-interchange format. It is used by applications to exchange data between applications and it is capable of representing strings, numbers, key value pair, array and boolean.

## What is JSON-RPC

JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol. A transport agnostic protocol for invoking methods on a remote process or passing messages to remote process. It uses JSON as its data format.&#x20;

## Starting Elld With RPC&#x20;

By default, `Elld` does not start with RPC enabled. To start `Elld` with RPC service, apply the `--rpc` flag.

```bash
elld start --rpc
```

## RPC Endpoint

The default endpoint of the JSON-RPC 2.0 service is:

```
http://localhost:8999/rpc
```

You can provide an alternative listen address using the `--rpc-address` flag.

```bash
elld start --rpc --rpc-address "127.0.0.1:7000"
```

### Private Endpoints

The JSON-RPC 2.0 service includes endpoints that are not publicly accessible. These endpoints are known as private endpoints and require a valid access token in order to access them.&#x20;

A valid access token must be provided in the Authorization field of the request header. Here is the expected format:

```
Authorization: Bearer access_token_here
```

To create an access token, use the [`admin_auth`](https://ellcrys.gitbook.io/ellcrys/api/admin#admin_auth) JSON RPC endpoint.&#x20;
