One API issues deposit addresses across TRON, BNB Chain, Ethereum, Polygon and Arbitrum — HD-derived per client, confirmed on-chain, delivered by webhook. Payouts are coming soon.
Deposits work without an account or key. Register optionally to attribute them to your cabinet and see full statistics.
POST /deposit-address with callbackUrl and forwardAddress — no API key, no account needed. Add your x-api-key and the address is tied to your cabinet with full stats.
trc20/usdt, bep20/usdt, erc20/usdt — one request shape across TRON, BNB Chain, Ethereum, Polygon and Arbitrum.
After confirmations clear, funds sweep to your forwarding address. You hold the destination; we never keep a merchant balance.
Pending and confirmed callbacks to your URL, with GET status/transactions as the reliable fallback if a delivery retries.
Percent plus a flat component priced off network cost. Min. value and est. fee listed per coin on the Networks page.
Optional cabinet + API key: attribute deposits to your account for complete statistics. Withdrawals are coming soon: 0% token fee, network gas from your own gas-station wallet.
No pre-registration for deposits — every address is get-or-created per request, tracked by our own scanners, and confirmed against each chain's own threshold.
Pass a chain, ticker and your callback URL. Get back a fresh HD-derived address, reused for every future deposit to the same reference.
POST /deposit-address
{ "chain":"tron", "ticker":"trc20/usdt" }A native block-walker on TRON and an event listener on BNB Chain match the incoming transfer and start counting confirmations.
GET /deposit-address/:id/status
→ "confirmations": 14Once the threshold clears, funds move to your forwarding address and your callback fires — retried with backoff if it doesn't answer.
POST callbackUrl
{ "status":"confirmed" }# create a deposit address curl -X POST \ https://api.chainpay.site/deposit-address \ -d '{ "ticker": "bep20/usdt", "forwardAddress": "0xYourWallet…", "externalReference": "order-123", "callbackUrl": "https://you.io/hook" }'