Minimal CLI wallet for Spark.
yarn installyarn run createyarn run infoyarn run deposityarn run balanceyarn run sendyarn run withdrawLaunch the interactive menu-driven interface:
yarn startView your transaction history:
yarn run historyMonitor incoming transfers in real-time:
yarn run monitorSwitch between MAINNET and REGTEST networks:
yarn run networkThunder supports two networks:
- MAINNET (sp) - Production network
- REGTEST (sprt) - Local testing network
Network configuration is stored in .spark-config.json and can be changed using the network script or by setting the SPARK_NETWORK environment variable.
Thunder supports withdrawing Bitcoin from your Spark wallet to any Bitcoin address:
- Minimum Amount: 10,000 sats minimum withdrawal
- Exit Speed Options: Choose between SLOW, MEDIUM, or FAST confirmation speeds
- Network Validation: Ensures Bitcoin address matches current network (mainnet/regtest)
- Balance Checking: Verifies sufficient balance before withdrawal
- Fee Transparency: Clear warnings about withdrawal fees
- SLOW: Lower fees, 6-12 blocks confirmation time
- MEDIUM: Balanced fees, 3-6 blocks confirmation time
- FAST: Higher fees, 1-3 blocks confirmation time
yarn run withdrawThe withdrawal process will:
- Check your current balance
- Prompt for withdrawal amount (minimum 10,000 sats)
- Request destination Bitcoin address
- Validate address format and network compatibility
- Allow selection of exit speed (fee tier)
- Show confirmation summary with warnings
- Process withdrawal and provide transaction ID
- Withdrawal fees are deducted from the withdrawal amount
- Withdrawals cannot be undone once confirmed
- Ensure the destination address is correct before confirming
- Network compatibility warnings should be heeded
Thunder includes comprehensive address validation:
Spark Address Validation:
- Validates bech32m address format
- Checks network compatibility (MAINNET vs REGTEST)
- Rejects unsupported network addresses (testnet, signet, liquid)
- Provides clear error messages for invalid addresses
Bitcoin Address Validation:
- Supports all standard Bitcoin address formats (P2PKH, P2SH, Bech32, Bech32m)
- Network-aware validation (mainnet vs regtest)
- Validates address format before withdrawal operations
- A
wallet.jsonfile is created. Delete it to reset. - STORE THE SEED SAFELY AND NEVER SHARE IT.
- Network configuration is stored in
.spark-config.json - Transfer logs are stored in
logs/thunder.log
- This is experimental software. Use at your own risk.
- Do not trust random code from the internet with real funds.
- Verify the code yourself before use. Keep your SATS safe.