All chains, one CLI
42 small Unix tools that read wallet files and seed phrases, derive addresses, and build, check and sign transactions, offline. Pipe them together. No browser, no wallet app.
blocktools-v0.1.1-linux-x86_64.tar.gz Β· 35.2 MB Β· Linux x86_64, glibc 2.34+ (sealed-run needs 2.39+) Β· verify with SHA256SUMS Β· no macOS, Windows or ARM build yet (platforms)
gh release download v0.1.1 -R TSavo/blocktools

SwapChan's developer tools are built on it. Here's the tour.
$ ./blocktools run 'classify /in/seed.txt' β¦"class":"mnemonic"β¦ $ ./blocktools run 'seed-repair < /in/seed.txt | seed-to-master | derive --chain btc --count 1' β¦1LqBGSKuX5yYUonjxT5qGfpUsXKYYWeabAβ¦ β¦bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyuβ¦ # key fields print as [REDACTED]
Commands and expected addresses from the repo's Getting started; CI checks these values. Output trimmed to the checked fields.
A Swiss Army knife for every chain
One tool, many chains
Bitcoin and its forks, Ethereum and EVM, Solana, Tron, XRP, Cosmos, Cardano, Polkadot, TON and older Bitcoin forks, each marked in the chain table with what is built.
Runs on your machine
A local CLI. Pipelines that touch a secret run sealed: no network, read-only filesystem, all capabilities dropped.
Open source (MIT)
Source, 44 man pages and the recipes are on GitHub, so you can read it before you trust it.
Secrets stay local
Passwords live in ./secrets, never on the command line. Key fields print as [REDACTED].
It's a set of tiny blades: each tool does one job and speaks JSON lines, so you snap them together with pipes.
What's in the box
- Wallet readers. wallet.dat, Ethereum keystores, Electrum, MultiBit, Armory, BIP38 and seed phrases (typos repaired).
- Address derivation. derive, key-to-addresses and xpub-addresses across the chain table.
- Transactions. tx-build, tx-verify, tx-sign and tx-broadcast, with policy files that cap destinations, amounts and fees.
- Node RPC. rpc talks to EVM, bitcoind, Solana, Tron, Cosmos, Esplora and Blockbook, refusing key-export and wallet-signing methods by default.
- Sealed runs. ./blocktools run in Docker with --network none; only ./blocktools reveal, at a real terminal after a typed code, prints keys. reveal runs through the same sealed Docker flow, so it needs a source checkout.
- Library and wasm. A Rust library and a wasm build: the same code that powers SwapChan's web tools and MCP.
Two ways in
Release download (Linux x86_64)
Download, check the checksum, unpack, add to PATH.
gh release download v0.1.1 -R TSavo/blocktools sha256sum -c SHA256SUMS tar xzf blocktools-v0.1.1-linux-x86_64.tar.gz cd blocktools-v0.1.1-linux-x86_64 export PATH=$PWD/bin:$PATH MANPATH=$PWD/share/man: man blocktools
If sha256sum -c does not say OK, stop.
Build from source
Rust plus Docker; the last step builds the sealed image.
git clone https://github.com/TSavo/blocktools && cd blocktools cargo build --locked --release --workspace ./blocktools build
From zero to addresses in four steps
- 1
Make the folders and add the public test phrase
./in is mounted read-only as /in inside the sealed run. Never use a real seed to practise.
mkdir -p in secrets printf '%s\n' 'abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about' > in/seed.txt
- 2
Ask what the file is
classify answers "class":"mnemonic".
./blocktools run 'classify /in/seed.txt'
- 3
Derive addresses
Repair, make the master key, derive the first address of each Bitcoin type.
./blocktools run 'seed-repair < /in/seed.txt | seed-to-master | derive --chain btc --count 1'
- 4
Or let the front door choose
recover.sh picks the pipeline for any file.
recipes/recover.sh /in/seed.txt - --goal addresses
Pick your path
You have an old wallet file or seed
See its addresses offline, then check balances.
You sign transactions
Decode and verify before you sign, with policy limits.
You build tools or agents
Script it in pipes, call nodes, use the library, wasm or MCP.
Everything else
Commands β
44 man pages in 4 groups (42 tools plus the wrapper and recover.sh).
Read wallets and derive addresses Β· Build, check, sign and send transactions Β· Contracts, ABI and messages Β· Chains, RPC and the sealed boundary
Recipes β
40 task how-tos by goal, input and chain.
Sweep Β· Check a balance Β· Verify offline Β· Decode a tx
Examples β
7 worked examples on public test fixtures.
Seed phrase to Bitcoin and Ethereum addresses Β· Bitcoin Core wallet.dat to addresses Β· Ethereum keystore JSON to address
Docs β
13 pages, searchable.
Getting started Β· Security Β· Chain table Β· Policy
Releases β
Latest v0.1.1, 2026-10-26.
Assets, checksums and notes
MCP and SwapChan β
17 web tools on SwapChan run on blocktools.
Connect your AI agent
All pages
Recipes (40)
- Find forgotten money across chains (blocktools + SwapChan)
- Use a chain without its wallet app (example: older coins like Feathercoin, Peercoin, Qtum)
- Simulate and verify before you sign
- Algorand
- Bitcoin
- BitConnect (BCC), an old coin as a worked example
- Cardano
- Cosmos Hub
- Ethereum (and EVM chains via --chain-id)
- Groestlcoin
- Litecoin and Dogecoin
- Old coins (Peercoin, Namecoin, Feathercoin, Novacoin, Clams, BlackCoin, ReddCoin, ...)
- Polkadot
- Qtum
- Solana
- Stellar
- TON
- Tron
- Zcash transparent (t1β¦)
- Decode a transaction before you sign or broadcast it
- Find which derivation path a wallet used
- Contract data (EVM): selectors, calldata, logs, returndata, reverts, deploy addresses
- Check whether anything is left (balance only, nothing signed)
- Move everything to a new address (sweep)
- Verify before signing, and sign on an offline machine
- Armory .wallet
- A brainwallet phrase (pre-BIP39 "passphrase -> key")
- Electrum (seed phrase or wallet file)
- Ethereum keystore JSON (UTC--... file, MyEtherWallet, Geth)
- MultiBit Classic .key export
- A raw private key (hex, WIF, base58, base64)
- A BIP39 seed phrase (12β24 words), possibly with typos
- "I don't know what this is"
- Bitcoin Core wallet.dat (and old-coin clients built on Bitcoin Core)
- A BIP32 master private key (xprv)
- An xpub/ypub/zpub or a bare address (watch-only)
- Monero
- Offline recovery guide (seed phrase or private key β addresses)
- XRP Ledger: family seed / key -> address -> sweep Payment
- Zcash shielded (Sapling) from a BIP39 mnemonic
Examples (7)
- Seed phrase to Bitcoin and Ethereum addresses
- Bitcoin Core wallet.dat to addresses
- Ethereum keystore JSON to address
- Electrum wallet file to addresses
- MultiBit Classic .key to addresses
- Armory .wallet to addresses
- Identify an unknown wallet file
Docs (14)
- Chain table
- Claims
- blocktools: design
- Exit codes (D1-14)
- Paths: RPC in, tools piped, RPC out
- Offline policy file
- Refusals and status codes
- rpc: talk to node and wallet RPC endpoints
- Security
- Cookbook (by wallet type and chain)
- Getting started
- Library API guide (Rust)
- blocktools wasm (TypeScript / JavaScript)
- FAQ

All chains, one CLI
Open source (MIT), runs on your machine. Get v0.1.1 or read the source first.