Accepting USDT on TRC20, BEP20 and Solana
USDT exists on several blockchains, and a transfer only arrives if it is sent on the network the address belongs to. This page covers the three networks businesses in Southeast Asia meet most often, TRON (TRC20), BNB Smart Chain (BEP20) and Solana, and what to get right before you accept them.
The three USDT networks
- TRC20 (TRON): the USDT network many users in Southeast Asia already hold, largely because transfer fees are low. TRC20 addresses start with “T”.
- BEP20 (BNB Smart Chain): common among customers who hold funds on exchanges and wallets in the BNB ecosystem. BEP20 addresses start with “0x” and look exactly like Ethereum addresses, so customers can confuse the two networks.
- Solana: USDT as an SPL token on a high-throughput network with low fees, increasingly used by wallets and exchanges for stablecoin transfers. Solana addresses use a different format from TRC20 and BEP20.
How a customer pays
- 01
The checkout shows the address and the network
The deposit address is shown together with the network name, so the customer knows which network to send on.
- 02
The customer sends USDT
The customer sends USDT from a wallet or exchange on that network.
- 03
You are notified
Payment status changes are sent as webhook callbacks, and every callback is signed.
Your system updates the order when the signed callback arrives, not when the customer says they have paid.
What to get right
- Show the network next to every deposit address. A transfer sent on another network will not arrive.
- Label BEP20 explicitly as BNB Smart Chain; a “0x” address alone does not tell the customer which network to use.
- Validate the address format for each network before you accept a payout destination.
- Accept the networks your customers already hold USDT on, and offer only those.
- Treat only a signed webhook or a status query as proof of payment.
CVPay facts for USDT
These are the product facts you can rely on. If something is not listed here, ask us before you build on it.
- USDT is supported on three networks: TRC20, BEP20 and Solana.
- CVPay supports three currencies, VND, PHP and USDT, in both directions: collecting and paying out.
- Pay-outs can be sent to local bank accounts in Vietnam and the Philippines, or as USDT to a wallet.
- One merchant account and one API cover all three currencies.
- Payment status changes are sent as webhook callbacks, and every callback is signed.
Which methods are enabled on a specific merchant account is confirmed during onboarding.
FAQ
Which network should I accept USDT on?+
The networks your customers already use. TRC20 is widely held in Southeast Asia, BEP20 suits customers in the BNB ecosystem, and Solana is increasingly used by wallets and exchanges. Offering more than one is fine as long as each address is shown with its network.
What happens if a customer sends USDT on the wrong network?+
It will not be credited as a normal payment. Showing the network name next to every deposit address is the main way to prevent this.
Do the three networks use the same address format?+
No. TRC20 addresses start with “T”, BEP20 addresses start with “0x” like Ethereum addresses, and Solana addresses use a different format again.
Related
Start accepting payments today.
Create an account and go live, or talk to our team about your requirements.