1 · Introduction

Dark Wallet is an open-source, privacy-centric multi-chain wallet. It supports native Bitcoin, EVM chains and upcoming zero-knowledge roll-ups, wrapping them inside a single UX.

Prefer a video walkthrough? See the 5-minute onboarding on our YouTube channel. For production environments, always follow the written docs below.

2 · Installation

2.1 · Desktop builds

Grab the latest signed release from GitHub → darkwallet-vX.X.X-setup.exe.

# Linux example
wget https://github.com/dark-wallet/releases/download/vX.X.X/DarkWallet.AppImage
chmod +x DarkWallet.AppImage
./DarkWallet.AppImage
        

2.2 · Mobile builds

Android APK is distributed via F-Droid to avoid geo-blocking.
iOS build is signed with a personal team certificate; add our public key to your device profile.

2.3 · Building from source

git clone https://github.com/dark-wallet/dark-wallet.git
cd dark-wallet
pnpm install
pnpm build --filter desktop
        

3 · Configuration

First launch generates ~/.config/darkwallet/config.toml. Edit values or pass overrides via DARKWALLET_* env vars.

KeyDescriptionDefault
eth_rpcMainnet JSON-RPC endpoint
tor_portSOCKS port for Tor routing9050
anon_lvlPrivacy/speed slider (0-100)70
auto_updateEnable in-app updatertrue

4 · CLI Reference

4.1 · Balance

$ dwctl balance --chain eth
0x12ab…cd34
  ETH  : 0.7421
  USDC : 1 203.55
        

4.2 · Send

dwctl send --to 0xReceiver… --amount 0.01 --asset ETH --fast
        

5 · JavaScript API

import { DarkWallet } from "@dark/wallet";

const dw = await DarkWallet.create({
  seed: process.env.SEED_PHRASE,
  rpc : "https://rpc.ankr.com/eth"
});

await dw.send("0xReceiver…", "0.01", "ETH");
console.log("tx:", dw.lastTx);
        

6 · Security Best Practices

  • Enable biometric unlock on desktop & mobile builds.
  • Store an encrypted backup of your 24-word seed in two separate locations.
  • Verify SHA-256 signatures of downloaded binaries before installing.
  • Use a hardware key (Ledger / Trezor) for high-value transfers via the USB bridge.

7 · Troubleshooting

7.1 · Common runtime errors

ERR_MODULE_NOT_FOUND:   update NodeJS & clear pnpm cache
EHOSTUNREACH (Tor):     check that tor_port is correct & Tor is running
EACCES on keystore:     ensure directory permissions = 700
        

7.2 · FAQ

“AppImage won’t start” — make sure your partition is mounted exec or run via ./AppImage --appimage-extract.

8 · Glossary

CoinJoin — collaborative transaction mixing technique that obfuscates inputs and outputs.

zk-Proof — cryptographic proof showing knowledge of a value without revealing it.

Tor — overlay network directing traffic through volunteer relays for anonymity.