What is an Ethereum wallet?

Ethereum.org describes a wallet as an app or device that lets you hold, send and receive ETH and other tokens and sign in to apps. The wallet provider does not hold your funds: it gives you a window onto your account and the tools to manage it, while the private key that controls the account stays with you. Most wallets back that key up as a recovery phrase when you create the wallet. Write it down on paper, not in a file or a photo, and never type it into a website, a support chat or a swap form. A swap service never needs it; to receive ETH you only share your address.

What an Ethereum address looks like

An Ethereum address is 0x followed by 40 hexadecimal characters, 42 characters in total. It is made from the last 20 bytes of the Keccak-256 hash of your public key. The same address receives ETH and every ERC-20 token on Ethereum, including USDT and USDC, so you never need a separate address per token. Ethereum has two kinds of account. An externally owned account is controlled by a private key and is what most wallets create. A contract account is a smart contract controlled by its code. Both can receive and hold ETH and tokens.

  • Format: 0x plus 40 characters from 0–9 and a–f.
  • One address for ETH, USDT, USDC and any other ERC-20 token.
  • Multi-chain wallets also show Solana or Bitcoin addresses; pick the Ethereum one.

Why some letters are capitals: the EIP-55 checksum

Many wallets show addresses with a mix of capital and lowercase letters. The capitals are a checksum defined in EIP-55. The lowercase address is hashed with Keccak-256, and each letter is written as a capital or lowercase depending on the matching part of the hash. A wallet that checks it can catch typing mistakes: the specification says an address carries about 15 check bits on average, and a mistyped address passes the check by accident only 0.0247% of the time. An address written entirely in lowercase is still valid but carries no checksum, so nothing catches a typo. Copy and paste addresses rather than typing them, and compare the first and last characters after pasting.

How Ethereum gas fees work

Gas measures the computing work a transaction needs, and you pay for it in ETH. Under EIP-1559, the fee is the gas used times the sum of the base fee and the priority fee. The base fee is set by the protocol from how full recent blocks were, can change by at most 12.5% from one block to the next, and is burned. The priority fee, or tip, goes to the validator that includes your transaction. Your wallet also sets a maximum fee; if the base fee plus tip comes in lower, you are refunded the difference. Fees are quoted in gwei: one gwei is 0.000000001 ETH.

  • A plain ETH transfer uses 21,000 gas.
  • Token transfers and smart-contract calls use more, because they run contract code.
  • Gas exists so that every computation costs something, which stops spam and endless loops.

Working out a gas fee

To estimate a fee yourself, multiply the gas used by the base fee plus the tip. As a worked example only, a 21,000-gas ETH transfer at a base fee of 10 gwei and a tip of 1 gwei costs 21,000 times 11 gwei, which is 231,000 gwei or 0.000231 ETH. The real base fee changes with demand from block to block, so your wallet’s estimate at the moment you send is the figure that counts. Ethereum.org explains that each block targets half of its gas limit; when blocks run fuller than that, the base fee rises, and when they run emptier, it falls.

Why sending USDT or USDC needs ETH

An ERC-20 token is a smart contract on Ethereum. Sending USDT or USDC is a call to that contract’s transfer function, and like every Ethereum transaction it pays gas in ETH, not in the token. A wallet holding 500 USDT and no ETH cannot send any of it until you add some ETH. Check that a token is the real one by its contract address, not its name: Tether publishes 0xdac17f958d2ee523a2206206994597c13d831ec7 for USDT on Ethereum and Circle publishes 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 for USDC. Ethereum.org also warns that ERC-20 tokens sent to a smart contract not designed to handle them can be lost for good, so only send tokens to wallet addresses and deposit addresses meant for them.

Layer 2 networks: same address, different network

Layer 2 networks such as Arbitrum One, Optimism, Base, ZKsync Era and Linea are separate blockchains built on top of Ethereum. Your wallet uses the same 0x address on all of them, but ethereum.org is clear that balances and transaction history do not carry over between networks. ETH or USDT sent on a layer 2 arrives on that layer 2, not on Ethereum mainnet, even though the address is identical. VeriSwap accepts deposits and pays out on Ethereum mainnet only. When you withdraw from an exchange for a swap, choose Ethereum or ERC-20 as the network, not a layer 2.

Choosing an Ethereum wallet

Pick a wallet that is actively maintained, install it only from the official site or app store, and check whether it works with the hardware wallet you may want later. The descriptions below come from each project’s own pages.

  • MetaMask: self-custodial wallet from Consensys; browser extension, iOS and Android; Ethereum plus many other networks including Solana and Bitcoin; Ledger, Trezor, Lattice, Keystone and others on the extension, Keystone, Ledger and NGRAVE ZERO on mobile.
  • Rabby: open-source browser extension for Ethereum and EVM networks; Ledger and Trezor both list it as compatible.
  • Coinbase Wallet: Coinbase’s self-custodial wallet app for iOS, Android and web, covering Ethereum and dozens of other chains; it is not the same as a Coinbase exchange account.
  • Ledger: ETH and ERC-20 tokens in the Ledger Wallet app (formerly Ledger Live), and works with MetaMask and Rabby.
  • Trezor: Safe 3, Safe 5 and Safe 7 support Ethereum in Trezor Suite and work with MetaMask and Rabby.

Smart-contract wallets

A smart-contract wallet, sometimes called a smart account, is an account controlled by contract code rather than a single key. Ethereum.org lists what that makes possible: recovery through trusted devices or people, rules such as multiple signatures for large payments, spending limits, someone else paying your gas, and bundling several steps into one transaction. ERC-4337 added this without changing the core protocol, and EIP-7702, live since the Pectra upgrade on 7 May 2025, lets an ordinary account take on smart-contract features. One caution for swaps: a contract wallet exists only on the networks where it has been deployed. Safe’s documentation notes that funds sent to a chain where the Safe does not exist need the Safe to be deployed there before they can be recovered, so make sure your smart account exists on Ethereum mainnet before you use it as a payout address.

Receiving ETH, USDT or USDC from a swap

Open your wallet’s receive screen on Ethereum mainnet and copy the 0x address. Paste it into the payout field and compare the first and last characters before you create the order. The same address works for ETH, USDT on Ethereum and native USDC on Ethereum; bridged USDC is not accepted. VeriSwap pays the payout network fee, and the receive amount shown already includes the 0.5% service fee and stays fixed for 15 minutes. Ethereum adds a block every 12-second slot, and a block becomes final after about two epochs, roughly 13 minutes.

  • BTC → ETH or XMR → ETH: paste an Ethereum mainnet address.
  • ETH → USDT with Ethereum chosen as the payout network: the same 0x address receives USDT.
  • If the wallet does not list USDT or USDC after the payout, add the token by its official contract address.

Sending ETH or tokens to a swap

Create the order first, then send exactly the amount shown to the deposit address on the order page within the 15-minute quote window, on Ethereum mainnet. Your wallet pays the gas for the deposit, so keep enough ETH for it; when sending USDT or USDC, that means ETH on top of the tokens. Accept your wallet’s suggested fee or higher so the transaction is not left pending. The operator checks each deposit by hand before sending the payout, and every step is logged in the activity log on your private order page. There is no account and no sign-up; save the order reference.

  • ETH → XMR: send ETH, receive Monero at your Monero wallet address.
  • ETH → USDT: send ETH, receive USDT on Ethereum, TRON or Solana.
  • Minimum order: 50 USD in value.

How to check a payout on Etherscan

Etherscan is a block explorer for Ethereum mainnet: you can search it for transactions, addresses and tokens. Copy the payout transaction hash from your order page and paste it into the search box. The transaction page shows its status, the block it is in, the sending and receiving addresses, the ETH value and the fee paid. For a USDT or USDC payout the ETH value is zero, because the tokens move through the contract; look at the token transfer line, which shows the token, the amount and your address. You can also search your own address to see all incoming ETH and token transfers.

  • Compare the receiving address with the one you pasted into the order.
  • Check the token’s contract address to confirm it is the official USDT or USDC.
  • A payout that is on Etherscan but not in your wallet usually means the wallet has not added that token yet.

Mistakes to avoid

Most Ethereum problems come down to the network, gas or the token contract.

  • Withdrawing from an exchange on a layer 2 or another EVM network instead of Ethereum mainnet.
  • Trying to send USDT or USDC from a wallet with no ETH for gas.
  • Using a smart-contract wallet address that has not been deployed on Ethereum mainnet.
  • Trusting a token by its name instead of its contract address.
  • Typing an address by hand in lowercase, so no checksum catches a typo.
  • Typing your recovery phrase anywhere other than the wallet itself.

Source notes

Network and regulatory facts are based on the documents below. VeriSwap flow details describe the current exchange process.