NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3386 most downloaded on crates.io
Revm primitives types
Last release 1 months ago
26 Aug 2026
Ships fairly regularly
a new release about every 5 weeks
Most releases are documented
notes for 38 of 49 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
55 releases · first in 2023
One column per quarter.
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
Nothing published for this version
*(eip8037)* Amsterdam bal-devnet-7
Part of amsterdam devnet3 EIP updates
Implement EIP-7708 ETH transfers emit a log
Nothing published for this version
### Other - tag v96 revm v31.0.0
resize short addresses bitvec instead of reallocating
*(revme)* ef blockchain tests cli
small performance and safety improvements
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.
*(osaka)* update EIP-7825 constant
configurable contract size limit
*(Osaka)* EIP-7825 tx limit cap
*(Osaka)* modexp input limit and gas change, EIP-7823 and EIP-7883
*(EOF)* Changes needed for devnet-1
add 0x prefix to b256! and address! calls
Remove LATEST variant from SpecId enum
Stable version
Stable version
make str to SpecId conversion fallible
*(docs)* MyEvm example and book cleanup
### Fixed - correct propagate features
move all dependencies to workspace
*(eip7702)* apply latest EIP-7702 changes, backport from v52
Nothing published for this version
blst reprice, remove g1/g2 mul, eest test bump
Nothing published for this version
bump alloy-eip7702 and remove Parity re-export
### Other - bump alloy-eip7702
### Other - update Cargo.toml dependencies
### Added - EIP-7702 Add u8 validity (#1824) - Rename PRAGUE_EOF to OSAKA (#1822) - *(EIP-7702)* devnet-4 changes (#1821) ### Other - bump newest prim
Nothing published for this version
*(deps)* bump alloy-primitives from 0.8.0 to 0.8.2
### Other - Bump new logo (#1735) - bump kzg-rs version
*(EOF)* Add non-returning CALLF/JUMPF checks
Nothing published for this version
*(EOF)* Bytecode::new_raw supports EOF, new_raw_checked added
*(Precompiles)* Throw fatal error if c-kzg is disabled
*(EOF)* Put EOF bytecode behind an Arc
JournaledState (#1437)add Bytecode::original_bytecode_slice to match BytecodeLocked
Bytecode::original_bytecode_slice to match BytecodeLocked (#1286)TooManyBlobs err enum (#1375)Bytecode::bytes (#1344)with_chain_id for CfgEnv (#1327)fix eip3155 summary gas_used bug and add fork name
implement Default for EnvWithHandlerCfg
*(primitives)* derive Default for SpecId
bump c-kzg, add portable feature, make it default
rename and pass optimism-default-handler to revm-primitives
deprecate RefDBWrapper for more generic WrapDatabaseRef.
Canyon hardfork behind optimism feature flag (#871)auto_impls to revm traits (#799)op-reth sync patches (#824)DatabaseRef trait functions to *_ref (#795)optimism InvalidTransaction errors. (#884)cargo update, bump alloy-primitives (#880)AccountStatus (#844)date 02.10.2023
Migration to alloy primitive types.
Full git log:
date 28.09.2023
Summary of biggest changes:
RefDBWrapper for more generic WrapDatabaseRef.Error for EVMError.non_exhaustive to accommodate future changes.InvalidHeader error that contains prevrandao and blob gas not set errors.KzgSetting that is sed inside EnvCfg.Full git log:
Default for other databases (#691) (3 weeks ago) <DaniPopes>RefDBWrapper (#696) (3 weeks ago) <DaniPopes>unreachable_pub items (#598) (6 weeks ago) <DaniPopes>Error for EVMError (#559) (9 weeks ago) <Yiannis Marangos>date: 03.05.2023
small release:
date: 14.04.2023
One change:
date: 04.04.2023
Mosty utility functions, additional checks and convenience changes. Old bytecode that supported gas block was replaced with jumpmap only bitvec.
Changelog:
992a11c - (HEAD -> v/310, origin/lib_versions) bump all (81 minutes ago) <rakita>
c2ee8ff - add feature for ignoring base fee check (#436) (6 days ago) <Dan Cline>
2d5b710 - Comment Fix (#430) (2 weeks ago) <David Kulman>
d0038e3 - chore(deps): bump arbitrary from 1.2.3 to 1.3.0 (#428) (2 weeks ago) <dependabot[bot]>
3d8ca66 - feat: add Output::into_data (#420) (3 weeks ago) <Matthias Seitz>
dd0e227 - feat: Add all internals results to Halt (#413) (4 weeks ago) <rakita>
d8dc652 - fix(interpreter): halt on CreateInitcodeSizeLimit (#412) (4 weeks ago) <Roman Krasiuk>
a193d79 - chore: enabled primtive default feature in precompile (#409) (4 weeks ago) <Matthias Seitz>
33bf8a8 - feat: use singular bytes for the jumpmap (#402) (4 weeks ago) <Bjerg>
394e8e9 - feat: extend SuccessOrHalt (#405) (4 weeks ago) <Matthias Seitz>
cff1070 - Update readmdoc of perf_analyse_created_bytecodes (#404) (4 weeks ago) <rakita>
7bb73da - feat: Add check for chainID (#393) (4 weeks ago) <chirag-bgh>
3a17ca8 - feat: add b256<->u256 from impls (#398) (4 weeks ago) <Matthias Seitz>
3789509 - feat: add API to retrieve unpadded bytecode (#397) (5 weeks ago) <Wodann>
f91d5f9 - refactor: remove gas blocks (#391) (5 weeks ago) <Bjerg>
5efd9d1 - impl NonceTooHigh/ NonceTooLow checks (#383) (6 weeks ago) <gd>
188dacf - improvement: derive Debug for DatabaseComponentError (#377) (7 weeks ago) <Wodann>
0401cfd - Add B160/B256 From primitive_types traits (#380) (7 weeks ago) <Francesco Cinà>
08ce847 - feat(Shanghai): All EIPs: push0, warm coinbase, limit/measure initcode (#376) (7 weeks ago) <rakita>
6710511 - add no_std to primitives (#366) (7 weeks ago) <rakita>
5788340 - chore(deps): bump bytes from 1.3.0 to 1.4.0 (#355) (7 weeks ago) <dependabot[bot]>
b4c62e9 - chore: rename Then to Than (#368) (7 weeks ago) <Matthias Seitz>
1c3e9e3 - improvement: use alloc & core for Arc impl (#367) (8 weeks ago) <Wodann>
3158ce9 - feat: implement Debug for DatabaseComponentError if supported (#363) (8 weeks ago) <Wodann>
d9727c2 - improvement: add error details to InvalidTransaction::LackOfFundForGasLimit (#364) (8 weeks ago) <Wodann>
5d6ecd0 - improvement: implement BlockHash for Arc<BlockHashRef> (#361) (8 weeks ago) <Wodann>
ae9baba - improvement: implement State for Arc<StateRef> (#360) (8 weeks ago) <Wodann>
1fca102 - chore(deps): bump proptest from 1.0.0 to 1.1.0 (#358) (8 weeks ago) <dependabot[bot]>
9b663bb - feat: Different OutOfGas Error types (#354) (9 weeks ago) <Chirag Baghasingh>
date: 29.01.2023
Interpreter was extracted from main revm crate at the revm v3.0.0 version.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →