Getting Started with QSBitcoin
QSBitcoin is a work-in-progress quantum-safe Bitcoin implementation. Follow these steps to test quantum-resistant addresses on testnet and regtest networks.
What is QSBitcoin?
QSBitcoin is a quantum-safe implementation of Bitcoin Core v28.0 that adds NIST-standardized post-quantum signatures while maintaining full compatibility with the Bitcoin network. It's designed to protect your assets against future quantum computer attacks.
Key Features:
- Two quantum signature algorithms: ML-DSA-65 and SLH-DSA-192f
- Unified opcodes for all quantum signatures
- Soft fork implementation - fully backward compatible
- Active on testnet and regtest networks
- Actively developed with comprehensive test coverage
Learn more about technical implementation and quantum safety features.
Step 1: Install QSBitcoin Core
Download and compile QSBitcoin Core from the official repository:
git clone https://github.com/qsbitcoin/qsbitcoin.git
cd qsbitcoin
cmake -B build
cmake --build build -j$(nproc)
Or download pre-built binaries from the releases page.
System Requirements:
- Linux, macOS, or Windows
- 4GB RAM minimum
- 25GB disk space for blockchain data
- liboqs v0.12.0+ (included in build)
Step 2: Create a Quantum-Safe Address
Once QSBitcoin Core is running, create a quantum-safe address using the RPC interface:
Using bitcoin-cli:
# Create ML-DSA address (recommended for most users)
bitcoin-cli getnewaddress "" "bech32" "ml-dsa"
# Create SLH-DSA address (for high-value cold storage)
bitcoin-cli getnewaddress "" "bech32" "slh-dsa"
Using RPC directly:
curl -X POST http://localhost:8332/ \
-H "Content-Type: application/json" \
-d '{"method": "getnewaddress", "params": ["", "bech32", "ml-dsa"]}'
The generated address looks like a standard Bitcoin bech32 address (bc1q...) but uses quantum-safe signatures internally.
Step 3: Send and Receive Transactions
Receiving:
Share your quantum-safe address with others. They can send to it using any Bitcoin wallet - the address format is standard.
Sending:
# Send from a quantum address
bitcoin-cli sendtoaddress "recipient_address" 0.001
# Create a raw transaction with quantum signatures
bitcoin-cli createrawtransaction '[{"txid":"...","vout":0}]' '{"address":0.001}'
bitcoin-cli signrawtransactionwithwallet "raw_tx_hex"
bitcoin-cli sendrawtransaction "signed_tx_hex"
Fee Considerations:
- ML-DSA transactions: ~3.3KB signatures (vs ECDSA ~71 bytes)
- SLH-DSA transactions: ~35KB signatures
- Fees are based purely on transaction size - larger signatures mean higher fees
- Use
estimatesmartfee
for fee estimates
Step 4: Advanced Usage
Check Quantum Wallet Info:
bitcoin-cli getquantuminfo
Sign Messages with Quantum Keys:
bitcoin-cli signmessage "quantum_address" "Hello, quantum world!"
Verify Quantum Addresses:
bitcoin-cli validateaddress "bc1q..."
For more technical details, see the Developer Documentation.
Join the Community
QSBitcoin is open source and welcomes contributions:
- GitHub: github.com/qsbitcoin/qsbitcoin
- Development: See how to contribute
- Testing: Help test on regtest and testnet networks
- Documentation: Improve guides and technical docs