Studied Engineering Physics @ The Hague University for Applied Sciences. Currently working as Physics Research Assistent @ SRON. Interested in decentralized digital sovereign money (e.g. bitcoin) as a stepping stone to a civilization of abundance where orwellian governments and corporately controlled fiat are obsolete. Bitcoin and Lightning Network node operator.
Introduction 👋
Requirements 🫴
- VPS (hosted node) or computer/server (self-hosted node)
- Pruned/Full Bitcoin Core node (tested with v29.0)
- (sub)Domain forwarding traffic to the node (e.g. coinjoin.[yourdomain].io)
- 4 cores
- 16 GB RAM
- 2 TB SSD or NVMe (for a full-node) / 128 GB SSD (for a pruned-node)
Installation 🛠️
RaspiBlitz/Debian deployment
Easy deployment
wget https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.7.2/Wasabi-2.7.2.deb wget https://github.com/WalletWasabi/WalletWasabi/releases/download/v2.7.2/Wasabi-2.7.2.deb.asc wget https://raw.githubusercontent.com/WalletWasabi/WalletWasabi/refs/heads/master/PGP.txt gpg --import PGP.txt gpg --verify Wasabi-2.7.2.deb.asc Wasabi-2.7.2.deb
gpg: Signature made Mon Nov 17 01:33:09 2025 CET gpg: using RSA key 6FB3872B5D42292F59920797856348328949861E gpg: Good signature from "zkSNACKs <[email protected]>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 6FB3 872B 5D42 292F 5992 0797 8563 4832 8949 861E
sudo apt install ./Wasabi-2.7.2.deb
Configuration 🧾
- Bitcoin RPC credentials
- Preferred round parameters
- Coordinator Extended Public Key (create a new SegWit wallet for receiving collected dust) Warning: Taproot wallet will result in unspendable UTXO's! Use a Native Segwit wallet here.
- Allowed input and output address types
- Announcer configuration for publishing over nostr (name, description, Uri, minimum inputs, nostr relay, nostr private key)
~/.walletwasabi/coordinator/Config.jsonsudo nano ~/.walletwasabi/coordinator/Config.json
{ "Network": "Main", "MainNetBitcoinRpcUri": "http://localhost:8332", "TestNetBitcoinRpcUri": "http://localhost:48332", "RegTestBitcoinRpcUri": "http://localhost:18443", "BitcoinRpcConnectionString": "your_bitcoin_rpcuser:your_bitcoin_rpcpassword", "ConfirmationTarget": 21, "DoSSeverity": "0.02", "DoSMinTimeForFailedToVerify": "1d 21h 0m 0s", "DoSMinTimeForCheating": "1d 0h 0m 0s", "DoSPenaltyFactorForDisruptingConfirmation": 0.2, "DoSPenaltyFactorForDisruptingSignalReadyToSign": 1.0, "DoSPenaltyFactorForDisruptingSigning": 1.0, "DoSPenaltyFactorForDisruptingByDoubleSpending": 3.0, "DoSMinTimeInPrison": "0d 0h 20m 0s", "MinRegistrableAmount": "0.000021", "MaxRegistrableAmount": "1000.00", "AllowNotedInputRegistration": true, "StandardInputRegistrationTimeout": "0d 0h 21m 0s", "BlameInputRegistrationTimeout": "0d 0h 3m 0s", "ConnectionConfirmationTimeout": "0d 0h 1m 0s", "OutputRegistrationTimeout": "0d 0h 1m 0s", "TransactionSigningTimeout": "0d 0h 1m 0s", "FailFastOutputRegistrationTimeout": "0d 0h 3m 0s", "FailFastTransactionSigningTimeout": "0d 0h 1m 0s", "RoundExpiryTimeout": "0d 0h 5m 0s", "MaxInputCountByRound": 100, "MinInputCountByRoundMultiplier": 0.21, "MinInputCountByBlameRoundMultiplier": 0.21, "RoundDestroyerThreshold": 375, "CoordinatorExtPubKey": "xpub_fill_in_your_new_wallet_here", "CoordinatorExtPubKeyCurrentDepth": 0, "MaxSuggestedAmountBase": "100.00", "RoundParallelization": 1, "CoordinatorIdentifier": "CoinJoinCoordinatorIdentifier", "AllowP2wpkhInputs": true, "AllowP2trInputs": true, "AllowP2wpkhOutputs": true, "AllowP2trOutputs": true, "AllowP2pkhOutputs": true, "AllowP2shOutputs": true, "AllowP2wshOutputs": true, "DelayTransactionSigning": false, "AnnouncerConfig": { "CoordinatorName": "Your Coordinator Name", "IsEnabled": true, "CoordinatorDescription": "Privacy is a human right!", "CoordinatorUri": "https://coinjoin.yourdomain/", "AbsoluteMinInputCount": 21, "ReadMoreUri": "https://coinjoin.yourdomain/", "RelayUris": [ "wss://relay.primal.net" ], "Key": "nsec_your_coordinator_nostr_privatekey" }, "PublishAsOnionService": true, "OnionServicePrivateKey": your_onion_service_private_key }
Tor configuration 🧅
"PublishAsOnionService": true, set in the Config.json file.ASPNETCORE_URLS="http://localhost:5001" wcoordinator
cat ~/.walletwasabi/coordinator/Logs.txt | grep .onion
2026-01-09 21:21:21.210 [14] INFO TorProcessManagerService.StartAsync (50) Coordinator server listening on http://acoo3vgmo4rawaeujh6wckurymm2fp4ojauoag6zwov3pryyopis47qd.onion
cat ~/.walletwasabi/coordinator/Config.json | grep CoordinatorUri
Running ⚡
ASPNETCORE_URLS="http://localhost:5001" wcoordinator
http://coinjoin.yourdomain/wabisabi/human-monitor/
Optional: debugging coordinator server
~/.walletwasabi/backend/Logs.txt~/.bitcoin/bitcoin.conf with:[main] # or [test] for testnet rpcbind=127.0.0.1 rpcuser=your_bitcoin_rpcuser rpcpassword=your_bitcoin_rpcpassword
Optional: Running the backend server
wbackend
Inviting Wasabi users to your coordinator 🫂
name=Your%20Coordinator%20Name&network=main&coordinatorUri=https://coinjoin.yourdomain&coordinationFeeRate=0&readMore=https://coinjoin.yourdomain/&absoluteMinInputCount=21
Author
This tutorial has been written by Kevin Ravens₿erg
You can say thanks by tipping the professor.
Credits
This tutorial has been proofread by kravens
Even if this content is in its original language, human review is necessary to ensure its accuracy.
kravens840 sats420 satsEvery content on the platform is the result of a collaborative effort: each lesson, translation, and revision is made possible by the work of contributors. For this reason, we are always looking for proofreaders who can review our content in many languages. If you want to participate in the proofreading process, please reach out in our Telegram group and read our tutorial. We remind you that this content is open-source - licensed under CC BY-SA - so it can be freely shared and used, as long as the original source is credited.
