Old coins (Peercoin, Namecoin, Feathercoin, Novacoin, Clams, BlackCoin, ReddCoin, ...)
blocktools encodes addresses and WIF for every row in derive --list-chains (each row is checked against an outside key-1 vector from…
blocktools encodes addresses and WIF for every row in derive --list-chains (each row is checked
against an outside key-1 vector from scripts/kat-chains.py). Offline sweep builds (tx-build) exist for every row whose
Sign column in docs/CHAINS.md is not none. recipes/recover.sh automates sweep only for btc/ltc/doge/eth; for the
other chains, build from a UTXO list as shown below.
./blocktools run 'key-to-addresses --chain ppc,nmc,ftc,rdd < /in/key.hex'
recipes/recover.sh /in/key.hex - --chain ppc
Every other old-coin row, key 1 (uncompressed p2pkh, as old clients made them; vectors from scripts/kat-chains.py):
./blocktools run 'key-to-addresses --chain nvc,clam,blk,qrk,xpm,dash,vtc,dgb,via,mona,rvn,trc,mec,aur,bch,bsv,btg,pot < /in/key.hex'
(trc/bch/bsv share Bitcoin's 1... form; dgb shares Dogecoin's D... form; pot shares Peercoin's P... form. Check
"chain" on each line.)
Potcoin (pot): NOT BUILT. Its source (Reddcoin-style PoSV) puts nTime after locktime for version > 1, but no explorer for the current chain was reachable (chainz pot hosting expired; explorer.potcoin.com failed TLS), so there is no mainnet tx to verify the layout against. Import the key into a Potcoin wallet instead.
Sweep a PoS coin (Peercoin-style nTime: ppc, nvc, clam, rdd)
The unsigned tx carries a timestamp: pass --time UNIX (now, give or take, for the network to accept it). Key 1 -> key 2,
one 0.01 PPC output in a UTXO list (on a real recovery utxo-fetch or an explorer gives you this list):
./blocktools run 'tx-build --chain ppc --utxos /in/u-ppc.json --to P9CXqzQyLNguvGoLDeuGx28QZjotMoQcCZ --sweep --fee-rate 5 --time 1792800000 | tx-decode --chain ppc'
./blocktools run 'tx-build --chain nvc --utxos /in/u-nvc.json --to 4EKBZtQRxtujUuFG4wFJA8LRz2hYwxn6V4 --sweep --fee-rate 5 --time 1792800000 | tx-decode --chain nvc'
./blocktools run 'tx-build --chain clam --utxos /in/u-clam.json --to x8uzatrbZAgkypESE4DQiJSvB6wEgP1hTz --sweep --fee-rate 5 --time 1792800000 | tx-decode --chain clam'
./blocktools run 'tx-build --chain rdd --utxos /in/u-rdd.json --to RZE9keChbTUApsdrNAuBrmm8LmMYdn63TB --sweep --fee-rate 5 --time 1792800000 | tx-decode --chain rdd'
Check the destination before signing:
./blocktools run 'tx-build --chain ppc --utxos /in/u-ppc.json --to P9CXqzQyLNguvGoLDeuGx28QZjotMoQcCZ --sweep --fee-rate 5 --time 1792800000 | tx-verify --chain ppc --expect-to P9CXqzQyLNguvGoLDeuGx28QZjotMoQcCZ'
Sweep BlackCoin, Primecoin, Quarkcoin (plain Bitcoin layout)
BLK dropped nTime (its tx layout is Bitcoin's; 3 mainnet vectors). XPM's fees are large per byte; see CHAINS.md.
./blocktools run 'tx-build --chain blk --utxos /in/u-blk.json --to B54SJjUL2xndPGcjV4uiQFxogc5b3eMhts --sweep --fee-rate 5 | tx-decode --chain blk'
./blocktools run 'tx-build --chain xpm --utxos /in/u-xpm.json --to AGPELWskcbrskQLZSEF5S1RERbZhgaS6Ep --sweep --fee-rate 5 | tx-decode --chain xpm'
./blocktools run 'tx-build --chain qrk --utxos /in/u-qrk.json --to QMDLoKJqTv5YNaDbHuuEQPwmTFaiaKHJVp --sweep --fee-rate 5 | tx-decode --chain qrk'
UNVERIFIED: the QRK tx format. No non-coinbase QRK tx turned up in 800 recent blocks, so the build assumes the Bitcoin legacy layout. Test a small amount first.
Signing (tx-sign, human-typed code on /dev/tty) can't run inside recipe-check. scripts/e2e.d/sweep-alt.sh covers
build -> verify -> sign -> decode against a 127.0.0.1 mock chain (key 1). Every builder is checked against real mainnet txs
in crates/tx/tests. UNTESTED: whether each network accepts the result (min relay fee, nTime window).
From an old client's wallet.dat: see input-wallet-dat.md ("Old-coin clients").
Other routes: a human can import the key into that coin's own client (./blocktools reveal shows the coin's WIF).
NOT BUILT: broadcast for these chains (tx-broadcast covers btc/ltc/doge/eth backends), Zcash shielded spends. See
docs/ROADMAP.md.