For a normal USDT TRC20 payment, add the public TRON address of a wallet you control. Wallets and explorers usually display it as 34 Base58Check characters beginning with T. Do not add the USDT contract, an Ethereum-style 0x... address or a seed phrase.
The address format is only the first check. You must also confirm that the wallet or exchange account supports USDT deposits on TRON mainnet and that you can access the received tokens.
The short answer
A suitable merchant address normally looks like this:
T... — 34 Base58Check characters
Use the address shown by your wallet under Receive → USDT → TRON/TRC20, then verify it independently in TRONSCAN. Copy it; do not retype it. Never publish the real private key or seed phrase in an invoice, support chat or GramPayBot setting.
Why the same TRON address may appear as T or 41
TRON represents an address in two interchangeable forms:
| Context | Typical format | Purpose |
|---|---|---|
| Wallets, explorers and checkout | 34-character Base58Check T... | Human-facing address with a checksum |
| Some node APIs | 42 hexadecimal characters beginning with 41 | Machine-facing representation of the same 21-byte address |
The official TRON address documentation explains both forms. The encoding guide also documents the API visible flag and conversion helpers. Do not manually remove characters or convert formats for a checkout: use the wallet’s T... value unless the integration explicitly requires hex.
An Ethereum 0x... address is not a drop-in TRON receiving address. Even though TRON and Ethereum use related key derivation, the user-facing network formats and on-chain state are different. A familiar-looking suffix does not prove that your wallet controls the address on TRON.
Receiving address versus USDT contract
Two T... addresses have different jobs:
- Your receiving address tells the network which merchant account should receive the tokens.
- The USDT TRC20 contract identifies which token is being transferred.
The official TRON USDT contract is TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t. It is a contract account, not your payment wallet. Do not paste it into the GramPayBot receiving-address field. Match it against Tether’s supported protocols and use the separate token verification checklist when checking a transfer.
How to prepare the address safely
- Open a wallet whose recovery method you control, or an exchange account that explicitly supports USDT on TRON.
- Select USDT, then select TRON or TRC20 as the deposit network.
- Copy the complete
T...deposit address. If a service shows a memo, minimum deposit or account-specific warning, follow that service’s rules. - Paste the address into TRONSCAN and check that the full value is unchanged.
- If this is a new self-custody address, check whether the account is already visible on-chain.
- Perform a low-value test that is above any wallet or exchange minimum before using the address for customer invoices.
- Confirm that the test appears as a USDT token transfer to your address and uses the official USDT contract.
A self-custody address is preferable when direct control is important. An exchange deposit address may change, become disabled or require extra deposit rules. If you use one, confirm that it is intended for repeated deposits and save the exchange’s current instructions.
What account activation means
A newly generated TRON key pair exists locally before the corresponding account appears on-chain. According to the official account guide, a new address may not be returned by node APIs or explorers until it has been activated. Standard activation can occur when an existing account sends TRX or a TRC-10 token, or explicitly creates the account.
Do not guess whether an incoming TRC20 transfer will solve an activation problem. Check the address in your wallet and explorer first, and follow the wallet provider’s documented activation flow. Network parameters and provider policies can change, so this page does not promise a fixed activation cost.
How to verify the address on TRONSCAN
Paste the complete receiving address into TRONSCAN. Check:
- the searched address matches every character of the wallet value;
- the page is an account you control, not the USDT contract page;
- any test transfer has successful status;
- the token transfer recipient equals your receiving address;
- the token contract equals
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t; - the received amount is available in the wallet or exchange after its required confirmations.
Activity is not proof of control. The decisive test is that you can access the wallet and, when appropriate, sign an outgoing transaction without revealing the private key.
Add the address to GramPayBot
Choose the USDT on TRON route, paste your verified T... receiving address and create a small test invoice. The buyer must select TRON/TRC20 when withdrawing USDT. USDT sent on Ethereum, BNB Chain, Solana or another network does not pay a TRON invoice.
See the complete USDT on TRON supported route for the buyer flow, fee asset and payment-verification rules.
Stop if any of these happens
- the wallet offers only ERC20, BEP20 or another non-TRON network;
- the value starts with
0xbut the form expects aT...address; - the copied value is the USDT contract rather than your wallet;
- the exchange requires a memo or minimum that the invoice flow cannot satisfy;
- one character changes after copying;
- you cannot prove control of the destination;
- a test transfer uses a token named USDT but a different contract.
Correcting the route before accepting payments is much easier than investigating a wrong-network transfer afterward.
Next step
Create a tracked crypto payment link
Issue a USDT or USDC invoice manually, send one hosted checkout and follow its payment status without an API.
Explore payment links →