A Rusty little crab guarding your sats — Bitcoin TUI wallet written in Rust.
Crabllet is an educational Bitcoin wallet with a Terminal User Interface. The goal is to understand Bitcoin cryptography from the ground up: entropy generation, key derivation, address creation, and light wallet protocols.
Status: Work in progress (Phase 1)
Target: Testnet only — never use with real funds during development.
- BIP-39 mnemonic generation (12 or 24 words)
- Cryptographically secure entropy generation
- Modular architecture (crypto separated from UI)
- Passphrase support (BIP-39)
- Seed derivation from mnemonic
- BIP-32 HD key derivation
- Bitcoin address generation (P2WPKH, P2PKH)
- Electrum server connection
- Balance and transaction queries
- Terminal User Interface
- Encrypted wallet persistence
- Rust 2024 edition (install via rustup)
# Clone the repository
git clone https://github.com/KyraLabs/crabllet.git
cd crabllet
# Generate a 12-word mnemonic
cargo run
# Generate a 24-word mnemonic
cargo run -- 24crabllet/
├── src/
│ ├── main.rs # Entry point, CLI interface
│ └── crypto/
│ ├── mod.rs # Module exports
│ └── mnemonic.rs # BIP-39 mnemonic generation
├── docs/
│ └── crabllet-planning.md # Development phases and planning
├── Cargo.toml
└── README.md
src/
├── main.rs # Entry point, TUI initialization
├── lib.rs # Public API, re-exports
├── crypto/
│ ├── mod.rs
│ ├── mnemonic.rs # BIP-39 mnemonics
│ └── keys.rs # BIP-32 key derivation
├── wallet/
│ ├── mod.rs
│ └── address.rs # Address generation
├── network/
│ └── electrum.rs # Electrum protocol client
└── tui/
├── mod.rs
└── screens/ # TUI screens and widgets
| Phase | Description | Status |
|---|---|---|
| 0 | Project foundation and setup | Done |
| 1 | Entropy and BIP-39 mnemonic generation | In Progress |
| 2 | BIP-32 HD key derivation | Pending |
| 3 | Bitcoin address generation | Pending |
| 4 | Electrum network connection | Pending |
| 5 | Balance and transaction queries | Pending |
| 6 | Basic TUI implementation | Pending |
| 7 | Secure wallet persistence | Pending |
See docs/crabllet-planning.md for detailed phase descriptions.
| Crate | Purpose |
|---|---|
bip39 |
BIP-39 mnemonic encoding/decoding |
rand |
Cryptographically secure random number generation |
hex |
Hexadecimal encoding for debugging |
- BIP-39: Mnemonic code for generating deterministic keys
- BIP-32: Hierarchical Deterministic Wallets
- BIP-84: Derivation scheme for P2WPKH
MIT License — see LICENSE for details.
This is an educational project. Do not use with real Bitcoin. Always use testnet during development.