---
title: Dash Core Desktop Wallet
homepage: https://webinstall.dev/dashcore-utils/
tagline: |
  Utilities for Dash Core (DASH / Digital Cash)
---

To update, run `webi dashcore-utils`.

### Files

These are the files / directories that are created and/or modified with this
install:

```txt
~/.config/envman/PATH.env
~/.local/opt/dashcore/

~/.local/bin/dash-qt-hd
~/.local/bin/dashd-hd
~/.local/bin/dashd-hd-service-install
```

[`dashcore`](../dashcore/) will also be installed if not present.

## Cheat Sheet

> Convenience scripts for running the Dash Daemon or the Dash Core Desktop
> Wallet.

- `dash-qt-hd`
- `dash-qt-testnet`
- `dashd-hd`
- `dashd-hd-service-install`
- `dashd-testnet`
- `dashd-testnet-service-install`

For historical reasons [`dashd`](../dashd/) (System Daemon) and
[`dash-qt`](../dashcore/) (Desktop Wallet) use _lossy_ keys (non-HD wallets) by
default, and the storage options options are not intuitive.

These scripts run them with safer options that are easier to configure for
server and desktop deployment, respectively.

### How to run the DASH System Daemon

1. Mount or otherwise designate a user-owned folder on a storage volume with
   60g+ free space, such as
   ```sh
   /mnt/slc1_vol_100g/dashcore/
   ```
2. Generally you'll want to install the Dash Daemon as a system service
   ```sh
   dashd-hd-install-service /mnt/vol_slc1_100g/dashcore/
   ```

To accomplish the same manually you would:

1. Create `~/.dashcore/dash.conf` with
   [reasonable defaults](../packages/dashcore-utils/dash.example.conf)

   ```ini
   txindex=1
   addressindex=1
   timestampindex=1
   spentindex=1

   [main]
   rpcuser=RPCUSER_MAIN
   rpcpassword=RPCPASS_MAIN
   # to run on multiple interfaces, use multiple config lines
   # ex: bind=127.0.0.1:9999 and bind=10.0.0.100:9999)
   bind=127.0.0.1:9999
   rpcbind=127.0.0.1:9998
   rpcconnect=127.0.0.1:9998
   rpcallowip=127.0.0.1/16
   # zmq* can only be bound to a single interface
   # See https://github.com/dashpay/dash/issues/5461
   zmqpubrawtx=tcp://127.0.0.1:28332
   zmqpubrawtxlock=tcp://127.0.0.1:28332
   zmqpubrawchainlock=tcp://127.0.0.1:28332
   zmqpubhashchainlock=tcp://127.0.0.1:28332

   [test]
   # ...

   [regtest]
   # ...
   ```

Which is essentially the same as:

```sh
my_user="$(id -u -n)"

sudo mkdir /mnt/slc1_vol_100g/dashcore/
chown -R "$my_user" /mnt/slc1_vol_100g/dashcore/

mkdir -p ~/.dashcore/wallets/
mkdir -p /mnt/slc1_vol_100g/dashcore/_data
mkdir -p /mnt/slc1_vol_100g/dashcore/_caches

serviceman add --name 'dashd' --daemon -- \
    dashd \
        -usehd \
        -conf="$HOME/.dashcore/dash.conf" \
        -walletdir="$HOME/.dashcore/wallets/" \
        -datadir=/mnt/slc1_vol_100g/dashcore/_data \
        -blocksdir=/mnt/slc1_vol_100g/dashcore/_caches
```

See also:

- [The `dashd` Cheat Sheet](../dashd/).

### How to run the DASH Desktop Wallet

To open an existing (or create a new) Dash Desktop Wallet:

```sh
dash-qt-hd
```

Which is essentially the same as:

```sh
dash-qt \
    -usehd \
    -walletdir="$HOME/.config/dashcore/wallets/" \
    -settings="$HOME/.config/dashcore/settings.json" \
    -datadir="$HOME/.dashcore/_data/" \
    -blocksdir="$HOME/.dashcore/_caches/"
```

Or pass `-testnet` to use with _TestNet_.

See also:

- [The `dash-qt` Cheat Sheet](../dashcore/).
