--- title: Dash Core Desktop Wallet homepage: https://github.com/dashpay/dash tagline: | Dash Core is the Desktop Wallet for Digital Cash (DASH) --- To update or switch versions, run `webi dashcore@stable` (or `@v19`, `@beta`, etc). ### System Requirements - 50GB Free Storage (100GB recommended) - 4GB RAM (8GB recommended) - 4 hours for initial sync ### Files These are the files / directories that are created and/or modified with this install: ```txt ~/.config/envman/PATH.env ~/.local/opt/dashcore/ # For convenience ~/.local/bin/dash-qt-hd ~/.local/bin/dash-qt-testnet # Linux ~/.dashcore/settings.json ~/.dashcore/testnet3/ # macOS ~/Library/Application Support/DashCore/settings.json ~/Library/Application Support/DashCore/testnet3/ ~/Library/Saved Application State/org.dash.Dash-Qt.savedState ~/Library/Preferences/org.dash.Dash-Qt.plist ``` [`dashcore-utils`](../dashcore-utils/) will also be installed if not present. ## Cheat Sheet > _DASH_ (portmanteau of _Digital Cash_) is an international currency. _Dash > Core_ is the original suite of tools for _Dash_, maintained by DCG. The original tools include: - `dash-qt` - a _Desktop Wallet_ for sending and receiving money - [`dashd`](../dashd/) - the [_Full Node_](../dashd/) server daemon \ (for APIs, servers, and such) - `dash-cli` - send RPC commands (same as the dash-qt command console) - `dash-tx` - create and debug raw (hex) transactions - `dash-wallet` - interact with wallet files offline The webi installer also includes two convenience wrapper scripts: - `dash-qt-hd` - `dash-qt-testnet` To open an existing (or create a new) Dash Desktop Wallet: ```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_: ```sh dash-qt \ -testnet \ -usehd \ -walletdir="$HOME/.config/dashcore/wallets/" \ -settings="$HOME/.config/dashcore/settings.json" \ -datadir="$HOME/.dashcore/_data/" \ -blocksdir="$HOME/.dashcore/_caches/" ``` ### IMPORTANT: How to NOT Lose Money! `dash-qt-hd` should be preferred to `dash-qt`. For historical reasons, `dash-qt` uses **lossy keys** by default! This is very dangerous - without a Wallet Phrase to recover HD Keys, file corruption (or losing the device) can lead to losing money permanently. To avoid this you may use `dash-qt-hd`, or create your wallet with `-usehd` (optionally with `-mnemonic=` if you'd like to recover an existing wallet), or `upgradetohd`. ### How to Convert from Lossy to HD If you used `dash-qt` without `-usehd` and already created a wallet, you can fix it from the command console, which can be found in _Window => Console_. ```text # Usage # upgradetohd [wallet phrase] [legacy salt] # Example upgradetohd "" "" "correct horse battery staple" # Example with the "zoomonic" and a legacy salt upgradetohd "zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong" \ "TREZOR" "correct horse battery staple" ``` It's a good idea to back up your wallet before running the conversion. For more detail see: ### How to Separate Caches from Data You can make your data much safer by separating it from the caches you may need to delete by setting: - `-walletdir=` your money!! - `-settings=` desktop app settings! - `-conf=` server settings - `-datadir=` miscellaneous - `-blocksdir=` generic caches ```sh dash-qt \ -usehd \ -settings="$HOME/.config/dashcore/settings.json" \ -walletdir="$HOME/.config/dashcore/wallets/" \ -datadir="$HOME/.dashcore/_data/" \ -blocksdir="$HOME/.dashcore/_caches/" \ -enablecoinjoin=1 \ -coinjoinautostart=1 \ -coinjoinrounds=16 \ -coinjoindenomsgoal=10 \ -coinjoindenomshardcap=25 ``` ### How to Mix with CoinJoin CoinJoin aids in preventing some bad actors and malicious observers being able to easily reconstruct details about your transactions from the publicly available data by creating many excess transactions. \ (be aware, however, that dedicated bad actors can use sophisticated software that will reveal much of the same information over time) `dash-qt` does not enable CoinJoin mixing by default. `dash-qt-hd` does. It runs the following: ```sh dash-qt \ -usehd \ -enablecoinjoin=1 \ -coinjoinautostart=1 \ -coinjoinrounds=16 \ -coinjoindenomsgoal=10 \ -coinjoindenomshardcap=25 ``` The `coinjoindenomsgoal` and `coinjoindenomshardcap` prevent CoinJoin from splitting coins down into hundreds of small, unusable coins. ### Other Tools - [`dashphrase`](https://github.com/dashhive/dashphrase-cli) for generating secure Wallet Phrases - [`dashsight`](https://github.com/dashhive/dashphrase-cli) for inspecting balances, transactions, etc via API (without downloading the indexes) ### More Documentation All of the **command line flags and options** for the Dash Core Desktop Wallet are documented between these two pages: - https://docs.dash.org/projects/core/en/stable/docs/dashcore/wallet-arguments-and-commands-dash-qt.html - https://docs.dash.org/projects/core/en/stable/docs/dashcore/wallet-arguments-and-commands-dashd.html The **config files** `dash.conf` (mainly for _Full Nodes_) and `settings.json` (mainly for Desktop Wallets) are documented at: - -