# DSP Service

## Create service boilerplate

The `templates-dsp-service` box contains a basic version of:

* consumer contract - contract showcasing simple examples of how to use the service
* unit test - file that shows examples of the consumer contract being used
* dsp-service.json - this goes in the `/models/dapp-service` directory of the service
* myservice-dapp-service-node.js file for running the DSPs node logic

```bash
mkdir templates-dsp-service; cd templates-dsp-service
zeus box create
zeus unbox templates-dsp-service
zeus create dsp-service myservice
# compile
zeus compile
# zeus test
zeus test
```

*The gitignore ignores all extensions at the moment, in the future you will be able to install those extensions with `zeus install`, but until that time just ignore the `node_modules` folder*

### dsp-service.json

* name - define the simplest version of your DSP service, this is used for DSPs to register the service with the `zeus register dapp-service-provider-package`. It is the `PACKAGE` env variable
* port - select a port for your service to run on, ensure the other services don’t overlap as each service must have a unique port
* prettyName - what the service will be officially referred to (LiquidAccounts, vRAM, etc..)
* stage - Work in Progress (WIP), Alpha, Beta, Stable
* version - current version
* description - short description of service
* commands - list of DSP commands
  * blocking - if true, blocking will treat the command as a synchronous event, if false it will be treated as an asynchonous event

```
{
    "name": "dsp-service",
    "port": 13150,
    "prettyName": "Liquid...",
    "stage":"WIP or Alpha, or BETA, or Stable",
    "version": "0.9",
    "description": "Allows interaction with contract without a native EOS Account",
    "contract": "account_service_contract_is_deployed_on",
    "commands": {
        "example_command": {
            "blocking (true  = syncronous, false = async)": false,
            "request": {
            },
            "callback": {
                "payload": "std::vector<char>",
                "sig": "eosio::signature",
                "pubkey": "eosio::public_key"
            },
            "signal": {
                "sig": "eosio::signature",
                "pubkey": "eosio::public_key"
            }
        }
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.liquidapps.io/liquidapps-documentation/working-with-zeus-sdk/zeus-basics/basic-eosio-contract/create-dsp-service.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
