How one BTC wallet can have multiple addresses at the same time

Feb. 10, 2026 by John Rei Enriquez

AI BTC Explainer Wallet

Shows how addresses are derived for a Bitcoin wallet

Non-Custodial Wallet Addresses Explained

πŸ” Non-Custodial Wallet Addresses

Understanding how one wallet can have multiple addresses simultaneously

🌱 Master Seed
witch collapse practice feed shame open despair creek road again ice least

This single seed phrase generates ALL your addresses using deterministic derivation (BIP-44 standard).

Path: m/44'/0'/0'/0/[index]

Generated Addresses

βœ… Key Answers to Your Questions:

  • Multiple addresses at once: YES! You can have many addresses active simultaneously. They all belong to the same wallet.
  • Address reuse: Addresses CAN be reused, but it's not recommended for privacy reasons.
  • When are new addresses created: It's not sequential per transaction. You can generate addresses anytime, even before using previous ones.
  • All addresses remain valid: Old addresses continue to work forever and can receive funds at any time.

🎯 Hierarchical Deterministic (HD)

One seed generates unlimited addresses using mathematical derivation. Each address has a unique index number.

πŸ”’ Privacy Benefits

Using different addresses for each transaction makes it harder to track your total balance and transaction history.

♾️ Always Accessible

All addresses remain active forever. You can receive funds to any generated address at any time, even years later.

πŸ“ Address Length & Format

  • Bitcoin addresses DO have character limits - they're not unlimited length!
  • Legacy (P2PKH): 26-35 characters, starts with "1"
  • SegWit (P2SH): 34 characters, starts with "3"
  • Native SegWit (Bech32): 42 characters, starts with "bc1q"
  • Taproot (Bech32m): 62 characters, starts with "bc1p"
  • Different formats have different fixed or limited lengths based on the address type and encoding scheme.

πŸ”— How Derivation Paths Point Back to the Master Seed

The magic of HD wallets: The derivation path doesn't "point back" in the sense of storing a reference. Instead, it's a mathematical one-way function that can be reproduced deterministically.

  • Step 1: Master seed β†’ Master private key (using HMAC-SHA512)
  • Step 2: Master key + derivation path (m/44'/0'/0'/0/0) β†’ Child private key
  • Step 3: Child private key β†’ Public key (using elliptic curve cryptography)
  • Step 4: Public key β†’ Bitcoin address (using hashing + encoding)

The key insight: Given the same seed and the same derivation path, you'll ALWAYS get the same address. The wallet doesn't need to store addresses - it can regenerate them on demand using: seed + path β†’ address

Recovery: This is why you can recover your entire wallet with just the seed phrase. The wallet software tries standard derivation paths (m/44'/0'/0'/0/0, m/44'/0'/0'/0/1, etc.) and regenerates all your addresses.

πŸ”„ Visual: Seed to Multiple Addresses

🌱
Master Seed
β†’
Path: m/44'/0'/0'/0/0
bc1q7x9f2...
Path: m/44'/0'/0'/0/1
bc1qa3k8m...
Path: m/44'/0'/0'/0/2
bc1qw5n2p...

Same seed + different path index = different address (but always reproducible!)

πŸ—ΊοΈ Understanding the Derivation Path: m/44'/0'/0'/0/[index]

This isn't a "seed path" - it's a derivation path that tells the wallet how to derive child keys from the master seed. Each part has a specific meaning:

m / 44' / 0' / 0' / 0 / 0
m
Master key
(root)
44'
Purpose
(BIP44 standard)
0'
Coin type
(0 = Bitcoin)
0'
Account
(1st account)
0
Chain
(0=external/receive)
0,1,2...
Address index
(increments)
  • The apostrophe ('): Means "hardened" derivation - more secure, can't derive public keys without private key
  • Coin type examples: 0' = Bitcoin, 60' = Ethereum, 2' = Litecoin
  • Account: Lets you have separate "accounts" within one wallet (like bank sub-accounts)
  • Chain: 0 = external (receiving addresses), 1 = internal (change addresses)
  • Index: The part that changes to generate different addresses (0, 1, 2, 3...)

So when you generate multiple addresses, only the last number (index) changes. The path m/44'/0'/0'/0/0 gives you address #1, m/44'/0'/0'/0/1 gives you address #2, and so on. Same seed + different index = different address!

πŸ’° How Your Wallet Shows Your Total Balance

Yes! Your wallet scans the blockchain and aggregates everything. Here's how it works:

The Scanning Process:

  1. Derive addresses: Starting from index 0, the wallet generates addresses (m/44'/0'/0'/0/0, m/44'/0'/0'/0/1, etc.)
  2. Check each address: Query the blockchain to see if each address has any transaction history
  3. Keep scanning: Continue until it finds 20 consecutive unused addresses (the "gap limit")
  4. Aggregate balances: Add up all the UTXOs (Unspent Transaction Outputs) from all addresses
  5. Display total: Show you one combined balance in the wallet interface

Example Scenario:

Address 0: 0.5 BTC
Address 1: 0.3 BTC
Address 2: 0.0 BTC (empty)
Address 3: 0.2 BTC
Address 4-23: 0.0 BTC (20 consecutive empty = stop scanning)
Total Balance: 1.0 BTC
  • Your wallet is essentially a scanner + calculator: It doesn't actually "hold" your coins. It derives addresses from your seed, scans the blockchain for their transactions, and adds up the balance.
  • The blockchain is the source of truth: Your coins aren't "in" your wallet - they're on the blockchain at various addresses. Your wallet just has the keys to control them.
  • Recovery process: When you restore a wallet from seed, it does this entire scanning process to rediscover all your addresses and balances.
  • Gap limit: The standard is 20 unused addresses. If you somehow used address #0, then skipped to #50, a restored wallet might miss #50 because it stopped scanning at #20.

πŸ” Fun fact: This is why wallet restoration can take a few minutes - your wallet software is deriving hundreds of addresses and checking each one against the blockchain to find your transactions!

Back to Blog Posts