Goal
Each end user has a durable deposit address. When they send crypto, you credit their in-app balance after ZBX confirms the payment via signed webhooks.1. Foundation
- Create virtual account with chains/currencies you support
- Store API key + request signing secret
- Implement webhook signature verification
2. On user signup
Generate a deposit address for each chain you show in the UI:address → user_id → chain_id in your database.
3. Wallet UI
- Show address (and QR) only for the selected network
- Copy labels from Networks and Currencies
- Warn that wrong-chain or wrong-token transfers may be unrecoverable
4. Webhook credit rule
On verifiedPayment.Updated (or related payment event) with a successful status:
- Map payment customer / reference back to your user
- Idempotently apply ledger credit by payment id
- Optionally notify the user
5. Balances and ops
- Merchant balances:
GET https://mapi.zbx.boomfi.xyz/v1/accounts/virtual/balances - Dashboard:
https://merchants.zbx.boomfi.xyz/dashboard/accountand transactions - Failed webhooks: Event History and Replay
6. Withdrawals / payouts (optional)
If users can cash out, use the virtual-account payout API (POST /accounts/virtual/payout/address with request signing) and apply your own risk controls.