Stablecoins UX Best Practices
Let Users Choose Chain — but Only When It Adds Value
Default to a recommended chain (e.g., Tron or BSC) based on speed and fee efficiency
If advanced users want control, expose a "Select Network" dropdown with:
Network name (e.g., Solana (SPL))
Token type (e.g., USDT)
Estimated fee (e.g., ~$0.01)
Average confirmation time (e.g., ~10s)
Educate the user at the moment of decision, not in a separate guide.
Always Show Status Clearly
For every transfer or deposit:
Show “Pending” with a live progress bar (e.g., “6/15 confirmations”)
Auto-update to “Confirmed” when Bitnob emits the webhook
On failure (transfer.failed), surface:
Error summary (e.g., "Transaction reverted. Try again with a higher gas limit.")
Reference ID for support
Option to retry or contact support
Transaction feedback is critical. Never leave users in a “did it work?” state.
Display Fees Transparently
Before submitting a send:
You’re sending: $100 USDT
Network: Polygon (USDT)
Estimated Network Fee: $0.02
You will be charged: $100.02
After confirmation:
Display amount, centFees, chain, txHash
Let users click to view the transaction in a block explorer
Reuse the Reference Field for Trust & Transparency
Show users their reference when initiating a send
Reuse the same reference in receipts, webhooks, logs, and support tickets
Encourage merchants to share that reference with customers when automating payouts
This improves user trust and makes internal debugging much faster.
Surface the Chain and Token Format
Always show:
Chain (e.g., Ethereum)
Token format (e.g., ERC-20)
Wallet address format (e.g., 0x..., T..., 3...)
Warn users:
QR Code Generation
For deposits:
Show a QR code containing:
The blockchain address
Optionally: metadata (e.g., chain type in the URI)
Label it clearly:
“Scan to send USDT on Tron (TRC-20)”
Mobile UX
Use action sheets for selecting chain/token Include touch-friendly copy buttons for wallet addresses
Show transaction history with clear icons:
Received → Green
Sent → Red
Pending → Yellow
Error and Edge Case UX
If a user sends to the wrong address or chain:
Don’t promise recovery
Offer an “Unverified Deposit” view for manual follow-up with support
Surface a support contact flow with:
txHash
address used
chain and token
Real-Time Alerts
Integrate Bitnob webhooks with:
Toasts/snackbars on successful deposits or transfers
In-app notifications
Email/SMS if applicable for higher-value transfers