There is no universal “USDT address” or “USDC address.” A receiving address is valid only together with an exact blockchain and token route. Before publishing an invoice, identify the network, copy a public address you control and confirm that the wallet can receive that token representation.

Never share a seed phrase or private key. Never paste a token contract or mint into GramPayBot’s receiving-wallet field.

Quick decision table

Route familyWhat the receiving address looks likeImportant check
Ethereum, Optimism, BNB Chain, Base, Polygon, Arbitrum0x plus 40 hexadecimal charactersThe same-looking address does not make EVM networks interchangeable
TRONUsually a Base58Check address beginning with TSelect TRON/TRC20, not an EVM network
SolanaA base58 public keyDistinguish the wallet owner from a token account and the USDT/USDC mint

Use the detailed EVM address guide, TRON address guide or Solana address guide for the route you intend to enable.

Receiving address versus contract or mint

The receiving address identifies the merchant. The contract or mint identifies the asset. Both can look like ordinary blockchain addresses, but they are not interchangeable.

For example, the Solana USDC mint EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v identifies USDC; it is not your wallet. A fake token may copy the name, ticker and logo, so compare the full identifier using the token verification checklist.

Self-custody wallet or exchange deposit

A self-custody wallet gives you direct control, but you are responsible for keys, backups and the native fee asset. An exchange deposit address is controlled by the exchange and may have minimum deposits, unsupported representations, memo requirements or temporary suspensions.

Open the asset’s Deposit or Receive screen and select the exact network. Do not reuse an address from transaction history. If an exchange does not explicitly list the route, do not assume that a familiar-looking address is supported.

Safe setup checklist

  1. Choose token + network in the supported-routes matrix.
  2. Copy your public receiving address from that network’s Receive screen.
  3. Check the full address, including several characters in the middle.
  4. Verify the official token contract or mint separately.
  5. Read exchange minimums and deposit restrictions, if applicable.
  6. Create a low-value invoice and send an amount above any provider minimum.
  7. Confirm the successful transfer, exact token identifier, recipient and amount in the correct explorer.
  8. Confirm that you can actually use or withdraw the received balance.

The product guide Wallets and networks explains where this setting appears in GramPayBot. The comparison payment link versus wallet address explains why an invoice adds route, amount and payment-status context around the address.

Stop before accepting payments if

  • the sender and recipient selected different networks;
  • the value copied into GramPayBot is a contract or mint;
  • the exchange does not list the selected token/network pair;
  • a low-value test is missing or cannot be moved afterward;
  • only the first and last characters were compared;
  • someone asks for a seed phrase to “verify” the wallet.

An address that passes a syntax check can still be the wrong destination. Treat network, token identifier, receiving address and test result as one setup record.

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 →