SwapChan

Recover a BIP39 seed phrase wallet

Swap-chan
Write the scan script to a file on your machine, disconnect the network, type the phrase only into that local prompt. I only ever want the PUBLIC addresses it prints.
Never paste the phrase into chat, an AI, email, or any website. "Recovery services" that ask for it are scams.

Paths we scan

  • EVM MetaMask / Trust / Exodus / Trezor / Rabby: m/44'/60'/0'/0/i
  • Ledger Live EVM: m/44'/60'/i'/0/0
  • Ledger legacy / MEW: m/44'/60'/0'/i
  • Phantom / Solflare / Backpack / Trust / Exodus Solana: m/44'/501'/i'/0'; Solflare legacy / Sollet m/44'/501'/i'
  • TronLink / Trust Tron: m/44'/195'/0'/0/i
  • Bitcoin legacy m/44'/0'/0'/0/i (1…), nested SegWit m/49' (3…), native SegWit m/84' (bc1q…, Exodus / Trezor / Ledger default), Taproot m/86' (bc1p…)

Scan many addresses, not one

Forgotten money is usually on account 2 or 3, or a second Ledger Live account, not index 0. So the script derives 20 addresses on every path (use GAP=50 or more if you used many accounts) and repeats for each BIP39 passphrase candidate you remember. 10 paths Ă— 20 = 200 addresses per phrase; GAP=50 gives 500. If anything near the last index has history, raise GAP and rerun.

It writes labeled public addresses (wallet + path) to addresses.txt. Paste the whole file into find_money_batch (up to 500 per batch) or the find money scanner.

mkdir scan && cd scan && echo '{"type":"module"}' > package.json
curl -O https://swapchan.com/recover/scan.mjs     # read it first: ~80 lines, no network calls
npm i @scure/bip39 @scure/bip32 @scure/btc-signer @noble/hashes @noble/curves @scure/base
# now disconnect from the internet
GAP=20 node scan.mjs                               # GAP=50 for heavy users
PASSPHRASES=candidates.txt GAP=20 node scan.mjs    # optional 25th-word guesses, one per line

Checked against the public test phrase “abandon ×11 about”: index 0 gives 0x9858EfFD…aEda94 (EVM), TUEZSdKs…GWYdH (Tron), HAgk14Jp…DKpqk (Solana), 1LqBGSKu…eabA, 37VucYSa…hgf, bc1qcr8t…6fyu and bc1p5cyx…drcr (Bitcoin), the published reference values. View scan.mjs

Also covered in the agent playbook

  • Missing or mistyped word (checksum brute force)
  • Forgotten BIP39 passphrase (25th word) via btcrecover + your own hints

Ask your agent: recovery_guide with situation=seed-phrase, missing-word or passphrase. It returns the full reference code in-context.

Use this in your agent

“I have a 12-word phrase on paper. Help me scan addresses offline, then find my money.”
Set this up for my agent

Next: secure signing guide · all recovery options · find stuck money