Generate HD Wallet Addresses

Poof's HD wallet infrastructure lets developers generate infinite unique crypto deposit addresses per wallet using secure XPUB-based derivation, ideal for scalable payment processing and privacy. All addresses are programmatically generated, tracked, and flushable back to a root wallet for streamlined treasury and settlement workflows.

๐Ÿ“ฅ Receiving Payments: Infinite Unique Addresses per Wallet

The "Select Address to Receive" screen allows users to choose a specific crypto asset and address to receive payments into their wallet.

This page is Poofโ€™s frontend wallet interface โ€” designed to look and feel like a simple crypto wallet (think: Exodus, Phantom, MetaMask). It gives users a clean, intuitive way to:

  1. View balances across chains
  2. Send and receive crypto
  3. Track transactions
  4. Access addresses and memos/tags
  5. Swap and convert tokens (coming soon in licensed states)

But hereโ€™s the key: Itโ€™s just the frontend. Everything you see on that page is powered by backend APIs โ€” and available to developers, platforms, and businesses.

But whatโ€™s happening behind the scenes is even more powerful: Each wallet created in Poof is a Hierarchical Deterministic (HD) Wallet, which means you can generate an infinite number of unique deposit addresses โ€” all tied to the same wallet.

Hierarchical Deterministic (HD) Wallets

  1. Each asset (BTC, ETH, XRP, etc.) has its own XPUB (Extended Public Key).
  2. Every time a user wants to receive crypto, Poof derives a new address by incrementing the HD path (e.g. m/44'/0'/0'/0/index).
  3. This ensures no address reuse, improving both privacy and traceability.

โœ… Why This Matters:

  1. Every address is unique and chain-specific โ€” ideal for payment processing and tracking
  2. UTXO-based chains (like Bitcoin or Litecoin) will automatically handle multiple inputs per wallet
  3. Non-UTXO chains (like Ethereum or Solana) treat index 0 as the primary address, but you can still rotate for added obfuscation and accounting.

โš ๏ธ Special Case Chains: XRP, Cosmos, and Others with Destination Tags

Some blockchain networks โ€” including XRP (Ripple), Cosmos (ATOM), Stellar (XLM), and others โ€” work differently from Bitcoin, Ethereum, and similar HD wallet-based systems.

Instead of allowing the generation of unique addresses for each payment, these chains:

  1. Use a single shared wallet address
  2. Rely on a destination tag, memo, or reference ID to identify the specific user or payment

๐Ÿ”‘ Why No HD Derivation?

  1. These networks were not designed for address derivation or rotation like BTC/ETH.
  2. The blockchain itself does not support infinite address generation โ€” only a single wallet per account.
  3. Instead, each transaction must include a destination tag (XRP), memo (Stellar, Cosmos), or similar identifier to route the payment internally.

๐Ÿงฌ XPUB Management & Derivation

Poof stores a secure XPUB per chain for each wallet, allowing it to:

  1. Derive new addresses on demand
  2. Associate them back to your root wallet
  3. Monitor all balances and transactions seamlessly

๐Ÿงน Flush Function: Consolidate Funds

Once youโ€™re done receiving payments to multiple addresses, you can call a flush() function:

  1. This sweeps funds from all derived addresses back to index 0 (your main/root address).
  2. Useful for consolidating before a payout, treasury action, or reporting cycle.
  3. Keeps wallets lean and efficient without losing transaction history.

๐ŸŒ Recap

๐Ÿ”ข You can generate unlimited addresses per wallet for clean, trackable payments.

๐Ÿ” All addresses are derived from secure XPUBs, with no need to store private keys client-side.

๐Ÿงผ You can flush funds back to your main address anytime โ€” programmatically.

๐Ÿ“ˆ This system is ideal for businesses processing high volumes of transactions or wanting strong privacy and traceability.