Skip to main content

Type a word from a question or an article title.

2 · Practice

How to read Etherscan: checking a contract, a transaction and events

A practical guide to block explorers (Etherscan, Basescan, Polygonscan, BscScan) - how to check an address, a transaction, a contract, tokens and approvals.

4 min readUpdated:
In this article

A block explorer is a website that shows everything recorded on a blockchain as convenient pages. For Ethereum it is Etherscan, for Base - Basescan, for Polygon - Polygonscan, for BNB Chain - BscScan. All are built alike, so once you can read one you will understand the others.

Why do you need it if the service has an interface? Because an interface can be fake, imprecise or simply "lag behind". The explorer is an independent source of truth: it shows what is really recorded on the network.

An address page

Paste a wallet or contract address into the search - an address page opens. What is on it:

  • Balance of the main coin and a list of tokens.
  • Transactions - all operations the address took part in.
  • Internal transactions - transfers that happened inside contracts (for example a payout initiated by a contract).
  • Token transfers - movement of ERC-20 tokens.
  • For contracts - the Contract tab: code, ABI, read and write functions.

Pay attention to the "Contract" and "EOA" labels. EOA (externally owned account) is an ordinary wallet controlled by a key. Contract is a program.

How to check a transaction

Open the page by the transaction hash (the interface shows it in the notification). What you will see:

FieldWhat it means
StatusSuccess - executed; Failed - rejected by the contract, gas spent; Pending - not yet included
BlockWhich block it is in, and how many blocks on top (confirmations)
From / ToWho sent it and to whom: if To is a contract, it is a function call
ValueHow much of the main coin was transferred
Transaction FeeHow much was paid for gas
Input DataWhich function was called and with what arguments

If you press Decode Input Data, the explorer decodes the call: for example acceptOffer(dealId = 7, expectedTermsHash = 0x…). It lets you confirm the interface sent what you wanted.

Logs and events

Further down in the same transaction the Logs tab shows the events the contract "wrote to the journal". For escrow this is the key source of truth:

  • OfferCreated - a deal was created; buyer, seller, guarantor, amount and rates are visible.
  • OfferAccepted - the deal was accepted, the term is shown.
  • DisputeOpened - a dispute was opened.
  • DealSettled - the deal finished; how much the buyer, seller, guarantor and platform received is shown.
  • Paid and PaymentDeferred - a payout went through or was deferred.

The interface builds the deal history from events. How it works technically - in the article on events and logs.

Checking a contract

Before trusting a contract with money, open its page and make sure:

  1. The address matches the official one. Compare with the service's home page or documentation. Coin-Trust contract: 0x6462DDDc0a3D893A7C17f94410e2d27162a390aD - the same on all networks.
  2. The code is published and verified. The Contract tab should have a "Contract Source Code Verified" tick and readable source. An unverified contract is a "black box".
  3. Who the owner is. Call owner in the Read Contract tab - you will see the owner's address. A multisig or a well-known address is better than an unknown wallet.
  4. What the owner can do. Read the functions marked onlyOwner: can they pause, change rules, withdraw other people's money.
  5. Whether there is a proxy. If the contract is upgradable (proxy), the logic can be swapped - the tab will show "Read as Proxy".

Tokens and approvals

On your address page open the Token Approvals tab (it may be named differently - "Token Approvals", "Approvals" or sit in the tools) and check which addresses you have allowed access to your tokens. Revoke the extra ones. More in the article on approve.

How to check a payment arrived

Open the Token transfers tab (or Internal Txns for the main coin) at the recipient's address: a payout record with the right amount should appear there. Remember decimals: 1 USDT on Ethereum is 1000000 in raw units (6 decimals), while on BNB Chain it is 1000000000000000000 (18 decimals). The explorer usually shows the human-readable form already.

Typical beginner mistakes

  • Wrong network. The address is the same, but the page lives on different sites: Etherscan, Basescan, Polygonscan, BscScan. If the transaction is not found, check the network.
  • Panic at Pending. A transaction can hang for minutes under congestion - see anatomy of a transaction.
  • A fake site. Make sure you are on a real explorer: etherscan.io, basescan.org, polygonscan.com, bscscan.com.

Having learned to read records, check the contract itself: how to verify a smart contract before using it. Then let us see how the arbitration that settles disputed questions is built: arbitration design.

Mentioned in

Ready to try it?

Create your first deal in a couple of minutes. The money is locked in a smart contract and paid out by rules you can see in advance.