Precompile Usage on Mainnet

Networks:
Ethereum Mainnet
Time range:
Start 2025-12-29T00:00:00Z
End 2026-02-26T23:59:59Z
precompiles execution modexp zk-rollups
Published March 12, 2026

Question

Which EVM precompiles consume the most gas on Ethereum mainnet, and who is driving that usage?

Background

The EVM has precompiled contracts at addresses 0x01 through 0x13. These are native implementations of cryptographic and utility functions that would be too expensive to run as Solidity bytecode:

Address Name Function
0x01 ecrecover ECDSA public key recovery
0x02 sha256 SHA-256 hash
0x03 ripemd160 RIPEMD-160 hash
0x04 identity Data copy (returns input unchanged)
0x05 modexp Modular exponentiation
0x060x08 BN128 ops ecAdd, ecMul, ecPairing
0x09 blake2f BLAKE2b compression function
0x0a point_eval KZG point evaluation (EIP-4844)
0x0b0x13 BLS12-381 ops G1/G2 add, mul, multiexp, pairing, map-to-curve (EIP-2537, Pectra)

Precompile gas pricing is a live debate. If a precompile is underpriced relative to its actual execution cost, attackers can stuff blocks with cheap-but-slow calls. But repricing has real consequences for every protocol that depends on that precompile.

We use the int_transaction_call_frame table, which records every internal call frame from transaction execution traces. Precompile calls show up as frames with opcode_count = 0 (no EVM bytecode to run). The gas field tells us how much gas the call consumed, and for variable-cost precompiles like modexp, gas maps directly to input complexity.

Data range: blocks 24,120,001 to 24,546,241 (~426,000 blocks, approximately 59 days from late December 2025 to late February 2026).

Investigation

Overall ranking

View Query: precompile_ranking
Loading...
Loading...

modexp is #1 in both: 25% of all precompile calls, 38% of all gas. The gas ranking looks quite different from calls though. ecPairing jumps from 7th in calls to 4th in gas because each call costs ~129,000 gas (the most expensive per-call by far). ecMul is similar at 6,000 gas per call.

The cheap ones (identity at 27 gas, sha256 at 89 gas, ecAdd at 150 gas) get called a lot but barely register on total gas.

Each precompile has its own page (linked in the table above) with caller breakdowns and gas distributions.

Calls over time

View Query: precompile_time_series
Loading...

Pretty flat. Total calls hover around 1.1-1.2M per day-bucket, with modexp (red) as the largest band, followed by ecrecover (blue) and identity (green). No sudden shifts or spikes over the 59-day window.

Gas over time

Same data, but showing gas instead of calls. The picture shifts — modexp and ecrecover dominate gas even though the call counts look more evenly spread.

Loading...

Takeaways

  • Over ~426,000 blocks (~59 days), 70.4 million precompile calls consumed 188.7 billion gas
  • modexp is #1 by both call count (25.3%) and gas (37.7%), driven almost entirely by Aztec's ZK rollup (details)
  • The gas ranking differs from the call ranking — expensive-per-call precompiles like ecPairing punch above their weight
  • Usage is flat over the analysis period, no sudden shifts
  • BLS12-381 precompiles (Pectra) have 63 calls total — g2multiexp accounts for most of them (details)