ERC20, usually written ERC-20, is a standard for fungible tokens. USDT and USDC use it on Ethereum. The standard defines how a token contract exposes balances and moves tokens. It does not identify the issuer, guarantee redemption or tell you which network a recipient accepts. For a payment, check the network, token contract and destination address separately.

That distinction prevents a common mistake: treating “USDT” as a complete set of transfer instructions. Tether’s USDT exists on several networks. Circle also publishes different USDC contract addresses by chain. This guide covers the issuer-listed tokens on Ethereum mainnet, not every asset using the same ticker.

What ERC-20 standardizes

EIP-20 ↗ specifies an interface for fungible tokens. A compatible application can use functions such as balanceOf to read a balance and transfer to request a transfer.

The interface also provides approve, allowance and transferFrom. They support arrangements in which another address is authorized to move tokens up to an allowance. Transfers and approvals have associated events.

“Fungible” means units of the same token are interchangeable in this model. It does not mean units issued by different contracts are interchangeable. Two contracts can display the same symbol while representing different assets.

The EIP lists name, symbol and decimals as optional metadata. A familiar ticker or logo is therefore a weak identity check. Ethereum’s ERC-20 documentation ↗ explains the standard; the issuer’s contract list identifies its deployment.

Verify USDT and USDC on Ethereum mainnet

The addresses below were checked against the issuers’ official lists on October 8, 2026.

Asset Network Issuer-listed token contract
Tether USDT Ethereum mainnet 0xdac17f958d2ee523a2206206994597c13d831ec7
Circle USDC Ethereum mainnet 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

Sources: Tether’s supported protocols ↗ and Circle’s USDC contract addresses ↗.

These are token contract addresses, not your recipient’s deposit addresses. Use them to identify the asset in a wallet or explorer. Obtain the payment destination from the recipient or receiving platform’s current deposit instructions.

Match the complete address against the official source. Comparing only a short prefix and suffix is not a complete match. Also verify that you are reading the mainnet section: Circle’s documentation lists testnet deployments separately and states that testnet USDC has no financial value.

A contract verified on Ethereum does not establish support on another chain. Nor does a receiving platform’s support for USDT on TRON establish support for USDT on Ethereum. Our network selection guide covers that receiving-side decision.

ETH pays Ethereum’s native gas charge

An ordinary on-chain ERC-20 transfer is an Ethereum transaction that interacts with the token contract. Ethereum’s native gas is paid in ETH, even when the asset being sent is USDT or USDC. Holding a token balance does not itself establish that the wallet can pay gas.

Ethereum’s gas documentation ↗ explains that the transaction fee depends on the gas used and gas price. There is no permanent dollar fee for an ERC-20 USDT transfer. Check the wallet’s current transaction estimate and the available ETH before submitting.

Separate that network charge from a platform’s withdrawal charge. An exchange may set its own withdrawal fee and handle the underlying network transaction. A wallet may also offer a sponsored transaction arrangement. Those interfaces do not change the identity of Ethereum’s native fee asset; their billing arrangements need their own check.

For a cross-border payment, compare the whole route, including acquisition, withdrawal, network and exit costs. The stablecoin payment cost guide explains why a gas estimate alone is incomplete.

A transfer and an approval are different actions

A direct token transfer moves tokens to another address. An approval grants a spender an allowance that can permit later transfers through transferFrom. Reading an approval screen as if it were only a payment confirmation misses that difference.

Before approving, identify the spender and the allowance. Check why the application needs that permission and whether the requested amount matches the intended action. An approval does not prove the application is trustworthy, and granting permission is not the same as completing a purchase.

For developers, the published interface is a starting point rather than a guarantee that every deployed contract behaves identically. Tether explicitly notes that its current Ethereum USDT contract uses an older form whose transfer function does not return a boolean. It recommends compatible integration handling such as SafeERC20.

That issuer note matters to application code. It does not change the recipient network check or turn the token contract into a destination for a customer’s deposit.

Check three identifiers before sending

A practical transfer check can fit on one screen:

  1. Network: the sender and receiver both specify Ethereum mainnet for this asset.
  2. Token: the wallet is using the issuer-listed Ethereum contract, rather than a similarly named token or a different deployment.
  3. Destination: the recipient address comes from the receiving platform or recipient’s current instructions.

Then inspect any receiving conditions, the amount, platform charges and the gas estimate. An address beginning with 0x is not enough to establish the network. Several networks use that address format, and a platform can support only some of them.

If the recipient is an exchange or other hosted service, its deposit instructions control which assets and networks it credits. A wallet’s ability to submit a transaction does not prove the service will recognize the deposit.

A small test can reduce exposure when the recipient accepts it, but first check minimum deposit and crediting rules. Do not send a test below a platform’s stated minimum and assume that a missing credit proves the route is broken.

ERC-20 does not settle the issuer questions

USDT and USDC sharing a token interface does not make their reserves, redemption access or operating terms identical. Those questions sit outside EIP-20. See USDT versus USDC for the issuer-level comparison. The stablecoin directory also has separate reference entries for USDT and USDC.

The same distinction applies to native and bridged assets. A token on another network may involve a different issuance or bridge arrangement, even if the displayed symbol is familiar. Native versus bridged stablecoins explains what that changes.

Use the standard to understand the token interface. Use the issuer’s list to identify its contract. Use the recipient’s instructions to select a supported transfer route. Each check answers a different part of the payment.

Sources

Official sources read October 8, 2026. Contract identity is separate from a platform’s current deposit support; verify both before sending.

Questions

Is ERC20 the same thing as Ethereum?

No. Ethereum is the network covered here. ERC-20 is a fungible-token standard used by token contracts, including the issuer-listed Ethereum USDT and USDC deployments.

Can Ethereum USDT be sent to a TRC-20 deposit?

Do not use an Ethereum transfer for instructions specifying TRON. A matching asset name does not establish a matching network. Obtain a supported Ethereum destination or use a route the receiving platform explicitly accepts.

Can I pay an ordinary Ethereum token transfer’s gas with USDT?

Ethereum’s native gas is paid in ETH. A platform or sponsored interface may present a different billing arrangement, which you need to verify separately.

Is the USDT contract address my deposit address?

No. The contract identifies the token. Your deposit destination must come from the recipient’s current instructions.