Skip to content

Chain · checked 9 November 2026

Agent payment safety checks for Ethereum

Ethereum mainnet is the settlement layer: expensive, but with a clear finalized tag that tells an agent when a payment is final.

What your agent needs to know about Ethereum

Finality
Slots are 12 seconds and an epoch is 32 slots, about 6.4 minutes (calculated). Only epoch-boundary checkpoints can be justified or finalized. A checkpoint is justified with two thirds of staked ETH voting for it, and finalized when another checkpoint is justified on top of it. ZKsync docs put typical finality at 2 epochs, about 13 minutes. Reverting a finalized block would need at least one third of total stake destroyed. Before that point, fork choice (LMD-GHOST) can still switch branches. For payments, treat the transaction as final when the finalized block number passes its block.[1],[2],[3]
Fees
EIP-1559: a base fee set by the previous block and burned, plus a priority fee to the validator, with maxFeePerGas as a cap. The base fee moves by up to 12.5% per block. A simple ETH transfer uses 21,000 gas. If execution fails, state is reverted but the gas used is still paid. A transaction rejected in validation (for example a gas limit that is too low) pays nothing. ETH is required for gas even when the payment is in USDC or USDT.[4]
Stablecoins
Circle lists native USDC on Ethereum at the address below. Tether lists USDT on Ethereum (ERC20) at the address below. Both tokens are issuer controlled. The Circle USDC contract can blacklist addresses.[5],[6],[7]
Issuer-published contract addresses. Compare all of it, not the first and last characters.
TokenAddressSource
USDC (native, Circle)0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48[5]
USDT (Tether, ERC20)0xdac17f958d2ee523a2206206994597c13d831ec7[6]

How agent payments go wrong on Ethereum

  1. 1. Treating one confirmation as final

    A block that is not yet finalized can still be replaced during a fork. An agent that releases goods on the first confirmation takes that risk. Wait until the finalized tag passes the transaction block, or set a depth rule by value.[1],[2]

  2. 2. Fee spike strands a payment

    The base fee moves up to 12.5% per block, so a transaction signed with a low maxFeePerGas can sit unmined during a spike. A stuck nonce blocks every later transaction from that account. Set maxFeePerGas with headroom and plan to replace the stuck nonce with a higher fee.[4]

  3. 3. Reverted transaction still costs gas

    A failed execution reverts state but the gas used is paid. An agent that retries a transfer to a frozen or non-contract-friendly address burns gas each time. Simulate with eth_call first and cap the retry count.[4]

  4. 4. Frozen or blacklisted address

    Circle's USDC contract can blacklist addresses, and blacklisted accounts are blocked by the token's transfer logic. A payment to such an address reverts. Check isBlacklisted on the USDC contract for the payee.[7]

  5. 5. Wrong token at a lookalike address

    Anyone can deploy a token named USDC or USDT. An agent that matches on symbol or name can pay or accept a fake. Compare the contract address with the issuer's published list.[5],[6]

Pre-flight checklist for a Ethereum agent

  • Confirm the token contract address against Circle or Tether before sending or accepting.
  • Hold goods or credit until the finalized block tag passes the payment block.
  • Simulate the transfer with eth_call and estimate gas before signing.
  • Keep ETH in the sending account for gas; fail early if the balance is below the estimate.
  • Track the account nonce and replace a stuck transaction with a higher fee instead of sending a new one.
  • Call isBlacklisted on the USDC contract for the payee before sending.

Run the checks now, free

The free tools run in your browser: nothing you type leaves your browser, and wallet reads go only to a public RPC.

  • The Wrong-Money Test

    Write down what happens when your agent pays the wrong amount, the wrong address or the wrong token on Ethereum, and see whether the answer holds up.

  • Agent Spend-Cap Stress Test

    Work out how much your agents can really move in one window once retries, parallel runs and per-key limits stack up.

  • Agent Money Trace

    Reads an address's Ethereum stablecoin transfers from a public RPC and joins them to your run log: orphan spend, phantom successes and double pays.

  • Can Your Agent Get Back Out?

    Quotes a live round trip on Ethereum for the tokens your agent trades and shows whether its slippage setting would stop a bad exit.

Want a second pair of eyes on how your agent pays on Ethereum? Book the free 48-hour integration review (opens Cal.com in a new tab).

Explorers to confirm a payment

Sources

  1. [1] Gasper, ethereum.org
  2. [2] Proof-of-stake (PoS), ethereum.org
  3. [3] ZKsync finality, ZKsync docs
  4. [4] Gas and fees, ethereum.org
  5. [5] USDC contract addresses, Circle
  6. [6] Supported protocols, Tether
  7. [7] Blacklistable.sol, Circle (GitHub)

Checked against these sources on 9 November 2026. Networks change: confirm against the live docs before you rely on a number. This page is a checklist from public documentation. It is not a security audit, legal, compliance or investment advice.