EIP-2780 gas cost report

This report presents gas estimates at 75 Mgas/s for EIP-2780, using test_ether_transfers_onchain_receivers results collected from September 25 to October 12, 2026. The source analysis was generated on October 13, 2026 at 12:08:22 UTC and targets the Amsterdam fork.

Gas parameter estimates by client

Each cell is the client’s highest estimate for the indicated transaction case, at 75 Mgas/s:

  • Transfer to self: the higher of ZERO_VALUE_TRANSFER and VALUE_TRANSFER for the self receiver.
  • No-value transfer: the highest ZERO_VALUE_TRANSFER across existing EOAs and all non-delegated contract receivers.
  • Value transfer: the highest VALUE_TRANSFER across the same existing-EOA and non-delegated contract receivers.
  • No-value transfer to delegated account: the highest ZERO_VALUE_TRANSFER across delegated receivers.
  • Value transfer to delegated account: the highest VALUE_TRANSFER across delegated receivers.

Non-existent receivers are excluded from every row. All contract variants are included, at both 24 KiB and 64 KiB. Self-transfers appear only in their own row, and delegated receivers appear only in the delegated rows.

Transaction case Besu Erigon Ethrex Geth Nethermind Reth EIP value
Transfer to self 9,108 9,825 3,454 9,436 5,493 4,137 12,000
No-value transfer 13,106 13,238 7,827 16,039 9,901 8,507 15,000
Value transfer 18,344 28,366 9,718 22,164 12,473 11,106 21,000
No-value transfer to delegated account 11,112 9,343 4,062 15,411 9,511 7,530 18,000
Value transfer to delegated account 15,606 13,962 5,835 20,811 11,933 10,116 24,000

The EIP value column shows execution-gas costs before separately metered contract execution, with a cold delegation-target access for delegated recipients.

ZERO_VALUE_TRANSFER and VALUE_TRANSFER are full per-transaction estimates for zero-value and value-bearing transfers. The marginal TX_VALUE_COST is the estimated additional cost of moving value for the same receiver case.

Runtime results

The following results drive the five transaction-case maxima above. The correspond to the results of fitting a non-negative least-squares model on the benchmark data. Estimated runtimes are in milliseconds per transaction.

Transfer to self

Client Receiver case Worst parameter Runtime (ms/tx) R²
Besu diff_to_self VALUE_TRANSFER 0.121430 0.968
Erigon diff_to_self ZERO_VALUE_TRANSFER 0.130996 0.997
Ethrex diff_to_self ZERO_VALUE_TRANSFER 0.046041 0.955
Geth diff_to_self VALUE_TRANSFER 0.125803 0.996
Nethermind diff_to_self ZERO_VALUE_TRANSFER 0.073236 0.716
Reth diff_to_self ZERO_VALUE_TRANSFER 0.055148 0.840

No-value transfer

Client Worst receiver case Parameter Runtime (ms/tx) R²
Besu diff_to_unique_code_jumpdest_contract_64kib ZERO_VALUE_TRANSFER 0.174743 0.900
Erigon diff_to_contract_24kib ZERO_VALUE_TRANSFER 0.176505 0.996
Ethrex diff_to_unique_code_jumpdest_contract_24kib ZERO_VALUE_TRANSFER 0.104347 0.946
Geth diff_to_contract_diff_max_64kib ZERO_VALUE_TRANSFER 0.213846 0.997
Nethermind diff_to_unique_code_jumpdest_contract_64kib ZERO_VALUE_TRANSFER 0.132007 0.853
Reth diff_to_unique_code_jumpdest_contract_64kib ZERO_VALUE_TRANSFER 0.113426 0.968

Value transfer

Client Worst receiver case Parameter Runtime (ms/tx) R²
Besu diff_to_unique_code_jumpdest_contract_64kib VALUE_TRANSFER 0.244578 0.917
Erigon diff_to_contract_24kib VALUE_TRANSFER 0.378210 0.998
Ethrex diff_to_unique_code_jumpdest_contract_24kib VALUE_TRANSFER 0.129572 0.975
Geth diff_to_contract_diff_max_64kib VALUE_TRANSFER 0.295519 0.997
Nethermind diff_to_contract_diff_max_64kib VALUE_TRANSFER 0.166300 0.769
Reth diff_to_unique_code_jumpdest_contract_64kib VALUE_TRANSFER 0.148070 0.949

No-value transfer to delegated account

Client Worst receiver case Parameter Runtime (ms/tx) R²
Besu diff_to_delegated_contract_diff_24kib ZERO_VALUE_TRANSFER 0.148150 0.951
Erigon diff_to_delegated_contract_diff_64kib ZERO_VALUE_TRANSFER 0.124570 0.995
Ethrex diff_to_delegated_contract_diff_64kib ZERO_VALUE_TRANSFER 0.054153 0.956
Geth diff_to_delegated_contract_diff_64kib ZERO_VALUE_TRANSFER 0.205476 0.998
Nethermind diff_to_delegated_contract_diff_64kib ZERO_VALUE_TRANSFER 0.126812 0.834
Reth diff_to_delegated_contract_diff_64kib ZERO_VALUE_TRANSFER 0.100398 0.968

Value transfer to delegated account

Client Worst receiver case Parameter Runtime (ms/tx) R²
Besu diff_to_delegated_contract_diff_24kib VALUE_TRANSFER 0.208075 0.967
Erigon diff_to_delegated_contract_diff_24kib VALUE_TRANSFER 0.186152 0.997
Ethrex diff_to_delegated_contract_diff_64kib VALUE_TRANSFER 0.077788 0.954
Geth diff_to_delegated_contract_diff_24kib VALUE_TRANSFER 0.277477 0.996
Nethermind diff_to_delegated_contract_diff_24kib VALUE_TRANSFER 0.159093 0.741
Reth diff_to_delegated_contract_diff_64kib VALUE_TRANSFER 0.134872 0.949

The complete runtime results include all 180 fits across 90 client/receiver pairs, with observation counts, intercepts, slopes, R², and bootstrap intervals. All pairs have both value and zero-value fits; the fits contain 47,520 observations in total.

Fit warnings

No fits meet the source analysis’s poor-fit threshold of R² ≤ 0.5. No reported slope diagnostic has a p-value above 0.05. The marginal-value p-value is inherited from the two underlying fits and is not a significance test of their difference.

Fit quality still varies. The table below identifies weaker fits using R² < 0.9 as an additional review threshold, rather than the source’s poor-fit cutoff. These fits remain included in the estimates.

Client R² range Fits with R² ≤ 0.5 Fits with R² < 0.9 (of 30)
Besu 0.900–0.982 0 0
Erigon 0.993–0.998 0 0
Ethrex 0.834–0.975 0 4
Geth 0.933–0.998 0 0
Nethermind 0.592–0.853 0 30
Reth 0.840–0.968 0 16

All 30 Nethermind fits in the complete source results are below 0.9. Each of its five displayed transaction-case maxima also relies on a fit below 0.9; their R² values are shown in the runtime tables. The fit-quality summary covers the complete source results, including non-existent receivers, which are excluded from the transaction-case maxima. Interpret these estimates with their fit diagnostics; interval bounds remain available in the supporting CSVs.

Supporting files