revm-context
Revm context crates
42.0.0
6.3M downloads/mo
#4038 most downloaded on crates.io
bluealloy/revm
What this package is like to depend on
Last release 1 months ago
23 Jul 2026
Ships fairly regularly
a new release about every 4 weeks
Nearly every release is documented
notes for 35 of 37 stable releases
6 versions withdrawn
withdrawn after publishing
2 years old
49 releases · first in 2025
24 releases in the last 12 months
see the full history below
Release timeline
49 releases · Feb 2025 to Jul 2026Releases
latest 49-
42.0.023 Jul 2026Release notes
Open source →REVM v42.0.0 Release Notes
Date: 2026-07-23
v114 aligns REVM with Glamsterdam devnet-7 and the
[email protected]fixtures — allstate_testsand
blockchain_testspass. All crates are released as 42.0.0.EIP-2780 runtime gas phase (#3795, ethereum/EIPs#11844)
State-dependent transaction charges move out of intrinsic gas into a runtime
phase applied as the first frame is entered. Gated on
CfgEnv::enable_amsterdam_eip2780; older forks are unchanged.- Create transactions: new-account state gas is charged at runtime, only
when the deployment target does not exist; an initcode revert/halt unwinds it. - EIP-7702: the pessimistic per-auth intrinsic charge becomes an intrinsic
REGULAR_PER_AUTH_BASE_COST(7,816) plus per-authority runtime charges, with
no refunds. The delegation target now follows the normal EIP-2929 warm/cold
model. - Runtime out-of-gas no longer invalidates the transaction: it is included
as an OOG halt consuming all gas, with all runtime state changes (including
applied delegations) reverted, and returns the EIP-8037 reservoir. - Charging is incremental and stops at the first unaffordable charge, so later
authorities and a cold delegation target are never loaded and stay out of the
EIP-7928 BAL.
Other devnet-7 alignment (#3795)
- #11836: calldata floor anchored
on the decomposed intrinsic base instead of flatTX_BASE. - #11891: 7702
ACCOUNT_WRITE
charged on first write per authority, skipped only when already paid. - #11858:
CREATE/CREATE2
account-creation state gas charged conditionally at access in the creating
frame, refilled LIFO when the create fails. - #11854:
SSTOREmust cover the
slot access cost before the implicit read; an unaffordable cold access keeps
the slot out of the block access list. - EIP-8246 replaces the EIP-7708 delayed burn; system-contract addresses
updated per EIP-8282. JournalEntry::CodeChangenow records and restores the previous code hash and
bytecode, fixing a phantom BAL code write on reverted 7702 delegation changes.
Other changes
feat(database): database fallback mode for BAL misses (#3754).feat: configurable max refund quotient (#3757); BAL account change slices (#3762).fix(inspector): EIP-7708 transfer logs reach the inspector (#3816); stale
SELFDESTRUCT journal entries ignored (#3805); journal finalized on error so the
EIP-2929 warm set does not leak (#3780).fix:GasTrackerused-gas underflow (#3813);is_emptypreserved on 7702
accounts inload_account_delegated(#3802); storageoriginal_value
re-baselined only across tx boundaries (#3746); bytecode iterator fixes
(#3800, #3792).perf: fewer bounds checks in precompile parsing (#3784); no intermediate BAL
account allocation (#3775); no double cloning intake_n_reverts(#3539).chore(deps):crossbeam-epoch0.9.20 for RUSTSEC-2026-0204 (#3804).
See MIGRATION_GUIDE.md
for the full list.What's Changed
- feat(database): add database fallback mode for BAL misses by @mattsse in #3754
- chore(deps): bump crate-ci/typos from 1.46.1 to 1.47.2 by @dependabot[bot] in #3749
- chore(deps): bump taiki-e/install-action from 2.77.7 to 2.81.3 by @dependabot[bot] in #3748
- chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot[bot] in #3747
- feat: make max refund quotient configurable by @decofe in #3757
- chore: make
refundfallible by @klkvr in #3758 - feat(state): accept BAL account change slices by @mattsse in #3762
- chore(deny): allow proc-macro-error2 advisory by @mattsse in #3763
- fix(state): re-baseline storage original_value only across tx boundaries by @asdv23 in #3746
- perf: avoid intermediate BAL account allocation by @mattsse in #3775
- fix(inspect): finalize journal on error to prevent EIP-2929 warm set leak by @KyrinCode in #3780
- chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot[bot] in #3772
- chore(deps): bump taiki-e/install-action from 2.81.3 to 2.82.0 by @dependabot[bot] in #3774
- chore(deps): bump MarcoIeni/release-plz-action from 0.5.129 to 0.5.130 by @dependabot[bot] in #3759
- chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.18 to 2.0.20 by @dependabot[bot] in #3738
- chore(database): use Option::filter in BundleAccount::take_info_revert by @mrheyday in #3730
- refactor: clarify EIP-7702 regular-gas GasId names by @rakita in #3725
- perf(database): avoid double cloning in take_n_reverts by @saylor-mik87786 in #3539
- chore(deps): bump CodSpeedHQ/action from 4.15.1 to 4.17.5 by @dependabot[bot] in #3773
- test(bytecode): cover all truncated pushes by @decofe in #3783
- chore(deps): bump taiki-e/install-action from 2.82.0 to 2.82.3 by @dependabot[bot] in #3786
- chore(deps): bump CodSpeedHQ/action from 4.17.5 to 4.18.1 by @dependabot[bot] in #3785
- perf(precompile): reduce bounds checks in precompile parsing by @0xalpharush in #3784
- feat(amsterdam): glam devnet-6 gas accounting & EIP alignment by @rakita in #3782
- chore(deps): bump dependencies by @rakita in #3794
- fix(bytecode): avoid iterating legacy padding opcodes by @weifanglab in #3792
- refactor(revme): separate bytecode from account in test state by @rakita in #3803
- chore(deps): bump crossbeam-epoch to 0.9.20 (RUSTSEC-2026-0204) by @rakita in #3804
- chore(deps): bump taiki-e/install-action from 2.82.3 to 2.83.2 by @dependabot[bot] in #3809
- chore(deps): bump MarcoIeni/release-plz-action from 0.5.130 to 0.5.131 by @dependabot[bot] in #3810
- chore(deps): bump CodSpeedHQ/action from 4.18.1 to 4.18.5 by @dependabot[bot] in #3808
- chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.20 to 2.1.1 by @dependabot[bot] in #3811
- fix: prevent GasTracker used gas underflow by @1sgtpepper in #3813
- fix(inspector): ignore stale SELFDESTRUCT journal entries by @0xalpharush in #3805
- test(bytecode): cover InvalidMagic and verify EIP-7702 magic constants by @4waan in #3806
- fix(bytecode): preserve iterator position after truncated push by @pengqima in #3800
- fix(context): keep is_empty on EIP-7702 account in load_account_delegated by @cuiweixie in #3802
- chore(deps): bump crate-ci/typos from 1.47.2 to 1.48.0 by @dependabot[bot] in #3791
- feat(amsterdam): glamsterdam devnet-7 alignment (EIP-2780 runtime gas phase, fixtures v7.0.0) by @rakita in #3795
- refactor(handler): validate state before tracking gas by @klkvr in #3815
- fix(inspector): forward EIP-7708 transfer logs to the inspector by @rakita in #3816
- chore: release by @github-actions[bot] in #3814
- bump: prep v114 release by @rakita in #3819
New Contributors
- @asdv23 made their first contribution in #3746
- @KyrinCode made their first contribution in #3780
- @mrheyday made their first contribution in #3730
- @0xalpharush made their first contribution in #3784
- @weifanglab made their first contribution in #3792
- @1sgtpepper made their first contribution in #3813
- @4waan made their first contribution in #3806
- @pengqima made their first contribution in #3800
Full Changelog: v113...v114
Release notes
Open source →Added
- (amsterdam) glamsterdam devnet-7 alignment (EIP-2780 runtime gas phase, fixtures v7.0.0) (#3795)
- (amsterdam) glam devnet-6 gas accounting & EIP alignment (#3782)
Fixed
- Create transactions: new-account state gas is charged at runtime, only
-
41.0.011 Jun 2026Release notes
Open source →date: 11.06.2026
All crates are now versioned in lockstep, starting at 41.0.0 — hence the version jump (e.g.
revm-bytecode11.0.1 → 41.0.0). Released by #3711 and #3753; full diffv112...v113.Breaking:
TransientStorageis now a newtype overAddressMap<StorageKeyMap<StorageValue>>(#3736)OnStateHook::on_statetakesEvmStateby value;TransitionAccountgained a storage generic (#3732)GasStateTrremoved, superseded by the SSTORE gas hook (#3750)
Other highlights:
- SSTORE gas accounting hook (#3734, #3750),
StateBuilder::with_bundle_update_if(#3729),Account::is_changed(#3727) - Commit perf improvements (#3732)
- Fix out-of-bounds pointer in
analyze_legacy(#3752) and a const-eval panic inpop_address(#3735)
See MIGRATION_GUIDE.md for migration notes.
What's Changed
- docs: add v112 changelog entry by @rakita in #3724
- feat:
Account::is_changedby @klkvr in #3727 - feat(database): add conditional bundle update builder by @mattsse in #3729
- perf: avoid reallocations and cloning during commit by @klkvr in #3732
- feat: add SSTORE gas-state policy hook by @rakita in #3734
- feat: wrap TransientStorage as AddressMap<StorageKeyMap> by @rakita in #3736
- fix(interpreter): use IntoAddress in pop_address to avoid const-eval panic by @pjdurden in #3735
- chore: make
GasStateTrexposeStateLoadby @0xrusowsky in #3737 - Add MODEXP precompile benchmarks by @decofe in #3744
- refactor: remove
GasStateTrby @klkvr in #3750 - Run cargo fmt by @decofe in #3751
- fix(bytecode): avoid out-of-bounds pointer in analyze_legacy by @anders94 in #3752
- chore: release by @github-actions[bot] in #3711
- chore: bump all crates to v41.0.0 by @rakita in #3753
New Contributors
Full Changelog: v112...v113
-
18.0.326 May 2026 -
18.0.222 May 2026Release notes
Open source →Other
- updated the following local packages: revm-database-interface, revm-context-interface
-
18.0.121 May 2026 -
18.0.020 May 2026Release notes
Open source →Added
- (eip8037) Amsterdam bal-devnet-7 (#3667)
- (state) Optimized index type for transaction ID using non-max (#3610)
Fixed
- (context) use storage_by_account_id fast path in sload (#3535)
Other
- (context) centralize cfg-to-journal sync (#3686)
- change &mut self to &self for read-only methods (#3669)
- restructure
Journaltraits (#3663) - use get instead of get_mut (#3643)
- remove unused spec ids (#3649)
- (gas) simplify log2floor (#3629)
- audit #[allow] attributes (#3611)
- backport v107 release notes from branch (#3617)
- remove pointer field from GasParams (#3608)
- [breaking] return Result from instruction functions (#3558)
- enable and fix clippy::missing_const_for_fn (#3592)
- no alloc for empty accounts (#3590)
- avoid cloning precompiles on warmup (#3586)
- pass reservoir into
first_frame_input(#3578) - rm op-revm (migrated to ethereum-optimism/optimism) (#3568)
-
17.0.019 May 2026Nothing published for this version
-
16.0.117 Apr 2026Release notes
Open source →Other
- updated the following local packages: revm-state, revm-context-interface, revm-database-interface
-
16.0.010 Apr 2026Release notes
Open source →Added
- add EIP-8037 / TIP-1016 state gas support (#3406)
- add CallInput::as_bytes (#3515)
- add crate-level re-exports for all revm-* dependencies (#3507)
- Part of amsterdam devnet3 EIP updates (#3438)
Fixed
- make DummyHost return defaults instead of errors for storage ops (#3503)
- expose JournalLoadError from load_account_mut_skip_cold_load (#3477)
Other
- move EIP-8037 gas cap validation into validate_initial_tx_gas (#3552)
- deprecate set_spec and clean up deprecation attrs (#3550)
- add comment about frame stack initial capacity (#3527)
- use AnyError for PrecompileError::Fatal and EVMError::Custom (#3502)
- clarify PrecompileError::Fatal vs Other and EVMError::Custom (#3496)
-
15.0.004 Mar 2026 -
14.0.003 Mar 2026 withdrawnRelease notes
Open source →Added
- (cfg) add EIP-7708 configuration options (#3395)
- (gas_params) add configurable EIP-7702 auth refund (#3366)
- (gas) add tx_access_list_cost helper to GasParams (#3349)
- Implement EIP-7843 SLOTNUM opcode for Amsterdam (#3340)
- Implement EIP-7708 ETH transfers emit a log (#3334)
Fixed
- (context) correct
ResultGas::final_refunded()when floor gas is active (#3450) - (journal) emit EIP-7708 log for selfdestructed accounts with remaining balance (#3394)
Other
- move EIP-161 state clear into journal finalize (#3444)
- (gas) simplify log2floor implementation (#3440)
- [breaking] add logs to Revert and Halt variants of ExecutionResult (#3424)
- [breaking] add ResultGas struct to ExecutionResult (#3413)
- impl Display and Error for TxEnvBuildError and DeriveTxTypeError (#3409)
- [breaking] flatten Bytecode (#3375)
- remove GPL mention and update gmp feature comments (#3383)
- mark journal entry functions as deprecated (#3367)
- use fixed bytes hashmaps from alloy-core (#3358)
- (handler) extract duplicate ContextError handling (#3312)
-
13.0.015 Jan 2026Release notes
Open source →Added
- new gas params, tx initial gas and codedeposit (#3260)
- move GasParams to Cfg (#3229)
- Propagate
map-foldhashFeature Through Dependency Chain (#3252) - BAL EIP-7928 (#3070)
- Gas params (#3132)
- JournaledAccount sload/sstore (#3201)
- Restrict Database::Error. JournaledAccountTr (#3199)
Fixed
- fix API comment (#3293)
- (test) one gasid name is missing (#3290)
- set transaction_id on new account (#3204)
Other
- (gas_params) add dedicated GasIds for sstore_refund (#3310)
- remove redundant clones in gas params defaults (#3300)
- fix typos, grammar errors, and improve documentation consistency (#3294)
- happy new year, 2026 licence (#3272)
- add Display trait for ExecutionResult and related types (#3267)
- add Display for HaltReason and OutOfGasError (#3265)
- (cleanup) remove unused duplicate ContextSetters trait in context crate (#3225)
- (fmt) merge all imports (#3184)
-
12.1.014 Nov 2025 -
12.0.012 Nov 2025 -
11.1.010 Nov 2025 withdrawnNothing published for this version
-
11.0.210 Nov 2025 -
11.0.107 Nov 2025 -
11.0.030 Oct 2025 withdrawn -
10.1.215 Oct 2025Release notes
Open source →Other
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface, revm-context-interface
-
10.1.115 Oct 2025 -
10.1.010 Oct 2025Release notes
Open source →Other
- updated the following local packages: revm-database-interface, revm-database, revm-context-interface
-
10.0.109 Oct 2025 withdrawnNothing published for this version
-
10.0.007 Oct 2025Release notes
Open source →Added
- Support bubbling up first precompile error messages (#2905)
- add transaction index to batch execution error handling (#3000)
- Add Str(Cow<'static, str>) to InvalidTransaction error enum (#2998)
- allow EIP-7623 to be disabled (#2985)
- Introduced
all_mutandallfunctions to ContextTr (#2992) - send bytecode with call input (#2963)
- (op-revm) Add an option to disable "fee-charge" on
op-revm(#2980) - (revme) ef blockchain tests cli (#2935)
Fixed
- Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)
- FrameStack mark push/end_init as unsafe (#2929)
- skip cold load on oog (#2903)
Other
- make precompile error pub (#3057)
- changelog update for v87 (#3056)
- add boundless (#3043)
- helper function gas_balance_spending (#3030)
- remove unreachable zero-denominator check in fake_exponential (#3039)
- add ensure_enough_balance helper (#3033)
- add default impl for tx_local_mut and tx_journal_mut (#3029)
- (op-revm) propagate optional_fee_charge feature (#3020)
- prealloc few frames (#2965)
- add SECURITY.md (#2956)
- (cleanup) Remove EIP-7918 related functions and EIP file (#2925)
- cargo update (#2930)
-
9.1.023 Sep 2025Release notes
Open source →Added
- (op-revm) Add an option to disable "fee-charge" on
op-revm(#2980)
- (op-revm) Add an option to disable "fee-charge" on
-
9.0.224 Aug 2025Release notes
Open source →Fixed
- EIP-7702 target check to return correct error (#2896)
Other
- skip drain if checkpoing is inconsistent (#2911)
-
9.0.112 Aug 2025Release notes
Open source →Other
- updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-context-interface, revm-database, revm-database-interface
-
9.0.007 Aug 2025 -
8.0.423 Jul 2025 -
8.0.314 Jul 2025Release notes
Open source →Fixed
- fix typo: Rename is_created_globaly to is_created_globally (#2692)
Other
- add comprehensive tests for TxEnvBuilder (#2690)
-
8.0.203 Jul 2025Release notes
Open source →Other
- updated the following local packages: revm-bytecode, revm-state, revm-database-interface, revm-context-interface
-
8.0.101 Jul 2025 -
8.0.030 Jun 2025Nothing published for this version
-
7.0.120 Jun 2025 -
7.0.019 Jun 2025 withdrawn -
6.0.006 Jun 2025Release notes
Open source →Added
- (Osaka) EIP-7825 tx limit cap (#2575)
- added TxEnv::new_bench() add util function (#2556)
- Config blob basefee fraction (#2551)
- expand timestamp/block_number to u256 (#2546)
- transact multi tx (#2517)
Fixed
- (multitx) Add local flags for create and selfdestruct (#2581)
Other
- tag v75 revm v24.0.1 (#2563) (#2589)
- support functions for eip7918 (#2579)
- (docs) add lints to database-interface and op-revm crates (#2568)
- (docs) context crate lints (#2565)
- unify calling of journal account loading (#2561)
- ContextTr rm *_ref, and add *_mut fn (#2560)
- (cfg) add tx_chain_id_check fields. Optimize effective gas cost calc (#2557)
- add dot to trigger ci (#2552)
-
5.0.131 May 2025 -
5.0.023 May 2025Release notes
Open source →Added
- make blob max number optional (#2532)
- add builder pattern for TxEnv (#2518)
- make Journal::set_code to be EIP-7702 zero address bytecode aware (#2511)
Other
-
4.1.007 May 2025 -
4.0.007 May 2025 withdrawnRelease notes
Open source →Added
- (Osaka) disable EOF (#2480)
- skip cloning of call input from shared memory (#2462)
- Add a custom address to the CreateScheme. (#2464)
- (Handler) merge state validation with deduct_caller (#2460)
- add chain_ref method to ContextTr trait (#2450)
- (tx) Add Either RecoveredAuthorization (#2448)
- (EOF) Changes needed for devnet-1 (#2377)
- Move SharedMemory buffer to context (#2382)
Fixed
- use HashMap::default in LocalContext (#2451)
Other
- typos (#2474)
- copy edit The Book (#2463)
- remove default capacity on journal reverts (#2449)
- (journal) flatten journal entries (#2440)
- clone_from precompile addresses (#2438)
- bump dependency version (#2431)
- fixed broken link (#2421)
- backport from release branch (#2415) (#2416)
- (lints) revm-context lints (#2404)
-
3.0.115 Apr 2025 -
3.0.009 Apr 2025 -
2.0.028 Mar 2025 -
1.0.024 Mar 2025 -
1.0.0-alpha.621 Mar 2025 pre-releaseRelease notes
Open source →Added
- InspectEvm fn renames, inspector docs, book cleanup (#2275)
Fixed
- remove duplicated load_account() (#2225)
Other
-
1.0.0-alpha.516 Mar 2025 pre-release -
1.0.0-alpha.412 Mar 2025 pre-releaseRelease notes
Open source → -
1.0.0-alpha.311 Mar 2025 pre-release -
1.0.0-alpha.210 Mar 2025 pre-releaseRelease notes
Open source →Added
- added with_ref_db fn to Context (#2164)
- remove specification crate (#2165)
- make journal entries generic (#2154)
- Standalone Host, remove default fn from context (#2147)
- add constructor with hardfork (#2135)
- allow host to be implemented on custom context (#2112)
- add the debug impl for Evm and EvmData type (#2126)
Other
- pre EIP-7702 does not need to load code (#2162)
- JournalTr, JournalOutput, op only using revm crate (#2155)
- rename transact_previous to replay, move EvmTr traits (#2153)
- move mainnet builder to handler crate (#2138)
- remove
optional_gas_refundas unused (#2132) - Adding function derive_tx_type to TxEnv (#2118)
- remove wrong
&mut/TODO, and avoid uselessget_mut(#2111) - export eip2930 eip7702 types from one place (#2097)
- move all dependencies to workspace (#2092)
- re-export all crates from
revm(#2088)
-
1.0.0-alpha.116 Feb 2025 pre-releaseRelease notes
Open source →Added
- Split Inspector trait from EthHandler into standalone crate (#2075)
- Introduce Auth and AccessList traits (#2079)
- integrate alloy-eips (#2078)
- (eip7702) devnet6 changes and bump eest tests (#2055)
- Evm structure (Cached Instructions and Precompiles) (#2049)
- Context execution (#2013)
- EthHandler trait (#2001)
- (EIP-7840) Add blob schedule to execution client cfg (#1980)
- (eip7702) apply latest EIP-7702 changes, backport from v52 (#1969)
- simplify Transaction trait (#1959)
- align Block trait (#1957)
- expose precompile address in Journal, DB::Error: StdError (#1956)
- Make Ctx journal generic (#1933)
- Restucturing Part7 Handler and Context rework (#1865)
- restructuring Part6 transaction crate (#1814)
- (examples) generate block traces (#895)
- implement EIP-4844 (#668)
- (Shanghai) All EIPs: push0, warm coinbase, limit/measure initcode (#376)
- Migrate
primitive_types::U256toruint::Uint<256, 4>(#239) - Introduce ByteCode format, Update Readme (#156)
Fixed
- clear JournalState and set first journal vec (#1929)
- Clear journal (#1927)
- (revme) include correct bytecode for snailtracer (#1917)
- fix typos (#620)
Other
- set alpha.1 version
- Add helpers with_inspector with_precompile (#2063)
- simplify some generics (#2032)
- Add helper functions for JournalInit #1879 (#1961)
- fix journal naming for inc/dec balance (#1976)
- Make inspector use generics, rm associated types (#1934)
- fix comments and docs into more sensible (#1920)
- tie journal database with database getter (#1923)
- Move CfgEnv from context-interface to context crate (#1910)
- Bump new logo (#1735)
- (README) add rbuilder to used-by (#1585)
- added simular to used-by (#1521)
- add Trin to used by list (#1393)
- Fix typo in readme (#1185)
- Add Hardhat to the "Used by" list (#1164)
- Add VERBS to used by list (#1141)
- license date and revm docs (#1080)
- (docs) Update the benchmark docs to point to revm package (#906)
- (docs) Update top-level benchmark docs (#894)
- clang requirement (#784)
- Readme Updates (#756)
- Logo (#743)
- book workflow (#537)
- add example to revm crate (#468)
- Update README.md (#424)
- add no_std to primitives (#366)
- revm-precompiles to revm-precompile
- Bump v20, changelog (#350)
- typos (#232)
- Add support for old forks. (#191)
- revm bump 1.8. update libs. snailtracer rename (#159)
- typo fixes
- fix readme typo
- Big Refactor. Machine to Interpreter. refactor instructions. call/create struct (#52)
- readme. debuger update
- Bump revm v0.3.0. README updated
- readme
- Add time elapsed for tests
- readme updated
- Include Basefee into cost calc. readme change
- Initialize precompile accounts
- Status update. Taking a break
- Merkle calc. Tweaks and debugging for eip158
- Replace aurora bn lib with parity's. All Bn128Add/Mul/Pair tests passes
- TEMP
- one tab removed
- readme
- README Example simplified
- Gas calculation for Call/Create. Example Added
- readme usage
- README changes
- Static gas cost added
- Subroutine changelogs and reverts
- Readme postulates
- Spelling
- Restructure project
- First iteration. Machine is looking okay