These json files are primarily used by DSP portals to display information.

Prepare and host dsp.json

    "name": "acme DSP",
    "website": "",
    "ownership_disclosure" : "https://...",
    "location": {
      "name": "Atlantis",
      "country": "ATL",
      "latitude": 2.082652,
      "longitude": 1.781132
      "steemit": "",
      "twitter": "",
      "youtube": "",
      "facebook": "",
      "reddit": "",
      "keybase": "",
      "telegram": "",

Prepare and host dsp-package.json

    "name": "Package 1",
    "description": "Best for low vgrabs",
    "dsp_json_uri": "",
    "service_level_agreement": {
            "uptime_9s": 5
            "95": 500
        "ttl": 2400,
        "public": false
          "name": "Atlantis",
          "country": "ATL",
          "latitude": 2.082652,
          "longitude": 1.781132

Register Package

Packages are needed for consumers to stake to in order for DAPP Service Providers to provide services.

Warning: packages are read only and can’t be disabled yet.

npm install -g @liquidapps/zeus-cmd
# the package must be chosen from the following list:
# packages: (ipfs, cron, log, oracle, readfn, vaccounts, storage, auth)
export PACKAGE=ipfs
# active key to sign package creation trx
# customizable and unique name for your package
export PACKAGE_ID=package1
export EOS_CHAIN=mainnet
# or
export EOS_CHAIN=kylin
# the minimum stake quantity is the amount of DAPP and/or DAPPHDL that must be staked to meet the package's threshold for use
export MIN_STAKE_QUANTITY="10.0000"
# package period is in seconds, so 86400 = 1 day, 3600 = 1 hour
export PACKAGE_PERIOD=86400
# the time to unstake is the greater of the package period remaining and the minimum unstake period, which is also in seconds
# QUOTA is the measurement for total actions allowed within the package period to be processed by the DSP.  1.0000 QUOTA = 10,000 actions. 0.0001 QUOTA = 1 action
export QUOTA="1.0000"
# package json uri is the link to your package's information, this is customizable without a required syntax

cd $(readlink -f `which setup-dsp` | xargs dirname)/../..
zeus register dapp-service-provider-package \
    --key $DSP_PRIVATE_KEY \
    --min-stake-quantity $MIN_STAKE_QUANTITY \
    --package-period $PACKAGE_PERIOD \
    --quota $QUOTA \
    --network $EOS_CHAIN \
    --api-endpoint $DSP_ENDPOINT \
    --package-json-uri $PACKAGE_JSON_URI \
    --min-unstake-period $MIN_UNSTAKE_PERIOD

Or in cleos:

# currently available services: (ipfsservice1, cronservices, logservices1, oracleservic, readfndspsvc, accountless1)
# the services use EOS account names to fascilitate usage
# service contract names may be found in the boxes/groups/services/SERVICE_NAME/models/dapp-services/*.json file as the ( contract ) parameter
export SERVICE=ipfsservice1
# zeus command automatically adds QUOTA / DAPP, so we must add it here
export QUOTA="1.0000 QUOTA"
export MIN_STAKE_QUANTITY="10.0000 DAPP"
export EOS_ENDPOINT= # or mainnet:
cleos -u $EOS_ENDPOINT push action dappservices regpkg "{\"newpackage\":{\"api_endpoint\":\"$DSP_ENDPOINT\",\"enabled\":0,\"id\":0,\"min_stake_quantity\":\"$MIN_STAKE_QUANTITY\",\"min_unstake_period\":\"$MIN_UNSTAKE_PERIOD\",\"package_id\":\"$PACKAGE_ID\",\"package_json_uri\":\"$PACKAGE_JSON_URI\",\"package_period\":\"$PACKAGE_PERIOD\",\"provider\":\"$DSP_ACCOUNT\",\"quota\":\"$QUOTA\",\"service\":\"$SERVICE\"}}" -p $DSP_ACCOUNT

Example service contract name for LiquidAccounts:

List of all services, please note some of which may not be testable yet:, see the stage for each service to monitor its development maturity (WIP - work in progress, Alpha, Beta, Stable).

output should be:

⚡registering package:package1
✔️package:package1 registered successfully

For more options:

zeus register dapp-service-provider-package --help 

Don’t forget to stake CPU/NET to your DSP account:

cleos -u $DSP_ENDPOINT system delegatebw $DSP_ACCOUNT $DSP_ACCOUNT "5.000 EOS" "95.000 EOS" -p $DSP_ACCOUNT@active

Modify Package metadata:

Currently only package_json_uri and api_endpoint are modifyable. To signal to DSP Portals / Developers that your package is no longer in service, set your api_endpoint to null.

To modify package metadata: use the “modifypkg” action of the dappservices contract.

Using cleos:

cleos -u $DSP_ENDPOINT push action dappservices modifypkg "[\"$DSP_ACCOUNT\",\"$PACKAGE_ID\",\"ipfsservice1\",\"$DSP_ENDPOINT\",\"\"]" -p $DSP_ACCOUNT@active

Update cost per action in QUOTA

The pricepkg action on the dappservices contract allows a DSP to set how much QUOTA to bill for per action. For example, a DSP could decide to charge 0.0002 QUOTA per vRAM warmup. The default for each action is 0.0001 QUOTA. The billable actions for all services may be found in the zeus-sdk/boxes/groups/services/SERVICE_NAME-dapp-service/models/dapp-services/SERVICE_NAME.json, for example: vRAM.

  • name provider - DSP name
  • name package_id - package name
  • name service - service name, e.g., ipfsservice1
  • name action - action name, e.g., warmup, commit, geturi, etc
  • uint64_t cost - QUOTA cost per action, e.g., 1 = 0.0001 QUOTA, 5, = 0.0005 QUOTA, etc