Why dedicated deposit addresses are useful
A unique address per customer, account or payment context can turn an anonymous chain transfer into a deterministic product signal. It reduces dependence on memo fields and manual transaction-hash matching, but only if the address lifecycle is connected to a canonical wallet registry and internal ledger.
Choose the allocation unit
Common strategies include one address per customer, per account, per invoice/payment intent or per network. Reusing addresses reduces wallet-count complexity but can make attribution and privacy harder. One-time addresses simplify matching but increase operational scale and sweep requirements.
Canonical data model
DepositAddress
- walletId
- address
- network
- ownerType / ownerId
- purpose
- status
- providerRef
DepositTransaction
- txHash
- logIndex
- asset
- amount
- observedAt
- finalityState
- matchedIntentId
- ledgerEntryIdObservation must be replayable
Do not rely on one webhook or one RPC subscription. Persist checkpoints, use idempotent transaction identifiers and support replay/backfill. Token transfers may be represented as contract events rather than native transactions, so validate contract address, network and amount explicitly.
Finality before credit
Separate DETECTED, VALIDATED, CONFIRMING, FINAL and CREDITED. The number of confirmations or finality signal depends on the selected network and risk policy.
Deposit is separate from sweep
A valid customer deposit should remain valid even if a later treasury sweep fails. Model treasury as a downstream operation: UNSWEPT → QUEUED → SUBMITTED → CONFIRMED, with its own retries and incident queue.
Gas and token movement
ERC-20 style deposits may require native gas to move funds from deposit wallets unless the provider/account model supports sponsored or alternative execution. This must be included in treasury architecture and cost modelling.
USDC payment integration
For invoices and commerce, dedicated addresses work best behind a payment intent that defines the expected commercial amount, accepted network, expiry and customer context. The product should credit based on validated business rules, not simply because USDC appeared at an address.
When to use a managed gateway instead
If the business mainly needs “customer pays crypto, merchant receives settlement”, a managed provider may be simpler. Dedicated addresses become strategic when deposit identity, balances, treasury or native on-chain behavior are part of the product.