Skip to main content

Address Generator Tutorial: Derive Crypto Addresses

Every cryptocurrency transaction requires an address — a unique identifier that functions like a bank account number. But unlike bank accounts, crypto addresses are mathematically derived from private keys, which are themselves derived from your seed phrase. SafeSeed's Address Generator lets you perform this derivation directly in your browser, giving you complete visibility into how your wallets generate addresses and enabling you to verify that your backup seed phrase produces the expected addresses.

Try It Now

Derive addresses for 15+ blockchains at safeseed.app/tools/address-generator/ — fully client-side, works offline.

Why You Need an Address Generator

You might wonder: if your wallet already generates addresses, why would you need a separate tool? There are several compelling reasons.

Wallet Verification

When you set up a hardware wallet with a seed phrase, you trust that the device correctly derives addresses from that seed. But how do you know? The Address Generator lets you independently verify the derivation. Enter your seed phrase into SafeSeed (on an air-gapped machine) and confirm that the addresses match what your hardware wallet shows.

Wallet Recovery

If your hardware wallet is lost or damaged, you need to recover your funds using your seed phrase. But what if the new wallet software you use generates different addresses? Different wallets may use different derivation paths (BIP-44, BIP-49, BIP-84). The Address Generator helps you explore different paths to find where your funds are.

Pre-Generating Receiving Addresses

For privacy-conscious users, you may want to pre-generate a batch of receiving addresses from your seed without connecting your hardware wallet. The Address Generator can produce a list of addresses along a derivation path, which you can then share as needed.

Watch-Only Wallets

By entering an extended public key (xpub/ypub/zpub) instead of a seed phrase, you can derive addresses without ever exposing your private keys. This is the foundation of watch-only wallets that can monitor balances and generate receiving addresses but cannot spend funds.

Understanding Address Derivation

Before diving into the tool, it helps to understand the underlying concepts.

From Seed to Address

The journey from seed phrase to address follows a well-defined chain:

Seed Phrase (BIP-39)
↓ PBKDF2
Master Seed (512 bits)
↓ BIP-32
Master Key (xprv)
↓ BIP-44 Path
Child Private Key
↓ Elliptic Curve
Child Public Key
↓ Hash + Encoding
Address

Each step is deterministic — the same input always produces the same output. This is what makes wallet recovery possible: as long as you have the seed phrase (and know the derivation path), you can regenerate every key and address.

BIP-44 Derivation Paths

BIP-44 defines a standard structure for organizing keys:

m / purpose' / coin_type' / account' / change / address_index
LevelDescriptionExample
mMaster keyRoot of the tree
purpose'BIP standard44' (Legacy), 49' (SegWit), 84' (Native SegWit), 86' (Taproot)
coin_type'Cryptocurrency0' (Bitcoin), 60' (Ethereum), 2' (Litecoin)
account'Account index0' (first account), 1' (second account)
changeExternal/internal chain0 (receiving), 1 (change)
address_indexAddress number0, 1, 2, ...

The apostrophe (') denotes hardened derivation, which prevents child keys from being used to derive the parent key. This is a critical security feature.

Address Formats (Bitcoin)

Bitcoin has evolved through several address formats, each offering different features:

FormatPrefixPath PurposeFee LevelExample
Legacy (P2PKH)144'Highest1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
SegWit (P2SH-P2WPKH)349'Medium3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy
Native SegWit (P2WPKH)bc1q84'Lowbc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
Taproot (P2TR)bc1p86'Lowestbc1p5d7rjq7g6rdk2yhzks9smlaqtedr4dekq08ge8ztwac72sfr9rusxg3297

The Address Generator lets you select which format to derive, so you can match whatever your wallet uses.

Step-by-Step: Deriving Addresses from a Seed Phrase

Step 1: Open the Address Generator

Navigate to safeseed.app/tools/address-generator/ in your browser.

Security note: If you are entering a seed phrase that protects real funds, follow the Offline Usage Guide and use the tool on an air-gapped computer.

Step 2: Enter Your Seed Phrase

In the input field, enter your 12-word or 24-word BIP-39 mnemonic phrase. The tool validates the phrase in real-time:

  • Green indicator: Valid BIP-39 phrase (correct checksum)
  • Red indicator: Invalid phrase (word not in BIP-39 list, or checksum mismatch)

If you receive a validation error, common causes include:

  • A misspelled word (check the BIP-39 wordlist)
  • Words in the wrong order
  • A missing word
  • Extra spaces or characters

Step 3: (Optional) Enter a Passphrase

If you use a BIP-39 passphrase (25th word), enter it in the passphrase field. The passphrase fundamentally changes the derived seed, resulting in entirely different keys and addresses. If you normally use a passphrase with your wallet, you must enter it here to get matching addresses.

Leaving the passphrase empty is also valid — it generates addresses for the "default" wallet that exists without a passphrase.

Step 4: Select the Cryptocurrency

Choose the blockchain for which you want to derive addresses. The Address Generator supports 15+ blockchains:

  • Bitcoin (BTC) — with Legacy, SegWit, Native SegWit, and Taproot options
  • Ethereum (ETH) — and all EVM-compatible chains
  • Litecoin (LTC)
  • Bitcoin Cash (BCH)
  • Dogecoin (DOGE)
  • And many more (see Supported Blockchains)

Selecting a cryptocurrency automatically sets the appropriate coin_type in the derivation path.

Step 5: Choose the Address Format

For Bitcoin, select your preferred address format:

  • Native SegWit (bc1q): Recommended for modern wallets, lowest fees
  • Taproot (bc1p): Latest format, supported by most wallets in 2026
  • SegWit (3...): Compatible with older wallets
  • Legacy (1...): Maximum compatibility, highest fees

For Ethereum, there is only one address format (0x...), so this step is not applicable.

Step 6: Set the Derivation Path

The tool pre-fills the standard derivation path based on your cryptocurrency and format selections. For most users, the default is correct:

  • Bitcoin Native SegWit: m/84'/0'/0'/0/0
  • Bitcoin Taproot: m/86'/0'/0'/0/0
  • Ethereum: m/44'/60'/0'/0/0
  • Litecoin: m/84'/2'/0'/0/0

If your wallet uses a non-standard path, you can manually edit it. This is particularly useful when recovering funds from wallets that used custom derivation paths.

Step 7: Generate Addresses

Click Derive to generate addresses. The tool shows:

  • Address: The public address you can receive funds at
  • Private Key: The corresponding private key in Wallet Import Format (WIF) or hex
  • Derivation Path: The exact path used to derive this address
  • Public Key: The compressed or uncompressed public key

You can generate multiple sequential addresses by adjusting the address index. Most wallets generate addresses sequentially starting from index 0:

IndexPath (Bitcoin Native SegWit)Purpose
0m/84'/0'/0'/0/0First receiving address
1m/84'/0'/0'/0/1Second receiving address
2m/84'/0'/0'/0/2Third receiving address
.........

Step 8: Verify Against Your Wallet

Compare the derived addresses with those shown in your wallet software or hardware wallet:

  1. Open your wallet and navigate to the "Receive" section
  2. Generate a new address in the wallet
  3. Compare it with the first address (index 0) derived by SafeSeed
  4. Generate additional addresses and compare index 1, 2, etc.

If addresses match, your seed phrase backup is verified and correct. If they do not match, check:

  • Is the derivation path the same? (Different wallets use different paths)
  • Did you enter the passphrase correctly?
  • Is the address format the same? (Legacy vs. SegWit vs. Taproot)

Step-by-Step: Deriving Addresses from an Extended Public Key

For watch-only operations where you do not want to expose your seed phrase, you can use an extended public key.

What Is an Extended Public Key?

An extended public key (xpub, ypub, or zpub) is a public key at a specific level of the derivation tree that can derive all child public keys (and thus addresses) below it, without knowing any private keys.

Key TypeFormat PrefixAddress Type
xpubxpub6...Legacy (P2PKH)
ypubypub6...SegWit (P2SH-P2WPKH)
zpubzpub6...Native SegWit (P2WPKH)

Exporting Your Extended Public Key

Most wallets allow you to export your xpub/ypub/zpub:

  • Ledger Live: Settings > Accounts > (select account) > Advanced > Extended Public Key
  • Trezor Suite: Account details > Show xpub
  • Electrum: Wallet > Information
  • BlueWallet: Wallet > Settings > Show XPUB

Using the xpub in SafeSeed

  1. Paste your extended public key into the Address Generator input field
  2. The tool detects the key type and selects the appropriate address format
  3. Generate addresses starting from index 0
  4. Compare with your wallet to verify

Advantages of xpub-based derivation:

  • No seed phrase exposure — safe to use on any computer
  • Generates only public addresses (no private keys displayed)
  • Ideal for setting up watch-only wallets or monitoring tools
  • Can be shared with accountants or portfolio trackers without security risk

Limitations:

  • Cannot derive private keys (by design)
  • Privacy: anyone with your xpub can see all your addresses and balances

Practical Use Cases

Use Case 1: Verifying a Hardware Wallet Setup

You just set up a new Ledger Nano with a 24-word seed phrase. Before depositing funds:

  1. Write down the seed phrase on paper
  2. Open SafeSeed Address Generator on an air-gapped computer
  3. Enter the seed phrase
  4. Select Bitcoin > Native SegWit
  5. Derive the first 5 addresses
  6. Compare them with the first 5 receiving addresses shown in Ledger Live
  7. If all match, your seed phrase backup is correct
  8. Wipe the air-gapped computer

Use Case 2: Finding Missing Funds After Recovery

You recovered a wallet using your seed phrase, but your funds are not showing up. The wallet might be using a different derivation path.

  1. Enter your seed phrase into the Address Generator
  2. Try different paths:
    • m/44'/0'/0'/0/0 (Legacy)
    • m/49'/0'/0'/0/0 (SegWit)
    • m/84'/0'/0'/0/0 (Native SegWit)
    • m/86'/0'/0'/0/0 (Taproot)
  3. For each path, check the first few addresses on a blockchain explorer
  4. When you find addresses with balance, you know the correct path
  5. Configure your recovery wallet to use that path

Use Case 3: Generating a Batch of Receiving Addresses

You want to receive Bitcoin donations or payments but do not want to expose your hardware wallet or seed phrase:

  1. Export your zpub from your hardware wallet
  2. Enter it into the Address Generator
  3. Generate addresses 0 through 99
  4. Copy these addresses into your payment system or website
  5. Each payer gets a unique address, improving privacy
  6. Funds arrive at addresses controlled by your hardware wallet

Use Case 4: Cross-Verifying Wallet Software

You use both Electrum and BlueWallet with the same seed phrase. To verify both derive the same addresses:

  1. Enter your seed phrase into SafeSeed's Address Generator
  2. Derive addresses for the appropriate path
  3. Compare with Electrum's address list
  4. Compare with BlueWallet's address list
  5. All three should match exactly

Use Case 5: Multi-Chain Asset Management

You have one 24-word seed phrase and want to receive Bitcoin, Ethereum, and Litecoin:

  1. Enter your seed phrase
  2. Select Bitcoin > Native SegWit: note address bc1q...
  3. Select Ethereum: note address 0x...
  4. Select Litecoin: note address ltc1q...
  5. Each blockchain derives from the same seed but uses a different coin_type in the path, ensuring no collision

Understanding the Output

Address

The formatted public address for the selected blockchain. This is what you share with others to receive funds. The format depends on the blockchain and address type selected.

Private Key

The corresponding private key that can spend funds sent to the address. Displayed in WIF (Wallet Import Format) for Bitcoin-based chains or hexadecimal for Ethereum-based chains.

Never share this value. It provides complete control over the funds at the corresponding address.

Public Key

The compressed public key (33 bytes, hex) derived from the private key. The address is derived from this public key through hashing. The public key itself is not typically needed for everyday use but is important for multi-signature setups and advanced applications.

Derivation Path

The exact BIP-44/49/84/86 path used to derive this particular key pair. This is the information you need if you ever need to recover the same address using different wallet software.

Security Best Practices

When Entering a Seed Phrase

  1. Use an air-gapped computer for seed phrases protecting real funds
  2. Disconnect from the internet before entering the seed
  3. Close all other browser tabs and applications
  4. Disable browser extensions that might have clipboard access
  5. Never paste a seed phrase from your clipboard (type it manually)
  6. Clear browser data after you are done
  7. Restart the computer for maximum assurance

When Using an Extended Public Key

Extended public keys (xpub/ypub/zpub) do not expose your private keys, so they can be used on regular, internet-connected computers. However, be aware that:

  • Anyone with your xpub can derive all your addresses and see your balances
  • This is a privacy concern, not a security concern — they cannot spend your funds
  • Treat your xpub as sensitive but not secret

General

  • Do not bookmark the page with a seed phrase entered
  • Do not use autofill or password managers to store seed phrases
  • Verify the URL before entering any sensitive data
  • Check the source code if you are technically inclined — SafeSeed is open-source

FAQ

Why do different wallets show different addresses for the same seed phrase?

Different wallets may use different derivation paths. For example, Electrum uses m/84'/0'/0' for Native SegWit while some older wallets might use m/44'/0'/0' for Legacy addresses. The Address Generator lets you try different paths to match what your wallet uses. See the Key Derivation Tool Tutorial for more on derivation paths.

Can I generate Ethereum addresses from a Bitcoin seed phrase?

Yes. A BIP-39 seed phrase is blockchain-agnostic. The same 24 words can derive Bitcoin addresses (using m/44'/0'/0'/0/0), Ethereum addresses (using m/44'/60'/0'/0/0), and addresses for any other supported blockchain. The coin_type parameter in the path determines which blockchain's addresses are derived.

Is it safe to enter my seed phrase into a website?

SafeSeed runs entirely client-side — no data is sent to any server. However, the safest practice for real funds is to use the tool on an air-gapped computer with no internet connection. This eliminates the risk of browser extensions, malware, or any network-based attack intercepting your seed phrase. See the Offline Usage Guide.

What is the difference between xpub, ypub, and zpub?

These are extended public keys that correspond to different address formats: xpub for Legacy (BIP-44), ypub for SegWit (BIP-49), and zpub for Native SegWit (BIP-84). They contain the same underlying public key data but signal to wallet software which address format to derive. The Address Generator accepts all three formats.

How many addresses can I derive from one seed phrase?

Theoretically, each BIP-44 path supports up to 2^31 (about 2.1 billion) addresses per account, and you can have up to 2^31 accounts per coin type. In practice, wallets typically scan the first 20-100 addresses. The Address Generator lets you derive as many as you need by incrementing the address index.

Can I use the Address Generator to check if my seed phrase has been compromised?

You can derive your addresses and check them on a blockchain explorer. If you see unexpected outgoing transactions, your seed phrase may have been compromised. However, perform this check on an air-gapped machine — if you enter a potentially compromised seed phrase on a connected device, you are confirming it is valid and funded, which could accelerate theft.

What if the derived address does not match my wallet?

Check these common causes: (1) Wrong derivation path — try switching between BIP-44/49/84/86. (2) Wrong passphrase — ensure you are using the same passphrase as your wallet. (3) Wrong account index — some wallets use account 1' instead of 0'. (4) Wrong address format — verify Legacy vs. SegWit vs. Native SegWit. The Key Derivation Tool can help you explore the full derivation tree.

Do I need to generate a new address for every transaction?

It is a best practice to use a fresh address for each incoming transaction. This improves privacy by preventing blockchain observers from linking your transactions. Most wallet software handles this automatically (using sequential address indexes). The Address Generator can help you pre-generate a batch of addresses if needed.