Ethereum
by @ivangdavila
Assist with Ethereum transactions, gas optimization, token approvals, and L2 bridges.
clawhub install ethereum
π About This Skill
name: Ethereum
description: Assist with Ethereum transactions, gas optimization, token approvals, and L2 bridges.
metadata: {"clawdbot":{"emoji":"β ","os":["linux","darwin","win32"]}}
Nonce and Stuck Transactions
Every Ethereum account has a nonce that increments with each transaction β if tx with nonce 5 is pending, nonces 6+ are blocked until 5 confirms
To unstick: send a new tx with the SAME nonce and higher gas β this replaces the pending tx (even a 0 ETH self-transfer works)
MetaMask "Speed up" and "Cancel" buttons do exactly this β they resubmit with same nonce and higher priority fee
Nonce gaps cause permanent stuck state β if nonce 3 was never broadcast but 4 was, 4 will never confirm until 3 is sentGas (EIP-1559)
maxFeePerGas = max total you'll pay per gas unit. maxPriorityFeePerGas = tip to validator. baseFee = burned, set by protocol
Actual cost: min(baseFee + priorityFee, maxFee) Γ gasUsed β unused gas is refunded, but failed txs still consume gas
Gas limit is separate from gas price β setting limit too low causes "out of gas" revert, but you still pay for gas used up to that point
Check current base fee at etherscan.io/gastracker or via eth_gasPrice RPC β wallets often overestimate by 20-50%Token Approvals (Critical Security)
ERC-20 approve() grants a contract permission to spend your tokens β many dApps request unlimited (type(uint256).max) approval
If that contract gets hacked, attacker can drain all approved tokens even years later β audit approvals at revoke.cash
Recommend users approve only the exact amount needed, or revoke after each use
Approvals persist forever until explicitly revoked β changing wallets doesn't help if the old address still has tokensFailed Transactions
A reverted transaction is mined and consumes gas β you pay even though nothing happened
Common causes: slippage exceeded, deadline passed, insufficient token balance, contract paused
"Transaction failed" in explorer means it executed but reverted β completely different from "pending" (not yet mined)
Simulating transactions before sending (via Tenderly or wallet preview) catches most revert conditionsL2 Bridges and Withdrawals
Optimistic rollups (Optimism, Arbitrum, Base) have 7-day withdrawal period to mainnet β this is not a bug, it's the security model
ZK rollups (zkSync, Starknet) have faster finality but bridging back still takes 1-24 hours depending on liquidity
Third-party bridges (Hop, Across) offer faster exits but charge fees and have smart contract risk
Never bridge more than you can afford to wait 7 days for β or use a fast bridge and accept the feeMEV Protection
Public mempool transactions can be frontrun or sandwiched β especially swaps on DEXs
Flashbots Protect RPC (protect.flashbots.net) hides transactions from public mempool until mined
Private transaction options: MEV Blocker, Flashbots Protect, or DEXs with native protection (CoW Swap)
Signs of sandwich attack: swap executed at worse price than quoted, with suspicious txs immediately before and after yoursAddress Validation
Ethereum addresses are case-insensitive but the checksum (mixed case) catches typos β 0xABC... vs 0xabc... are the same address
ENS domains can expire β always verify current owner before sending to a .eth name
Contract addresses vs EOA: contracts can reject ETH transfers or behave unexpectedly β check on etherscan if address has code
Some tokens have multiple addresses (official + scam clones) β verify contract address on CoinGecko or project's official site