NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3434 most downloaded on crates.io
Revm Interpreter that executes bytecode.
Last release 14 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 5 weeks
Nearly every release is documented
notes for 56 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
80 releases · first in 2023
One column per quarter.
Revert "fix(eip8037): place the system call state-gas margin ( #3892 )" by @rakita in #3903
REVM v117 updates revm-context and revm-precompile to 43.0.1 .
REVM v117 updates revm-context and revm-precompile to 43.0.1.
Full Changelog: v116...v117
Full Changelog: v116...v117
Glamsterdam change for gas refill on frame return.
Full Changelog: v117...v118
REVM v116 brings every publishable workspace crate to version 43.0.0 . This release aligns the implementation with Glamsterdam devnet-8, adds asynchro
REVM v116 brings every publishable workspace crate to version 43.0.0. This release aligns the implementation with Glamsterdam devnet-8, adds asynchronous database execution, and includes correctness and performance improvements across the EVM stack.
asyncdb feature provides fiber-backed async database support, including async transaction and system-call APIs.MemoryOOG, and failed CREATE pre-access checks no longer warm or add the destination account to the block access list.State, and revme blockchain tests now validate receipt-trie roots.See the migration guide for full upgrade details.
Full Changelog: v115...v116
v114 aligns REVM with Glamsterdam devnet-7 and the tests-glamsterdam-devnet@v7.0.0 fixtures — all state_tests and blockchain_tests pass. All crates ar
Date: 2026-07-23
v114 aligns REVM with Glamsterdam devnet-7 and the
tests-glamsterdam-devnet@v7.0.0 fixtures — all state_tests and
blockchain_tests pass. All crates are released as 42.0.0.
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.
REGULAR_PER_AUTH_BASE_COST (7,816) plus per-authority runtime charges, withTX_BASE.ACCOUNT_WRITECREATE/CREATE2SSTORE must cover theJournalEntry::CodeChange now records and restores the previous code hash andfeat(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); stalefix: GasTracker used-gas underflow (#3813); is_empty preserved on 7702load_account_delegated (#3802); storage original_valueperf: fewer bounds checks in precompile parsing (#3784); no intermediate BALtake_n_reverts (#3539).chore(deps): crossbeam-epoch 0.9.20 for RUSTSEC-2026-0204 (#3804).See MIGRATION_GUIDE.md
for the full list.
refund fallible by @klkvr in #3758Full Changelog: v113...v114
All crates are now versioned in lockstep, starting at 41.0.0 — hence the version jump (e.g. revm-bytecode 11.0.1 → 41.0.0). Released by #3711 and #375
date: 11.06.2026
All crates are now versioned in lockstep, starting at 41.0.0 — hence the version jump (e.g. revm-bytecode 11.0.1 → 41.0.0). Released by #3711 and #3753; full diff v112...v113.
Breaking:
TransientStorage is now a newtype over AddressMap<StorageKeyMap<StorageValue>> (#3736)OnStateHook::on_state takes EvmState by value; TransitionAccount gained a storage generic (#3732)GasStateTr removed, superseded by the SSTORE gas hook (#3750)Other highlights:
StateBuilder::with_bundle_update_if (#3729), Account::is_changed (#3727)analyze_legacy (#3752) and a const-eval panic in pop_address (#3735)See MIGRATION_GUIDE.md for migration notes.
Account::is_changed by @klkvr in #3727GasStateTr expose StateLoad by @0xrusowsky in #3737GasStateTr by @klkvr in #3750Full Changelog: v112...v113
Bake EIP-8037 CPSB into gas params
updated the following local packages: revm-context-interface
*(eip8037)* remove dead refill_amount tracking
ci: add cargo-semver-checks to catch breaking changes in PRs by @decofe in #3476
frame_start and frame_end on Inspector trait (#3518) — New inspector hooks for observing frame lifecycle events.CallInput::as_bytes (#3515) — Convenience accessor for raw call input bytes.CallInput (#3537) — Access local context fields directly from CallInput.--keep-going (#3491) — Summary of all failures printed at the end of test runs.JournalLoadError from load_account_mut_skip_cold_load (#3477) — Error type was previously hidden.Bytecode Ord consistent with PartialEq and Hash (#3479) — Fixes ordering inconsistency.DummyHost return defaults instead of errors for storage ops (#3503) — Better behavior for testing.AnyError for PrecompileError::Fatal and EVMError::Custom (#3502) — Replaces stringly-typed errors with AnyError.set_spec and clean up deprecation attrs (#3550)validate_initial_tx_gas (#3552)underflow variable to success by @zeroprooff in #3486frame_start and frame_end to Inspector trait by @mablr in #3518Option by @klkvr in #3532Full Changelog: v105...v106
Bytecode::new_analyzed as unsafe (#3557)first_frame_input (#3578)Nothing published for this version
pass reservoir into first_frame_input
first_frame_input (#3578)deprecate set_spec and clean up deprecation attrs
[breaking] bump revm-context-interface to v16.0.0 (⚠ dependency bump)
Implement EIP-7843 SLOTNUM opcode for Amsterdam
add new_oog helpers to InterpreterResult, CallOutcome, CreateOutcome, and FrameResult
new_oog helpers to InterpreterResult, CallOutcome, CreateOutcome, and FrameResult (#3309)correctly handle selfdestruct cold load
*(interpreter)* deprecate public otry! macro
Nothing published for this version
updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-context-interface
Nothing published for this version
return MemoryLimitOOG when memory_limit is enabled
updated the following local packages: revm-bytecode, revm-state, revm-context-interface
support legacy JumpTable serde format
### Other - remove deprecated methods
Support bubbling up first precompile error messages
updated the following local packages: revm-context-interface
*(interpreter)* correct CreateContractStartingWithEF halt mapping
updated the following local packages: revm-primitives, revm-bytecode, revm-context-interface
short address for journal cold/warm check
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
*(interpreter)* update CLZ cost
simplify gas calculations by introducing a used() method
updated the following local packages: revm-bytecode, revm-context-interface
Nothing published for this version
updated the following local packages: revm-context-interface
Dependency bump
Dependency bump
skip cloning of call input from shared memory
*(tests)* Add dupn, swapn and exhange tests
Remove LATEST variant from SpecId enum
Stable version
Stable version
allow reuse of API for calculating initial tx gas for tx
updated the following local packages: revm-primitives, revm-bytecode, revm-context-interface
### Added - add custom error to context
### Fixed - correct propagate features
set zero if blockhash is out of range
Standalone Host, remove default fn from context
Evm structure (Cached Instructions and Precompiles)
### Other - revm v19.4.0 tag v54
*(EIP-7623)* adjuct floor gas check order
*(Prague)* EIP-7623 Increase Calldata Cost
bump alloy-eip7702 and remove Parity re-export
Parity re-export (#1842)updated the following local packages: revm-primitives
updated the following local packages: revm-primitives
updated the following local packages: revm-primitives
updated the following local packages: revm-primitives
### Other - make clippy happy
### Other - Bump new logo
*(eip7702)* Impl newest version of EIP
Your coding agent can read these notes before it upgrades. Set up the MCP server →