# Running the docker service

This is the Zerowallet backend service that is responsible of [#authentication](https://docs.zerowallet.org/how-does-zerowallet-work#authentication "mention") and executing transactions on-chain.

### 1 - Clone this repo and cd into it

```
git clone https://github.com/questbook/zero-wallet-backend-service.git
cd zero-wallet-backend-service
```

### 2 - Fill in the config.sample.yaml file with your own config and rename it to config.yaml

Follow instructions [here](https://docs.zerowallet.org/configuring-the-yaml-file) in order to fill the `config.yaml` file.

### 3 - Build the docker image:

```
docker build . -t zero-wallet-backend-service
```

### 4 - Then run the container:

```
docker run --network=host zero-wallet-backend-service
```

### Server endpoints

This service exposes several API endpoints to be used in the frontend part, note that you should only change \<DOMAIN> to the domain where you're deploying the service.

```typescript
nonceProvider : http://<DOMAIN>/api/auth/getNonce
nonceRefresher : http://<DOMAIN>/api/auth/refreshNonce
authorizer : http://<DOMAIN>/api/auth/authorize
gasStation : http://<DOMAIN>/api/tx/send
transactionBuilder : http://<DOMAIN>/api/tx/build
scwDeployer : http://<DOMAIN>/api/tx/deploy
```
