Skip to content

Releases: foundry-rs/foundry

Nightly (2026-05-04)

04 May 07:42
Immutable release. Only release title and notes can be modified.
58e0595

Choose a tag to compare

Nightly (2026-05-04) Pre-release
Pre-release

Other

Full Changelog:

nightly-a5b7cc8da131956513da478f9fa99d2e0e29419d...nightly-58e0595f3533074705d2057ffe183dbf86b08c3e

Nightly (2026-05-03)

03 May 07:36
Immutable release. Only release title and notes can be modified.
a5b7cc8

Choose a tag to compare

Nightly (2026-05-03) Pre-release
Pre-release

Other

  • anvil: unify Tempo nonce markers across send RPCs (#14536) by @isagi-y22
  • fix(forge): flaky_gas_report_fallback_with_calldata deployment cost (#14545) by @mablr

Full Changelog:

nightly-415cef0d0730270402e24d0a30d5c086a7a240b1...nightly-a5b7cc8da131956513da478f9fa99d2e0e29419d

Nightly (2026-05-01)

01 May 07:40
Immutable release. Only release title and notes can be modified.
415cef0

Choose a tag to compare

Nightly (2026-05-01) Pre-release
Pre-release

Other

Full Changelog:

nightly-233324ea3161d971459ac9ef86fb5af4e7aa711e...nightly-415cef0d0730270402e24d0a30d5c086a7a240b1

Nightly (2026-04-30)

30 Apr 07:34
Immutable release. Only release title and notes can be modified.
233324e

Choose a tag to compare

Nightly (2026-04-30) Pre-release
Pre-release

Other

  • chore(lint): move low-severity lints to low/ (#14500) by @stevencartavia
  • fix(ext): bump forge-std commit in external integration tests (#14504) by @zerosnacks
  • fix(foundryup): sort nightly releases chronologically before picking latest (#14507) by @zerosnacks
  • feat(doc): migrate from solang to solar (#14447) by @mablr
  • fix(cheatcodes): fix solc 0.8.35 error keyword warning (#14509) by @figtracer
  • chore(tests): bump forge-std version (#14510) by @github-actions[bot]
  • chore(ext): bump revs in external integration tests (#14506) by @zerosnacks

Full Changelog:

nightly-5864f675120ce4f619871f9001555bc387331120...nightly-233324ea3161d971459ac9ef86fb5af4e7aa711e

v1.7.0

28 Apr 15:48
Immutable release. Only release title and notes can be modified.
f83bad9

Choose a tag to compare

Foundry v1.7.0

Foundry v1.7.0 brings major improvements to fuzzing and invariant testing, upstreams Tempo support into the main Foundry toolchain, adds support for HTTP 402-gated RPC endpoints through MPP, improves browser-wallet and batching workflows across Forge and Cast, and moves Foundry releases to an immutable versioning model.

v1.7.0 folds in the previously cut v1.6.0-rc1 release candidate, which never shipped as stable, together with the changes merged since.

Highlights

Testing & Fuzzing

  • Parallelized stateless fuzzing across worker threads with shared corpus (#12713)
  • Invariant check_interval config — deep invariant runs up to 3.6× faster with check_interval = 10 (#13133)
  • Invariant optimization mode — search input sequences that maximize a target value, with realtime best-value tracking and persistence (#13196, #14147, #14226)
  • Improved reentrancy detection in call_override invariant testing (#13127)
  • Time-based invariant fuzzing via max_time_delay / max_block_delay configs (#12616)

Network Updates

  • Osaka is the default EVM hardfork (#13112), with precompile decoding for Prague BLS12-381 and Osaka P256VERIFY (#13094)
  • Per-network hardfork and network keys in foundry.toml (#14312, #14337), with auto-detection from a fork's chain ID (#14193)

Tempo

Tempo support has been upstreamed from the standalone tempoxyz/tempo-foundry fork into foundry-rs/foundry. The fork is deprecated; a normal foundryup install now ships Tempo support in forge, cast, anvil, and chisel.

This is 110 merged PRs spanning execution, RPC, transaction signing and validation, the AA/access-key flow, TIP20 fee tokens, cast keychain, forge create/script/test/coverage integration, Anvil genesis + pool + tracing, and CI. Notable entry points include:

  • forge init --network tempo (#12819)
  • cast keychain for Tempo access keys (#14166, #14222)
  • cast tip20 create and TIP20 virtual address salt mining (#14160, #14365)
  • --tempo.fee-token on forge script and cast send (#14204, #14184)
  • Tempo network auto-detection on anvil --fork-url (#14279)

Full list in the Tempo section below.

MPP (Machine Payments Protocol)

Foundry now supports MPP (Machine Payments Protocol) for HTTP 402-gated RPC endpoints. When an RPC provider returns 402, Foundry signs and pays the challenge with the configured wallet, then retries the request — no API keys or upfront provisioning. A built-in URL mapping covers known providers, and a WebSocket transport handles long-lived subscriptions over paid connections (#14192, #14404, #14353).

Forge & Cast

  • Browser wallet support across forge script (#12952), forge create (#14394), cast send (#13747), and cast erc20 (#14395) — sign and broadcast transactions directly from a browser wallet extension instead of provisioning a hot key on disk
  • Realtime console.log in forge and chisel (#13321) and console.table support (#14338)
  • forge inspect <x> linearization (#13704) makes it easier to inspect where inherited functions are resolved from
  • forge clone Sourcify support (#12900)
  • cast batch-send / batch-mktx for native call batching (#13973)
  • cast --curl flag to print equivalent curl commands (#13114)

Cheatcodes & Lint

  • New cheatcodes: executeTransaction (#13437), Ed25519 crypto (#13450), getRecordedLogsJson (#13093), currentFilePath (#13735)
  • New forge-lint rules: incorrect ERC20 interface (#14428), incorrect ERC721 interface (#14412), block-timestamp (#14431), and custom errors (#13126). These catch incorrect ERC20/ERC721 interface implementations, timestamp-dependent logic, and custom-error usage issues.

Benchmarks

Live dashboard: getfoundry.sh/benchmarks

Headline wins per command, comparing v1.5.1 against the v1.7.0 release-cycle build:

Command Repository v1.5.1 v1.7.0 Delta
forge test aave/aave-v4 4m 14.2s 3m 29.1s ~45s faster
forge fuzz ithacaxyz/account 2.81s 1.59s ~1.8× faster
forge test --isolated aave/aave-v4 4m 14.0s 3m 53.4s ~20s faster
forge coverage aave/aave-v4 11m 20.8s 10m 58.7s ~22s faster

Raw data: benches/LATEST.md.

Performance-related features (22 PRs)
  • perf: add dist profile for smaller release binaries (#13097) by @onbjerg
  • perf: compute literals only once (#12716) by @DaniPopes
  • perf: remove redundant allocation in receipt bloom calculation (#13035) by @marukai67
  • perf(forge): skip external identifiers for local tests (#13189) by @gakonst
  • perf(anvil): avoid redundant block queries in ots_getBlockTransactions (#13243) by @aganisgash
  • perf(evm): wrap Executor.backend in Arc for copy-on-write cloning (#13327) by @gakonst
  • perf(cheatcodes): loop invariant code motion by hand (#13357) by @cuiweixie
  • perf(linking): replace double hash map lookup with single get (#13361) by @cuiweixie
  • perf(anvil): reuse storage root from prove_storage instead of recomputing (#13363) by @thunggis
  • perf(verify): reuse transaction from earlier RPC call instead of fetching twice (#13391) by @thunggis
  • perf: avoid checksum (#13374) by @cuiweixie
  • perf(invariant): avoid cloning state changeset in fuzz runs (#13398) by @thunggis
  • perf(traces): deduplicate addresses before external fetching (#13320) by @marukai67
  • perf(primitives): avoid cloning receipts (#13396) by @thunggis
  • perf(config): skip redundant remapping detection in _with_root (#13389) by @0xMars42
  • perf(anvil): avoid redundant cloning and hash recomputation in mem backend (#13744) by @edgarr1986
  • perf(anvil): remove redundant clone in create_access_list (#13887) by @edgarr1986
  • perf(evm): make NestedEvm::to_evm_env consuming to avoid useless clone (#13893) by @mablr
  • perf(evm): remove unnecessary clones in do_call_end/do_create_end (#13913) by @figtracer
  • perf(evm): remove EvmEnv/TxEnv cloning in DBs & CheatcodesExecutor impls (#13960) by @mablr
  • perf(traces): skip precompile addresses in identify_addresses (#14198) by @decofe
  • feat: make asm-keccak a default feature in all binaries (#14389) by @DaniPopes

Breaking / Behavior Changes

  • forge and anvil now default to Osaka ([#13112](ht...
Read more

Nightly (2026-04-28)

28 Apr 16:08
Immutable release. Only release title and notes can be modified.
88c8549

Choose a tag to compare

Nightly (2026-04-28) Pre-release
Pre-release

Other

Full Changelog:

nightly-5e88010a83d1b87b8f4d13058e42a2949d3e9dc0...nightly-88c854987f2e9c8df31756546eeec710fa5bc88f

Nightly (2026-04-29)

29 Apr 07:33
Immutable release. Only release title and notes can be modified.
5864f67

Choose a tag to compare

Nightly (2026-04-29) Pre-release
Pre-release

Other

Full Changelog:

nightly-88c854987f2e9c8df31756546eeec710fa5bc88f...nightly-5864f675120ce4f619871f9001555bc387331120

Nightly (2026-04-28)

28 Apr 06:58
5e88010

Choose a tag to compare

Nightly (2026-04-28) Pre-release
Pre-release

Other

Full Changelog:

nightly...nightly-5e88010a83d1b87b8f4d13058e42a2949d3e9dc0

Nightly

10 Jul 18:13
5e88010

Choose a tag to compare

Nightly Pre-release
Pre-release

Other

Full Changelog:

nightly...nightly-5e88010a83d1b87b8f4d13058e42a2949d3e9dc0

Nightly (2026-04-27)

26 Apr 06:42
dd0a687

Choose a tag to compare

Nightly (2026-04-27) Pre-release
Pre-release
  • No changes