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.
42.0.0 - 2026-07-16
- (amsterdam) glam devnet-6 gas accounting & EIP alignment (#3782)
- make max refund quotient configurable (#3757)
- clarify EIP-7702 regular-gas GasId names (#3725)
41.0.0 - 2026-06-11
19.0.3 - 2026-05-26
- Bake EIP-8037 CPSB into gas params (#3714)
19.0.2 - 2026-05-22
- updated the following local packages: revm-database-interface
19.0.1 - 2026-05-21
- (eip8037) remove dead refill_amount tracking (#3699)
19.0.0 - 2026-05-19
- (eip8037) Amsterdam bal-devnet-7 (#3667)
- (state) Optimized index type for transaction ID using non-max (#3610)
- (context) use storage_by_account_id fast path in sload (#3535)
- restructure
Journaltraits (#3663) - 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)
- avoid cloning precompiles on warmup (#3586)
- pass reservoir into
first_frame_input(#3578) - rm op-revm (migrated to ethereum-optimism/optimism) (#3568)
17.0.1 - 2026-04-17
- pass reservoir into
first_frame_input(#3578)
17.0.0 - 2026-04-10
- add EIP-8037 / TIP-1016 state gas support (#3406)
- add CallInput::as_bytes (#3515)
- add crate-level re-exports for all revm-* dependencies (#3507)
- make DummyHost return defaults instead of errors for storage ops (#3503)
- expose JournalLoadError from load_account_mut_skip_cold_load (#3477)
- move EIP-8037 gas cap validation into validate_initial_tx_gas (#3552)
- 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)
16.0.0 - 2026-03-04
- bump revm-database-interface to v10.0.0
15.0.0 - 2026-03-02
- (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)
- (context) correct
ResultGas::final_refunded()when floor gas is active (#3450) - (journal) emit EIP-7708 log for selfdestructed accounts with remaining balance (#3394)
- use provided code hash when setting account code (#3324)
- (gas) simplify log2floor implementation (#3440)
- [breaking] add logs to Revert and Halt variants of ExecutionResult (#3424)
- [breaking] add ResultGas struct to ExecutionResult (#3413)
- [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)
14.0.0 - 2026-01-15
- new gas params, tx initial gas and codedeposit (#3260)
- move GasParams to Cfg (#3229)
- Gas params (#3132)
- JournaledAccount sload/sstore (#3201)
- Restrict Database::Error. JournaledAccountTr (#3199)
- (test) one gasid name is missing (#3290)
- (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)
- (fmt) merge all imports (#3184)
13.1.0 - 2025-11-14
- Add set_nonce journal entry and fn (#3163)
- (context) add mark_cold method to JournaledAccount (#3160)
13.0.0 - 2025-11-10
- merge v98 versions bumps (#3155)
12.0.1 - 2025-11-07
- updated the following local packages: revm-primitives, revm-state, revm-database-interface
12.0.0 - 2025-10-30
- JournaledAccount, a nice way to update and track changes (#3086)
- dont load access list immediately (#3116)
- hook up Cfg::memory_limit (#3129)
11.1.2 - 2025-10-15
- updated the following local packages: revm-state, revm-database-interface
11.1.1 - 2025-10-15
- updated the following local packages: revm-primitives, revm-state, revm-database-interface
11.1.0 - 2025-10-09
- updated the following local packages: revm-database-interface
11.0.0 - 2025-10-07
- 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)
- Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)
- FrameStack mark push/end_init as unsafe (#2929)
- skip cold load on oog (#2903)
- 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)
- prealloc few frames (#2965)
- add SECURITY.md (#2956)
- (cleanup) Remove EIP-7918 related functions and EIP file (#2925)
- cargo update (#2930)
10.2.0 - 2025-09-23
- (op-revm) Add an option to disable "fee-charge" on
op-revm(#2980)
10.1.0 - 2025-08-23
- add generic state to ResultAndState (#2897)
10.0.1 - 2025-08-12
10.0.0 - 2025-08-06
- short address for journal cold/warm check (#2849)
- correct various typos in documentation and comments (#2855)
- swapped comments for db and db_mut methods in JournalTr trait (#2774)
- rm redundant lifetime constraints (#2850)
- update README.md (#2842)
- add rust-version and note about MSRV (#2789)
9.0.0 - 2025-07-23
- fully deprecate serde-json (#2767)
8.0.1 - 2025-07-03
- updated the following local packages: revm-state, revm-database-interface
8.0.0 - 2025-06-30
- fix copy-pasted inner doc comments (#2663)
7.0.1 - 2025-06-20
- call stack_frame.clear() at end (#2656)
7.0.0 - 2025-06-19
- remove EOF (#2644)
- configurable contract size limit (#2611) (#2642)
- (precompile) rug/gmp-based modexp (#2596)
- change blob_max_count to max_blobs_per_tx (#2608)
- add optional priority fee check configuration (#2588)
- re-use frame allocation (#2636)
- store coinbase address separately to avoid cloning warm addresses in the common case (#2634)
- rename
transactmethods (#2616)
6.0.0 - 2025-06-06
- (Osaka) EIP-7825 tx limit cap (#2575)
- Config blob basefee fraction (#2551)
- expand timestamp/block_number to u256 (#2546)
- transact multi tx (#2517)
- support functions for eip7918 (#2579)
- (docs) add lints to database-interface and op-revm crates (#2568)
- (docs) context crate lints (#2565)
- ContextTr rm *_ref, and add *_mut fn (#2560)
- (cfg) add tx_chain_id_check fields. Optimize effective gas cost calc (#2557)
5.0.0 - 2025-05-22
- make blob max number optional (#2532)
- add TxEnvBuilder::build_fill (#2536)
- make crates.io version badge clickable (#2526)
- Storage Types Alias (#2461)
4.1.0 - 2025-05-07
Dependency bump
4.0.0 - 2025-05-07
- (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)
3.0.0 - 2025-04-09
- Effective gas price should check tx type (#2375)
- make blob params u64 (#2385)
2.0.0 - 2025-03-28
- Add JournalInner (#2311)
1.0.0 - 2025-03-24
Stable version
1.0.0-alpha.6 - 2025-03-21
- Remove PrecompileError from PrecompileProvider (#2233)
- allow reuse of API for calculating initial tx gas for tx (#2215)
- use AccessListItem associated type instead of AccessList (#2214)
1.0.0-alpha.5 - 2025-03-16
- (docs) MyEvm example and book cleanup (#2218)
1.0.0-alpha.4 - 2025-03-12
1.0.0-alpha.3 - 2025-03-11
- correct propagate features (#2177)
- Add comments to handler methods (#2188)
1.0.0-alpha.2 - 2025-03-10
- remove specification crate (#2165)
- Standalone Host, remove default fn from context (#2147)
- implement AccessListTr for Vec (#2136)
- allow host to be implemented on custom context (#2112)
- JournalTr, JournalOutput, op only using revm crate (#2155)
- remove
optional_gas_refundas unused (#2132) - fix eofcreate error typo (#2120)
- Add docs to revm-bytecode crate (#2108)
- export eip2930 eip7702 types from one place (#2097)
- move all dependencies to workspace (#2092)
1.0.0-alpha.1 - 2025-02-16
- Introduce Auth and AccessList traits (#2079)
- 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)
- (EIP-7623) Increase calldata cost. backport from rel/v51 (#1965)
- 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)
- (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)
- Clear journal (#1927)
- fix typos (#620)
- set alpha.1 version
- API cleanup (#2067)
- relax halt reason bounds (#2041)
- simplify some generics (#2032)
- 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