PackageTrack
Sign in Get early access

revm-database

Revm Database implementations

42.0.0 6.2M downloads/mo #4061 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 5 weeks

Nearly every release is documented

notes for 30 of 31 stable releases

2 versions withdrawn

withdrawn after publishing

2 years old

38 releases · first in 2025

19 releases in the last 12 months

see the full history below

Release timeline

38 releases · Feb 2025 to Jul 2026
2026
Release Pre-release Withdrawn

Releases

latest 38
  1. 42.0.0 23 Jul 2026
    Release notes

    REVM v42.0.0 Release Notes

    Date: 2026-07-23

    v114 aligns REVM with Glamsterdam devnet-7 and the
    [email protected] fixtures — all state_tests and
    blockchain_tests pass. 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 flat TX_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: SSTORE must 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::CodeChange now 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: GasTracker used-gas underflow (#3813); is_empty preserved on 7702
      accounts in load_account_delegated (#3802); storage original_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 in take_n_reverts (#3539).
    • chore(deps): crossbeam-epoch 0.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 refund fallible 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

    Full Changelog: v113...v114

    Open source →
  2. 41.0.0 11 Jun 2026
    Release notes

    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:

    • 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 in pop_address (#3735)

    See MIGRATION_GUIDE.md for migration notes.

    What's Changed

    • docs: add v112 changelog entry by @rakita in #3724
    • feat: Account::is_changed by @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 GasStateTr expose StateLoad by @0xrusowsky in #3737
    • Add MODEXP precompile benchmarks by @decofe in #3744
    • refactor: remove GasStateTr by @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

    Open source →
    Release notes

    Added

    • (database) add conditional bundle update builder (#3729)

    Other

    • avoid reallocations and cloning during commit (#3732)
    Open source →
  3. 15.0.2 26 May 2026
    Release notes

    Added

    • add OnStateHook for State<DB> (#3710)
    Open source →
  4. 15.0.1 22 May 2026
    Release notes

    Other

    • updated the following local packages: revm-database-interface
    Open source →
  5. 15.0.0 20 May 2026
    Release notes

    Added

    • show address or slot in BAL error (#3619)
    • (state) Optimized index type for transaction ID using non-max (#3610)
    • (account) Optimized index type for account ID using non-max (#3605)
    • (database) add State::has_bal helper (#3604)

    Fixed

    • gracefully handle commits of non-cached accounts (#3657)

    Other

    • (database) preserve commit_iter semantics (#3681)
    • update alloy-eip7928 to newer version (#3627)
    • backport v107 release notes from branch (#3617)
    • enable and fix clippy::missing_const_for_fn (#3592)
    • rm op-revm (migrated to ethereum-optimism/optimism) (#3568)
    Open source →
  6. 14.0.0 19 May 2026

    Nothing published for this version

  7. 13.0.1 17 Apr 2026
    Release notes

    Other

    • updated the following local packages: revm-state, revm-database-interface
    Open source →
  8. 13.0.0 10 Apr 2026
    Release notes

    Added

    • add crate-level re-exports for all revm-* dependencies (#3507)

    Other

    • remove no-op background transition merge builder toggle (#3510)
    Open source →
  9. 12.0.0 04 Mar 2026
    Release notes

    Other

    • bump revm-database-interface to v10.0.0
    Open source →
  10. 11.0.0 03 Mar 2026 withdrawn
    Release notes

    Added

    • (database) add clear() to CacheState and TransitionState (#3390)
    • (database) add iter and lowest helpers to BlockHashCache (#3352)
    • (database) add StateBuilder::with_bal_builder_if (#3351)
    • (database) add storage getter to BundleState (#3321)

    Fixed

    • forward storage_by_account_id in WrapDatabaseRef (#3441)
    • (database) allow EIP161 state clear for empty Loaded and Changed accounts (#3421)
    • (db) use self.storage() in storage_by_account_id to avoid cache bypass (#3385)
    • (bal) fix populated account if pre-state was none (#3357)
    • (database) BlockHashCache incorrectly returns zero for block 0 (#3319)

    Other

    • move EIP-161 state clear into journal finalize (#3444)
    • deduplicate CacheDB::basic by delegating to load_account (#3447)
    • (database) add reserve calls in merge_transitions and extend_state (#3430)
    • reserve capacity in add_transitions (#3373)
    • remove GPL mention and update gmp feature comments (#3383)
    • use fixed bytes hashmaps from alloy-core (#3358)
    • Use O(1) ring buffer cache for block hashes instead of BTreeMap (#3299)
    Open source →
  11. 10.0.0 15 Jan 2026
    Release notes

    Added

    • (cache-db) Added pritty_print for CacheDB (#3296)
    • Propagate map-foldhash Feature Through Dependency Chain (#3252)
    • BAL EIP-7928 (#3070)
    • DatabaseCommitExt::drain_balances (#3205)
    • DatabaseCommitExt + increment_balances (#3195)
    • DatabaseCommit::commit_iter (#3197)
    • Restrict Database::Error. JournaledAccountTr (#3199)

    Fixed

    • (database) return error instead of panic when block not found in AlloyDB (#3284)
    • (database) make DatabaseCommit dyn-compatible (#3264)
    • (database) prevent deadlock in (#3251)
    • (database) verify handle belongs to current runtime before block_in_place (#3212)

    Other

    • fix typos, grammar errors, and improve documentation consistency (#3294)
    • fix typos and grammar in database crate (#3279)
    • happy new year, 2026 licence (#3272)
    • avoid collect in CacheState commit (#3242)
    • (database) use fixed hashmaps in cache db (#3231)
    • (database) avoid triple cache lookup (#3232)
    • optimize vector initialization with size hints in state and precompile modules (#3191)
    Open source →
  12. 9.0.6 14 Nov 2025
    Release notes

    Fixed

    • (database) return correct bytecode in BenchmarkDB::code_by_hash (#3170)
    Open source →
  13. 9.0.5 10 Nov 2025
    Release notes

    Fixed

    • (op) Ensure L1Block account is always loaded (#3150)
    Open source →
  14. 9.0.4 07 Nov 2025
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-database-interface
    Open source →
  15. 9.0.3 30 Oct 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-state, revm-database-interface
    Open source →
  16. 9.0.2 15 Oct 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-state, revm-database-interface
    Open source →
  17. 9.0.1 15 Oct 2025
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-state, revm-database-interface
    Open source →
  18. 9.0.0 09 Oct 2025
    Release notes

    Other

    • (database) optimize BTreeMap lookup in BundleState::build() (#3068)
    • (database) remove unnecessary Send+Sync bounds from TryDatabaseCommit for Arc (#3063)
    • remove deprecated methods (#3050)
    Open source →
  19. 8.0.0 07 Oct 2025
    Release notes

    Fixed

    • Apply spelling corrections from PRs #2926, #2915, #2908 (#2978)

    Other

    • add boundless (#3043)
    • (database) extract duplicate test balance constants (#3017)
    • pretty print state in revme statetest (#2979)
    • (database) avoid panic by conditionally using block_in_place (#2927)
    • add SECURITY.md (#2956)
    Open source →
  20. 7.0.5 24 Aug 2025
    Release notes

    Other

    • (database) remove unused dependencies (#2885)
    • add AccountStatus unit test (#2869)
    Open source →
  21. 7.0.4 12 Aug 2025
    Release notes

    Other

    • use mem::take (#2870)
    • small performance and safety improvements (#2868)
    • use HashMap::or_insert_with lazily compute (#2864)
    Open source →
  22. 7.0.3 07 Aug 2025
    Release notes

    Other

    • update README.md (#2842)
    • add rust-version and note about MSRV (#2789)
    Open source →
  23. 7.0.2 23 Jul 2025
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode, revm-database-interface, revm-state
    Open source →
  24. 7.0.1 03 Jul 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-state, revm-database-interface
    Open source →
  25. 7.0.0 30 Jun 2025
    Release notes

    Other

    • updated the following local packages: revm-bytecode, revm-state, revm-database-interface
    Open source →
  26. 6.0.0 19 Jun 2025
    Release notes

    Added

    • (precompile) rug/gmp-based modexp (#2596)

    Fixed

    • change account state to None if NotExisting on insert_account_info (#2630)

    Other

    • lints for revm-database (#2639)
    • bump alloydb test (#2640)
    Open source →
  27. 5.0.0 06 Jun 2025
    Release notes

    Added

    • (database) Implement DatabaseRef for State (#2570)
    • added TxEnv::new_bench() add util function (#2556)
    • transact multi tx (#2517)

    Other

    • Avoid clone before converting ref BundleAccount to CacheAccount (#2574)
    • (docs) add lints to database-interface and op-revm crates (#2568)
    Open source →
  28. 4.0.1 23 May 2025
    Release notes

    Other

    • bump alloy libs (#2533)
    • make crates.io version badge clickable (#2526)
    • Storage Types Alias (#2461)
    Open source →
  29. 4.0.0 07 May 2025
    Release notes

    Dependency bump

    Open source →
  30. 3.1.0 07 May 2025 withdrawn
    Release notes

    Added

    • (database) re-export all public items from alloydb when feature … (#2443)

    Other

    • copy edit The Book (#2463)
    • bump dependency version (#2431)
    • fixed broken link (#2421)
    • remove alloy-sol-types deps (#2411)
    Open source →
  31. 3.0.0 09 Apr 2025
    Release notes

    Other

    • clean unsed indicatif (#2379)
    • add 0x prefix to b256! and address! calls (#2345)
    • (database) remove auto_impl dependency (#2344)
    Open source →
  32. 2.0.0 28 Mar 2025
    Release notes

    Other

    • make number more readable (#2300)
    Open source →
  33. 1.0.0 24 Mar 2025
    Release notes

    Other

    Open source →
  34. 1.0.0-alpha.5 21 Mar 2025 pre-release
    Release notes

    Other

    • make clippy happy (#2274)
    • simplify single UT for OpSpecId compatibility. (#2216)
    Open source →
  35. 1.0.0-alpha.4 16 Mar 2025 pre-release
    Release notes

    Other

    • updated the following local packages: revm-primitives, revm-bytecode
    Open source →
  36. 1.0.0-alpha.3 11 Mar 2025 pre-release
    Release notes

    Fixed

    • correct propagate features (#2177)

    Other

    Open source →
  37. 1.0.0-alpha.2 10 Mar 2025 pre-release
    Release notes

    Fixed

    • use correct HashMap import (#2148)
    • (op) Handler deposit tx halt, catch_error handle (#2144)

    Other

    • (db) separate fields from CacheDB into Cache (#2131)
    • PrecompileErrors to PrecompileError (#2103)
    • (deps) bump breaking deps (#2093)
    • move all dependencies to workspace (#2092)
    • re-export all crates from revm (#2088)
    Open source →
  38. 1.0.0-alpha.1 16 Feb 2025 pre-release
    Release notes

    Added

    • Context execution (#2013)
    • EthHandler trait (#2001)
    • expose precompile address in Journal, DB::Error: StdError (#1956)
    • integrate codspeed (#1935)
    • (database) implement order-independent equality for Reverts (#1827)
    • couple convenience functions for nested cache dbs (#1852)
    • Restucturing Part7 Handler and Context rework (#1865)
    • add support for async database (#1809)
    • restructure Part2 database crate (#1784)
    • (examples) generate block traces (#895)
    • implement EIP-4844 (#668)
    • (Shanghai) All EIPs: push0, warm coinbase, limit/measure initcode (#376)
    • Migrate primitive_types::U256 to ruint::Uint<256, 4> (#239)
    • Introduce ByteCode format, Update Readme (#156)

    Fixed

    • no_std for revm-database (#2077)
    • fix typos (#620)

    Other

    • set alpha.1 version
    • Bump licence year to 2025 (#2058)
    • add comment for pub function and fix typo (#2015)
    • bump alloy versions to match latest (#2007)
    • fix comments and docs into more sensible (#1920)
    • bumps select alloy crates to 0.6 (#1854)
    • (TransitionAccount) remove unneeded clone (#1860)
    • (CacheAccount) remove unneeded clone (#1859)
    • bump alloy to 0.4.2 (#1817)
    • (primitives) replace HashMap re-exports with alloy_primitives::map (#1805)
    • 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
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive