Overview
This guide walks you through creating Bitcoin wallets using Dynamic’s Node SDK. You’ll learn how to set up different threshold signature schemes, choose address types, and understand the security implications for Bitcoin blockchain operations.Prerequisites
Before you begin, make sure you have:Step 1: Choose Your Security Model
Dynamic supports two threshold signature schemes for Bitcoin wallets:TWO_OF_TWO (Recommended for most use cases)
- Security: Highest - requires both your server and Dynamic’s infrastructure
- Availability: Lower - both parties must be online
- Use case: High-value transactions, maximum security
TWO_OF_THREE
- Security: High - requires 2 out of 3 shares
- Availability: Medium - can tolerate one party being offline
- Use case: Balanced security and availability
Step 2: Choose Your Address Type
Bitcoin supports multiple address types:Native SegWit (P2WPKH) - Recommended
- Prefix:
bc1q... - Algorithm: ECDSA
- Benefits: Lower transaction fees, widely supported
- Use case: General purpose, most applications
Taproot (P2TR)
- Prefix:
bc1p... - Algorithm: Schnorr (BIP-340)
- Benefits: Enhanced privacy, smart contract capabilities
- Use case: Advanced applications, privacy-focused
Step 3: Create Your First Bitcoin Wallet
Here’s a complete example of creating a Bitcoin wallet:Step 4: Handle Errors Gracefully
Always implement proper error handling for Bitcoin wallet creation:Step 5: Store Wallet Information Securely
After creating a Bitcoin wallet, you’ll receive important information that should be stored securely:Step 6: Derive the Bitcoin Address
You can also derive the Bitcoin address from a public key usingderiveAccountAddress():
Best Practices
- Password Security: Use strong, unique passwords for each Bitcoin wallet
- Error Handling: Always handle potential errors during wallet creation with the
onErrorcallback - Monitoring: Log wallet creation events for audit purposes
- Backup Strategy: Implement secure backup strategies for key shares with
backUpToDynamic: true - Address Type Selection: Choose Native SegWit for most use cases; use Taproot for advanced privacy needs
Bitcoin-Specific Considerations
Address Type Selection
Network Support
The SDK currently supports Bitcoin Mainnet only. Testnet support is planned for a future release.
Satoshis
Bitcoin uses satoshis as the smallest unit:1 BTC = 100,000,000 satoshis.