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]
How agent payments go wrong on Ethereum
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. 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. 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. 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. 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] Gasper, ethereum.org
- [2] Proof-of-stake (PoS), ethereum.org
- [3] ZKsync finality, ZKsync docs
- [4] Gas and fees, ethereum.org
- [5] USDC contract addresses, Circle
- [6] Supported protocols, Tether
- [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.