Dash Masternode

Masternode setup with Dash Platform services

The purpose of this tutorial is to walk through the steps necessary to set up a masternode with Dash Platform services.



More comprehensive details of using the dashmate tool can be found in the dashmate README.

Clone the dashmate repository and prepare for use:

git clone -b master https://github.com/dashevo/dashmate.git
cd dashmate
npm ci
sudo npm link # optional: link CLI for system-wide execution


Full Platform Node

A full node that with all Platform services can be started by simply running the setup command with the node type setup parameter set to fullnode and then starting the node.

dashmate setup testnet fullnode
dashmate start

Local Development Network

Dashmate can be used to create a local development network (devnet) containing multiple nodes to mimic conditions and features found in testnet/mainnet settings.


Run the following command to start the setup wizard, then accept the default values at each step to create a local devnet:

dashmate setup local


Make a note of the key, identity, and contract ID information displayed during setup as they may be required in the future.

Example (partial) output of the setup wizard showing important information:

  โœ” Initialize SDK
    โ€บ HD private key: tprv8ZgxMBicQKsPfLTCjh8vdHkDHYM369tUeQ4aqpV9GzUfQyBKutfstB1sDfQyLERACTEYy5Qjph42gBiqqnqYmXJZZqRc4PQssGzbvwJXHnN
  โœ” Register DPNS identity
    โ€บ DPNS identity: 6whgUd1LzwzU4ob7K8FGCLV765K7dp2JbEmVgdTQEFxD
  โœ” Register DPNS contract
    โ€บ DPNS contract ID: EpCvWuoh3JcFetFY83HdwuzRUvwxF2hc3mU19MtBg2kK
  โœ” Obtain DPNS contract commit block height
    โ€บ DPNS contract block height: 5
  โœ” Register top level domain "dash"
  โœ” Register identity for Dashpay
    โ€บ Dashpay's owner identity: 2T7kLcbJzQrLhBV6BferW42Jimb3BJ5zAAore42mfNyE
  โœ” Register Dashpay Contract
    โ€บ Dashpay contract ID: EAv8ePXREdJ719ntcRiKuEYxv9XooMwL1mJmPHMGuW9r
  โœ” Obtain Dashpay contract commit block height
    โ€บ Dashpay contract block height: 15
  โœ” Register Feature Flags identity
    โ€บ Feature Flags identity: 8BsvV4RCbW7srWj81kgjJCykRBF2rzyigys8XkBchY96
  โœ” Register Feature Flags contract
    โ€บ Feature Flags contract ID: JDrDAGVqTWsM9k7KGBsSjcyC11Vd2UdPxPoPf4NzyyrP
  โœ” Obtain Feature Flags contract commit block height
    โ€บ Feature Flags contract block height: 20


Once the setup completes, start/stop/restart the devnet via the following commands:

dashmate group:start
dashmate group:stop
dashmate group:restart

The status of the devnet nodes can be check via the group status command:

dashmate group:status

Mining Dash

During development it may be necessary to obtain Dash to create and topup identities. This can be done using the dashmate wallet:mint command. First obtain an address to fund via the Create and Fund a Wallet tutorial and then mine Dash to it as shown below:

# Stop the devnet first
dashmate group:stop

# Mine 10 Dash to a provided address
dashmate wallet:mint 10 --address=<your address> --config=local_seed

# Restart the devnet
dashmate group:start
# Stop the devnet first
dashmate group:stop

# Mine 10 Dash to a random address/key
# The address and private key will be displayed
dashmate wallet:mint 10 --config=local_seed

# Restart the devnet
dashmate group:start

Example output of dashmate wallet:mint 10 --address=yYqfdpePzn2kWtMxr9nz22HBFM7WBRmAqG --config=local_seed:

โœ” Generate 10 dash to address
  โœ” Start Core
  โ†“ Use specified address yYqfdpePzn2kWtMxr9nz22HBFM7WBRmAqG [SKIPPED]
  โœ” Generate โ‰ˆ10 dash to address yYqfdpePzn2kWtMxr9nz22HBFM7WBRmAqG
    โ€บ Generated 172.59038279 dash
  โœ” Wait for balance to confirm
  โœ” Stop Core

Using the devnet

Once the address is funded, you can begin creating identities, data contracts, etc. and experimenting with Dash Platform. The other tutorials in this section will help you get started.

To make the Dash SDK connect to your local devnet, use the dapiAddresses option and set the DPNS contract ID when configuring your client:

const clientOpts = {
  dapiAddresses: [''],
  // Set DPNS contract ID to the one output during devnet setup
  apps: {
    dpns: {
        contractId: 'DPNS contract ID displayed during the setup step',

const client = new Dash.Client(clientOpts);

Remote Development Network


Connecting to a remote development network

In order to connect to a remote devnet (e.g. one run by Dash Core Group), please use one of the methods described in the Connect to a Devnet section.

For development we recommend using either a local devnet created via dashmate as described above or using Testnet. While configuring a remote development network is possible using the Dash network deployment tool, it is beyond the scope of this documentation. For details regarding this tool, please refer to the GitHub repository.

Testnet Masternode Setup


Advanced Topic

Running a masternode requires familiarity with Dash Platform services. Improper configuration may impact testing so please exercise caution if running a masternode.

To setup a testnet masternode, please refer to the comprehensive documentation of the process as described here. The following video also details how to complete the process.

Did this page help you?