CoinJoin and InstantSend


This documentation describes how to use the CoinJoin feature to create CoinJoin transactions with your Dash for consumer grade privacy.


CoinJoin is a trustless (i.e. non-custodial) method of running a sequence of transactions such that an observer has difficulty tracing transaction history. The current implementation of CoinJoin in the Dash Core wallet allows any amount of Dash to be processed. CoinJoin is also available in the Dash Electrum wallet.

Knowledge of the exact number of rounds of CoinJoin has a quantifiable effect on the confidence an adversary may have when attempting to guess transaction history. For this reason, the recommended (and default) number of rounds of CoinJoin is set to four, and some inputs may pass through additional rounds to further improve privacy.

You can read more about CoinJoin theory and processes here.


  1. Open your Dash Core wallet, go to Settings and select Options. Go to the CoinJoin tab.

  2. Next to Mixing rounds, enter a value between 2-16. Each round of CoinJoin performs one CoinJoin transaction, known as a denomination. Higher numbers of rounds increase your overall level of privacy while decreasing the chance of detection via node collusion. 16 is the highest number of rounds currently available.

    NOTE: To prevent system abuse, an average of one in ten rounds incurs a fee of .0001 DASH.

  3. Enter a Target balance. This value provides a lower boundary on the final amount of funds to be processed. Depending on how the client splits your wallet balance, you may end up with denominated inputs whose sum total is slightly greater than the target amount.

  4. Cliquez sur OK pour enregistrer les réglages.

  5. CoinJoin is disabled by default when you open the wallet. It will only start after you set the number of rounds and number of Dash to process under settings and click Start CoinJoin on the Overview tab of your wallet.

Starting CoinJoin

The CoinJoin process is initiated by clicking the Start CoinJoin button on the Overview tab of the Dash Core wallet. CoinJoin is possible once the following conditions have been met:

  • The wallet contains sufficient non-denominated funds to create the minimum required denominated values.

  • The user has not disabled CoinJoin in the Options dialog.

  • The target value for processed funds in the Options dialog is greater than zero.

If your wallet is encrypted (highly recommended), you will be asked to enter your wallet passphrase. Enable the Only for mixing via CoinJoin checkbox to unlock the wallet for CoinJoin only.


Entering a password for CoinJoin processing only

This will unlock your wallet, and the CoinJoin process will begin. The wallet will remain unlocked until CoinJoin processing is complete, at which point it will be locked automatically.


CoinJoin interface after clicking the Start CoinJoin button. Note the Status is Enabled.

CoinJoin will begin creating transactions and your CoinJoin balance will gradually increase. This process can take some time, so be patient. You can monitor the process in more detail as described in the following section.

Any of the following actions will interrupt the process. Because the transactions are atomic (they either take place completely, or do not take place at all), it is possible to safely interrupt CoinJoin at any time.

  • Clicking the Stop CoinJoin button on the Overview tab

  • Closing the client before CoinJoin is completed

  • Sending CoinJoin funds from the wallet before CoinJoin rounds are completed

  • Disabling CoinJoin before the process is complete

Monitoring CoinJoin

If you want to monitor CoinJoin in more detail, you need to enable some advanced features of the wallet. Go to Settings, select Options and go to the Wallet tab. Check the Enable advanced interface checkbox. This will allow you to monitor progress and see which individual operations CoinJoin is carrying out in the background.


Monitoring CoinJoin progress

Since CoinJoin creates a lot of new address keys to send and receive the denominations, you may receive a warning when the number of remaining keys runs low. This is nothing to be worried about, since the wallet will simply create more keys as necessary. However, these keys will not exist in any previous backups of your wallet. For this reason, it is important to backup your wallet again after the process is complete.

You can also monitor CoinJoin progress by viewing the transactions created by the process on the Transactions tab.


Transactions created by CoinJoin on the Transactions tab

The following table describes the CoinJoin-related transactions displayed in the Type column of the Transactions tab:

Transaction Type

Description de la transaction

CoinJoin Make Collateral Inputs

Les fonds du portefeuille ont été déplacés dans des entrées de caution qui seront utilisées pour créer des paiements de caution. Cela est opéré pour minimiser le traçabilité des cautions.

CoinJoin Create Denominations

Wallet funds were broken into CoinJoin denominations (Step 1 here)

CoinJoin Mixing

A transaction was sent to a masternode in order to participate in a CoinJoin session (Step 3 here)

CoinJoin Collateral Payment

The CoinJoin session collateral was claimed. This fee is charged in ~10% of sessions to prevent spam attacks.

CoinJoin Send

Denominated funds were used to send a payment to someone. Note: Unlike the previous 4 transaction types, this is not a CoinJoin transaction.

You can also use the coin control feature to view which addresses hold denominations ready to be used for CoinJoin transactions. Go to the Send tab of your wallet and click Inputs to view the possible input addresses for your transactions. You can see how each address holds given denominations of Dash, and how many rounds have been completed. This is to ensure that an efficient combination of addresses can be used as inputs in CoinJoin transactions without too much change, since an amount in a CoinJoin transaction must be rounded up to completely spend all inputs. The current minimum balance for an input used in a CoinJoin transaction is 0.00100010 DASH.


Coin Selection dialog showing addresses holding CoinJoin balances in different denominations

Paying with CoinJoin

You can only use CoinJoin for payments once you have processed enough Dash to make up the amount you are trying to send. Because the process takes time, it must be done in advance before you create the send transaction. A CoinJoin transaction is effectively the same as any other transaction on the blockchain, but it draws only from input addresses where the denomination has previously been processed to ensure privacy of funds. Because several input addresses are usually required to make up the amount you are trying to send, a CoinJoin transaction will usually take up more space (in kilobytes) on the blockchain, and therefore will be charged a slightly higher fee.

To send a payment using CoinJoin, go to the CoinJoin tab of the Dash Core wallet. The balance displayed is your CoinJoin balance instead of the total balance as shown on the Send tab. You can then enter the Pay To address, Label, Amount and click Send mixed funds. Your payment will be rounded up to completely spend the lowest possible denomination of denominated balance available (currently to the nearest 0.001 DASH). You will be prompted to enter your password and receive a detailed breakdown of the fee structure for CoinJoin before sending.


Dash Core ready to send a CoinJoin transaction. Note use of the CoinJoin tab and the amount to be sent is less than the available CoinJoin balance


Like all Dash transactions, CoinJoin transactions are composed of a number of inputs and one or more outputs. CoinJoin transactions do not use change addresses, so any remaining Dash will be spent on the transaction fee.

Due to the probabilistic nature of the CoinJoin process, increasing the number of inputs in a transaction may marginally reduce privacy. For this reason, using CoinJoin is not recommended for users requiring a high level of privacy. While it is not possible to link a CoinJoin transaction to a single source address with absolute certainty, using more inputs may make a transaction more vulnerable to different potential linking attacks. There are a number of chain analysis companies that possess tools that can provide transaction risk scoring services for transactions on the Dash blockchain, including CoinJoin transactions.

You can reduce the number of inputs in a CoinJoin transaction by defining the transaction amount in such a way that it consumes your available input denominations more efficiently, or by processing more Dash to ensure enough appropriately denominated inputs are available. Use the Coin Control function in the CoinJoin tab to view and select or deselect CoinJoin UTXOs currently available for use as transaction inputs.



Cette documentation explique comment utiliser InstantSend pour envoyer instantanément des fonds à tout autre utilisateur Dash dans le monde. Depuis la sortie d’InstantSend basé que les quorums de masternode à longue durée de vie (LLMQ-IS) dans Dash 0.14, le réseau Dash lui-même essaiera de générer un verrou InstantSend pour quasiment chaque transaction traitée par le réseau, en suivant ces règles. Contrairement à la précédente version d’InstantSend, qui demandait des frais plus élevés, les transactions InstantSend basées sur LLMQ ne réclament aucune action particulière de la part de l’utilisateur. Pour cette raison, seul le destinataire doit surveiller la réseau pour y détecter le verrou de transaction, afin d’être capable de recevoir les fonds et de traiter les transactions immédiatement.

Dash InstantSend est possible avec beaucoup de portefeuilles et d’éditeurs de logiciels, parmi lesquels les suivants (liste non exhaustive) :

  • Portefeuille logiciel Dash Core

  • Portefeuille Android Dash

  • Portefeuille IOS Dash

  • MyDashWallet

  • Kraken

  • Bitrefill

  • et beaucoup d’autres

Pour en savoir plus sur le concept et le processus InstantSend, voir ici.

Transactions InstantSend

Depuis la version 0.14 de Dash, tous les éléments d’interface pour créer une transaction InstantSend ont été enlevés, parce que toutes les transactions sont devenues des transactions InstantSend. Comme précédemment, le destinataire a la responsabilité de surveiller le réseau et les verrous InstantSend, et d’implémenter de son côté le logiciel nécessaire qui reconnaîtra et traitera les paiements comme instantanés. Voir la documentation sur l’intégration d’InstantSend pour en savoir plus sur la manière de reconnaître les verrous InstantSend.