Bitcoin Wallet Address Generation Explorer

Interactive walkthrough from random entropy to mnemonic, wallet seed, and hierarchical child/grand-child addresses (BIP39 + BIP32 + Bech32 P2WPKH).

Step 1: Generate Entropy (128-bit or 256-bit) and Mnemonic Words

Choose 128-bit (16 bytes) or 256-bit (32 bytes) entropy, append checksum bits, split into 11-bit groups, and map each group to BIP39 words (12 or 24 words).

Step 2: Generate 512-bit Wallet Seed with PBKDF2-HMAC-SHA512

Use password = mnemonic (NFKD) and salt = "mnemonic" + passphrase (NFKD). NFKD is Unicode normalization so equivalent text maps to consistent bytes; c is the PBKDF2 iteration count (2048); dkLen is the derived-key output length (64 bytes). HMAC_SHA512(key,m) is a Message Authentication Code (MAC) constructed using the cryptographic hash function SHA-512 together with a secret key.

Step 3: Derive Three Child Addresses and Paths

From the seed, derive BIP84 external chain paths m/84'/0'/0'/0/0..2 and encode each compressed pubkey as a mainnet P2WPKH address.

Step 4: Derive Three Grand-child Addresses (Next Level)

For each child path from Step 3, derive one deeper path by appending /0, then compute three grand-child addresses.

Step 5: Create Wallet Public Key (xpub/zpub)

Derive account node m/84'/0'/0', choose version format (xpub or zpub), serialize fields, append checksum, and Base58Check-encode.

Step 6: Derive Addresses from Wallet Public Key (xpub/zpub)

Copy the wallet public key from Step 5 into the editable box (supports xpub/zpub), then derive addresses using public derivation only. Step-by-step details are shown for the first address, followed by the first three addresses table.