Permanent per-customer deposit addresses, derived on your own BIP-44 branch. Every payment to that address is attributed to the customer automatically. For exchanges, custom wallets, fan deposits, recurring top-ups.
POST /v1/payment/static-address with external_user_id and coin.INITm/44'/coinType'/merchantIndex'/0/userIndex. First call for that user mints a new index.DERIVEDexternal_user_id.LIVE// Mint-or-return the USDT-TRC20 deposit address for customer "user_12345". curl https://orbchain.io/v1/payment/static-address \ -H "merchant_api_key: mk_live_…" \ -H "Content-Type: application/json" \ -d '{ "external_user_id": "user_12345", "coin": "USDT_TRC20", "callback_url": "https://shop.example/webhooks/deposits" }' // → 200 OK (same response for every subsequent call, same user, same coin) { "address": "TXN7…9qF", "coin": "USDT_TRC20", "external_user_id": "user_12345", "qr_payload": "tron:TXN7…9qF", "derivation_path": "m/44'/195'/42'/0/7" }
// When a customer pays their static address, YOU receive this: { "event": "deposit.confirmed", "event_id": "01H8KP9M3FRA8YTVKX6ZBN4AX2", "external_user_id": "user_12345", "coin": "USDT_TRC20", "tx_hash": "0xabc…def", "amount": "120.000000", "amount_usd": "120.00", "net_usd": "119.52", "confirmations": 3, "confirmed_at": "2026-04-20T18:45:12Z" } // Verify: HMAC-SHA256(webhook_secret, raw_body) == X-Signature header
No — one address per (user, coin) pair. user_12345 gets a dedicated USDT_TRC20 address, a dedicated BTC address, a dedicated ETH address, etc. Each derives on its coin's BIP-44 path.
OrbChain handles memo-based coins by returning a shared address + a unique memo/tag in the response. Every deposit to that address+memo is attributed to the right user.
Monero uses sub-addresses — one primary wallet per merchant, one sub-address per user. Same API contract, same attribution.
Yes — call the endpoint at signup time with your internal user id; OrbChain mints + returns the address immediately. You can display it on the user's dashboard before any deposit lands.
Static Address deposits fire both a V1 deposit webhook (HMAC-SHA256, includes external_user_id) and a V2 payment.paid webhook (HMAC-SHA512, deterministic event_id). Listen to whichever matches your stack.
Idempotent API. Derived on your branch. No KYC, no custody, 0.4% flat on settled volume.