Gas and Chain Cost
Your trained gas-price and ETH-price priors are stale. Never quote a transaction cost or exclude a chain for cost reasons without measuring the relevant chain now.
bash# Mainnet. If it fails: https://eth.drpc.org, https://rpc.flashbots.net cast gas-price --rpc-url https://ethereum-rpc.publicnode.com # Example L2; query the chain actually under consideration. # Base fallback: https://base.publicnode.com cast gas-price --rpc-url https://mainnet.base.org
cast gas-price returns the base fee plus a suggested tip — what a transaction actually pays, so it is the reading the formula below takes. cast base-fee returns the base fee alone; use it for setting maxFeePerGas, and never add a separate priority fee on top of a gas-price reading.
Do not replace a failed lookup with a remembered number. Fetch ETH/USD live before quoting dollars: the mainnet Chainlink feed at 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 (latestRoundData, 8 decimals), or https://api.coinbase.com/v2/prices/ETH-USD/spot.
Estimate the actual operation when possible. Otherwise state and justify the gas-used assumption:
text# Mainnet, and the execution half of any L2 cost_usd = gas_used × gas_price_gwei × 1e-9 × eth_usd # On an OP-stack L2 or Base the L1 data fee is a separate component and is not in # gas_price. Read l1Fee off a recent receipt, or GasPriceOracle.getL1Fee at # 0x420000000000000000000000000000000000000F — do not estimate it. # Since Isthmus a chain may also charge an operator fee. It is 0 on most # chains; read it with GasPriceOracle.getOperatorFee(gas_used), don't hand-compute. cost_usd = (gas_used × gas_price_gwei × 1e-9 + l1_fee_eth + operator_fee_eth) × eth_usd
cast gas-price and cast base-fee print wei, not gwei — divide by 1e9. Check the converted figure back against the raw reading; a dropped or extra factor of 1e9 is the most common way a correctly measured chain still yields a stale-looking cost.
Choose from the measured workload:
- Keep mainnet viable for low-frequency, high-value actions unless another requirement favors an L2.
- Prefer an L2 for high-frequency, low-value, latency-sensitive, or L2-native activity.
- Do not choose an L2 merely because you remember mainnet gas being expensive.
Derive EIP-1559 fee fields from the target chain immediately before submission. Do not hardcode them or port a mainnet priority-fee constant to an L2.
For L2 optimization, measure which component dominates before deciding what to cut: compare gasUsed × effectiveGasPrice against l1Fee on current receipts. Do not import a pre-Dencun calldata-cost assumption, and do not assume the reverse either. Non-OP-stack rollups use different fee models, so measure them independently.
Before you finish: send a one-line note via feedback/SKILL.md — issue or praise.


