{"openapi":"3.1.0","info":{"title":"Ethereum L2 Transaction Cost API","version":"1.0.0","description":"What it actually costs a user to transact on each Ethereum layer-2 rollup, live and keyless, powered by the public growthepie dataset. Ethereum's base layer is expensive, so most activity has moved to rollups — Arbitrum, Base, OP Mainnet, zkSync Era, Linea, Scroll, Starknet, Mantle, Mode, Metis, Celo, Taiko, Unichain — but the cost of a transaction varies a lot between them, and that is the number a user choosing a chain, or a developer deciding where to deploy, actually wants. This answers \"which L2 is cheapest to use right now\", in plain dollars. The chains endpoint is the league table: every tracked rollup ranked from cheapest, each with its median transaction cost (USD and ETH), native-transfer cost, token-swap cost, average cost and throughput (transactions per second and Mgas/s); Ethereum L1 is included as the baseline so you can see the L2 saving. The chain endpoint returns one rollup's full current cost-and-performance detail plus a short recent history of its median cost. The cheapest endpoint cuts to the chase — the single cheapest rollup right now for a simple transfer and for a token swap, and how much cheaper that is than Ethereum L1. Because the upstream rounds USD to four decimals (so ultra-cheap rollups would read $0.00), the dollar figures are recovered precisely from each chain's exact ETH cost and the ETH price implied by the same payload — no second data source. This is the L2 user-transaction-cost cut — distinct from the L2 economic-activity feed (active addresses, transaction count, rollup revenue and profit: what the chains earn, not what they cost you), from the multi-chain gas-oracle (gas tiers in gwei) and from the blob data-availability fee market (the L1 cost rollups pay to post data). Costs in USD and ETH, throughput in TPS and Mgas/s, no key, nothing stored.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/l2fees-api","description":"oanor gateway"}],"tags":[{"name":"Chains"},{"name":"Chain"},{"name":"Cheapest"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/chains":{"get":{"operationId":"get_v1_chains","tags":["Chains"],"summary":"Every L2 rollup ranked cheapest-first by transaction cost","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Every tracked Ethereum layer-2 rollup ranked from cheapest by its median transaction cost in USD, each with its native-transfer cost, token-swap cost, average cost and throughput (TPS and Mgas/s). Ethereum L1 (is_l1=true) is included as the baseline — compare its median cost to the rollups to see the L2 saving. This is the user cost of transacting, not the chain's revenue. Live, cached ~60s.","count":14,"chains":[{"tps":18.34,"name":"OP Mainnet","chain":"optimism","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":8.67e-6,"avg_tx_cost_usd":0.000599,"throughput_mgas":4.51,"median_tx_cost_eth":8.7e-9,"median_tx_cost_usd":1.45e-5,"native_transfer_cost_usd":3.99e-5},{"tps":11.89,"name":"Unichain","chain":"unichain","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.000503,"avg_tx_cost_usd":0.000536,"throughput_mgas":1.12,"median_tx_cost_eth":5.11e-8,"median_tx_cost_usd":8.55e-5,"native_transfer_cost_usd":0.000842},{"tps":0.54,"name":"Mode","chain":"mode","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.000601,"avg_tx_cost_usd":9.26e-5,"throughput_mgas":0.28,"median_tx_cost_eth":5.21e-8,"median_tx_cost_usd":8.71e-5,"native_transfer_cost_usd":0.000133},{"tps":137.63,"name":"Base","chain":"base","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.0022,"avg_tx_cost_usd":0.00655,"throughput_mgas":20.49,"median_tx_cost_eth":5.566e-7,"median_tx_cost_usd":0.000931,"native_transfer_cost_usd":0.000217},{"tps":0.59,"name":"Taiko","chain":"taiko","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00856,"avg_tx_cost_usd":0.00354,"throughput_mgas":0.07,"median_tx_cost_eth":1.1207e-6,"median_tx_cost_usd":0.00187,"native_transfer_cost_usd":0.00147},{"tps":3.34,"name":"Starknet","chain":"starknet","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","avg_tx_cost_usd":0.0166,"median_tx_cost_eth":1.1627e-6,"median_tx_cost_usd":0.00194},{"tps":0.07,"name":"Metis","chain":"metis","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00994,"avg_tx_cost_usd":0.00312,"throughput_mgas":0,"median_tx_cost_eth":1.3901e-6,"median_tx_cost_usd":0.00232,"native_transfer_cost_usd":0.00107},{"tps":11.02,"name":"Celo","chain":"celo","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00235,"avg_tx_cost_usd":0.00281,"throughput_mgas":2.2,"median_tx_cost_eth":1.4006e-6,"median_tx_cost_usd":0.00234,"native_transfer_cost_usd":0.00026},{"tps":13.54,"name":"Arbitrum","chain":"arbitrum","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00734,"avg_tx_cost_usd":0.00688,"throughput_mgas":2.75,"median_tx_cost_eth":1.5461e-6,"median_tx_cost_usd":0.00259,"native_transfer_cost_usd":0.000729},{"tps":0.11,"name":"Scroll","chain":"scroll","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00238,"avg_tx_cost_usd":0.00667,"throughput_mgas":0.01,"median_tx_cost_eth":1.9908e-6,"median_tx_cost_usd":0.00333,"native_transfer_cost_usd":0.00241},{"tps":0.28,"name":"Mantle","chain":"mantle","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.00661,"avg_tx_cost_usd":0.00513,"throughput_mgas":0,"median_tx_cost_eth":2.1993e-6,"median_tx_cost_usd":0.00368,"native_transfer_cost_usd":0.000768},{"tps":0.16,"name":"zkSync Era","chain":"zksync_era","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.0203,"avg_tx_cost_usd":0.0277,"throughput_mgas":0.04,"median_tx_cost_eth":8.9774e-6,"median_tx_cost_usd":0.015,"native_transfer_cost_usd":0.00753},{"tps":25.63,"name":"Ethereum (L1)","chain":"ethereum","is_l1":true,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.159,"avg_tx_cost_usd":0.143,"throughput_mgas":2.48,"median_tx_cost_eth":2.65036e-5,"median_tx_cost_usd":0.0443,"native_transfer_cost_usd":0.0126},{"tps":0.66,"name":"Linea","chain":"linea","is_l1":false,"updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.0758,"avg_tx_cost_usd":0.0763,"throughput_mgas":0.15,"median_tx_cost_eth":4.53235e-5,"median_tx_cost_usd":0.0758,"native_transfer_cost_usd":0.00294}],"source":"growthepie public API (v1/fees/table.json), keyless","cheapest":"OP Mainnet","implied_eth_price_usd":1672.19},"meta":{"timestamp":"2026-06-12T19:35:55.041Z","request_id":"dacb70f9-f802-4fe9-bc87-73702b5b3f45"},"status":"ok","message":"Chains retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/chain":{"get":{"operationId":"get_v1_chain","tags":["Chain"],"summary":"One rollup's full cost & performance detail + history","description":"","parameters":[{"name":"chain","in":"query","required":true,"description":"Rollup id (arbitrum, base, optimism, zksync_era, …)","schema":{"type":"string"},"example":"base"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"tps":137.63,"name":"Base","note":"One Ethereum layer-2 rollup's current transaction cost and performance — median, native-transfer and token-swap cost in USD (and median in ETH), plus TPS and throughput — and a short recent history of its median cost so you can see the trend. Live, cached ~60s.","chain":"base","is_l1":false,"source":"growthepie public API (v1/fees/table.json), keyless","updated":"2026-06-12T17:00:00.000Z","swap_cost_usd":0.0022,"avg_tx_cost_usd":0.00655,"throughput_mgas":20.49,"median_tx_cost_eth":5.566e-7,"median_tx_cost_usd":0.000931,"median_cost_history":[{"time":"2026-06-12T17:00:00.000Z","median_tx_cost_usd":0.000931},{"time":"2026-06-12T16:00:00.000Z","median_tx_cost_usd":0.00117},{"time":"2026-06-12T15:00:00.000Z","median_tx_cost_usd":0.00133},{"time":"2026-06-12T14:00:00.000Z","median_tx_cost_usd":0.00132},{"time":"2026-06-12T13:00:00.000Z","median_tx_cost_usd":0.00124},{"time":"2026-06-12T12:00:00.000Z","median_tx_cost_usd":0.00109},{"time":"2026-06-12T11:00:00.000Z","median_tx_cost_usd":0.000956},{"time":"2026-06-12T10:00:00.000Z","median_tx_cost_usd":0.00104},{"time":"2026-06-12T09:00:00.000Z","median_tx_cost_usd":0.00106},{"time":"2026-06-12T08:00:00.000Z","median_tx_cost_usd":0.00103},{"time":"2026-06-12T07:00:00.000Z","median_tx_cost_usd":0.000537},{"time":"2026-06-12T06:00:00.000Z","median_tx_cost_usd":0.00106},{"time":"2026-06-12T05:00:00.000Z","median_tx_cost_usd":0.000719},{"time":"2026-06-12T04:00:00.000Z","median_tx_cost_usd":0.000709},{"time":"2026-06-12T03:00:00.000Z","median_tx_cost_usd":0.000717},{"time":"2026-06-12T02:00:00.000Z","median_tx_cost_usd":0.000955},{"time":"2026-06-12T01:00:00.000Z","median_tx_cost_usd":0.000977},{"time":"2026-06-12T00:00:00.000Z","median_tx_cost_usd":0.000815},{"time":"2026-06-11T23:00:00.000Z","median_tx_cost_usd":0.000861},{"time":"2026-06-11T22:00:00.000Z","median_tx_cost_usd":0.000981},{"time":"2026-06-11T21:00:00.000Z","median_tx_cost_usd":0.000983},{"time":"2026-06-11T20:00:00.000Z","median_tx_cost_usd":0.00107},{"time":"2026-06-11T19:00:00.000Z","median_tx_cost_usd":0.0012},{"time":"2026-06-11T18:00:00.000Z","median_tx_cost_usd":0.00123}],"native_transfer_cost_usd":0.000217},"meta":{"timestamp":"2026-06-12T19:35:55.143Z","request_id":"904ff1f5-26dd-485f-8b70-341c5e355ade"},"status":"ok","message":"Chain retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/cheapest":{"get":{"operationId":"get_v1_cheapest","tags":["Cheapest"],"summary":"Cheapest rollup right now for a transfer and a swap","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"The single cheapest Ethereum layer-2 rollup right now for a simple native transfer and for a token swap, in USD, plus the cheapest overall by median cost — and how much cheaper that is than transacting on Ethereum L1 (l2_saving_vs_l1_pct). The quick 'where should I transact' answer. Live, cached ~60s.","source":"growthepie public API (v1/fees/table.json), keyless","cheapest_for_swap":{"name":"OP Mainnet","chain":"optimism","cost_usd":8.67e-6},"l2_saving_vs_l1_pct":99.97,"cheapest_for_transfer":{"name":"OP Mainnet","chain":"optimism","cost_usd":3.99e-5},"cheapest_overall_median":{"name":"OP Mainnet","chain":"optimism","cost_usd":1.45e-5},"ethereum_l1_median_cost_usd":0.0443},"meta":{"timestamp":"2026-06-12T19:35:55.250Z","request_id":"46684ce6-a121-4e0e-ae81-630cf9813cd7"},"status":"ok","message":"Cheapest retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"chains, cheapest and meta take no parameters. chain takes chain (a rollup id, e.g. arbitrum, base, optimism, zksync_era; aliases op, zksync, eth accepted). Costs are in USD and ETH, throughput in TPS and Mgas/s, times in UTC. A short ~60-second protective cache fronts the upstream.","source":"growthepie public API (api.growthepie.xyz), keyless, live","service":"l2fees-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/chain":"One rollup's full cost & performance detail + recent history (chain=arbitrum).","GET /v1/chains":"Every rollup ranked cheapest-first by median tx cost (+ transfer, swap, TPS).","GET /v1/cheapest":"The cheapest rollup right now for a transfer and a swap, vs Ethereum L1."},"description":"What it costs a user to transact on each Ethereum layer-2 rollup, live and keyless, from the public growthepie dataset. The chains endpoint ranks every tracked rollup (Arbitrum, Base, Optimism, zkSync, Linea, Scroll, Starknet, Mantle, Mode, Metis, Celo, Taiko, Unichain) from cheapest by median transaction cost, with native-transfer cost, swap cost, average cost and throughput (TPS, Mgas/s); chain gives one rollup's full cost-and-performance detail plus recent history; cheapest names the single cheapest rollup right now for a transfer and a swap, versus Ethereum L1. The L2 user-transaction-cost cut — distinct from the L2 economic-activity feed (addresses, tx count, rollup revenue/profit), the multi-chain gas-oracle (gwei gas tiers) and the blob data-availability fee market (the L1 cost rollups pay).","sample_cheapest":{"cheapest":"OP Mainnet","median_tx_cost_usd":1.45e-5},"upstream_status":"ok"},"meta":{"timestamp":"2026-06-12T19:35:55.342Z","request_id":"e0284755-ced3-4793-bc56-d0d2c685bb62"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":800,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":2500,"monthly_call_quota":32000,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":7900,"monthly_call_quota":155000,"rps_limit":16,"hard_limit":true},{"slug":"scale","name":"Scale","price_cents_month":21900,"monthly_call_quota":680000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/l2fees-api"}