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.