# openzeppelin-contracts v5.7.0-rc.0 - Product: openzeppelin-contracts (https://whatsnew.fyi/product/openzeppelin-contracts) - Vendor: OpenZeppelin - Date: 2026-07-15 - Version: v5.7.0-rc.0 - Original notes: https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.7.0-rc.0 - Permalink: https://whatsnew.fyi/product/openzeppelin-contracts/releases/v5.7.0-rc.0 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **removed** — Replace GovernorQueueNotImplemented with GovernorProposalQueueingNotRequired and GovernorProposalQueueingFailed in Governor and IGovernor - **deprecated** — Deprecate the at function for accessing a specific index in Checkpoints, DoubleEndedQueue, EnumerableMap and EnumerableSet, replaced by new pos functions - **added** — Add BlockHeader library for verifying and parsing block headers - **added** — Add Create3 library to deploy contracts using the CREATE3 mechanism - **added** — Add ERC1967Clones library to deploy minimal ERC-1967 proxies via CREATE or CREATE2 - **added** — Add ERC6372Utils utility library for ERC-6372 clock mode validation with block number and timestamp modes - **added** — Add RateLimiter library providing primitives for limiting action rates with token bucket and sliding window counter strategies - **added** — Add SimulateCall utility for inspecting return data from contract calls in a non-mutating context - **changed** — Reduce reliance on recursion in Arrays to prevent stack overflow and support larger arrays - **changed** — Revert the entire atomic batch in ERC2771Forwarder if a call with value fails - **fixed** — Fix overflow in InteroperableAddress parsing functions that caused silent misparse of large interoperable addresses - **changed** — Reject inputs with both chain reference and addresses empty in InteroperableAddress - **added** — Add isReserved function to Memory library that checks if memory occupied by a slice is reserved - **removed** — Remove asBytes32 and asPointer functions from Memory library to reduce mistakes when manipulating memory pointers - **changed** — Perform memory copy when decoding single byte bytes objects in RLP instead of returning a reference to input - **changed** — Treat setAuthority differently in AccessManager canCall to prevent bypassing updateAuthority security using execute - **changed** — Do not revert if hook checks fail during hook module uninstallation in AccountERC7579Hooked - **changed** — Drop the draft- prefix from ERC4337Utils and IERC4337 file names now that ERC-4337 is finalized - **added** — Add Paymaster simple ERC-4337 paymaster implementation - **added** — Add PaymasterERC20 extension of Paymaster that sponsors user operations against payment in ERC-20 tokens ###### Breaking changes - `Governor` and `IGovernor`: Replace `GovernorQueueNotImplemented` with `GovernorProposalQueueingNotRequired` and `GovernorProposalQueueingFailed`. ([#6582](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6582)) ###### Deprecations - `Checkpoints`, `DoubleEndedQueue`, `EnumerableMap` and `EnumerableSet`: Deprecate the `at` function for accessing a specific index of the structure. We introduce new `pos` functions to replace them. ([#6494](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6494)) ###### Changes by category ###### Utils ###### Additions - `BlockHeader`: Add a new library for verifying and parsing block headers. ([#6395](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6395)) - `Create3`: Add a library to deploy contracts using the `CREATE3` mechanism, allowing the deployment address to depend only on the salt and the deployer, independently of the deployed bytecode. ([#6402](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6402)) - `ERC1967Clones`: Add a library to deploy minimal ERC-1967 proxies via `CREATE` or `CREATE2`. ([#6405](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6405)) - `ERC6372Utils`: Add utility library for ERC-6372 clock mode validation, supporting block number and timestamp modes with consistency checks. ([#6483](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6483)) - `RateLimiter`: Add a library that provides primitives for limiting the rate at which an action can be performed, with two complementary strategies: a refilling token bucket and a sliding window counter. ([#6490](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6490)) - `SimulateCall`: Add a new call simulation utilities that allow inspecting return data from contract calls by executing them in a non-mutating, revert-based context. ([#6290](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6290)) ###### Other - `Arrays`: Reduce reliance on recursion to prevent stack overflow and support larger arrays. ([#6324](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6324)) - `ERC2771Forwarder`: Revert the entire atomic batch if a call with value fails. ([#6391](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6391)) - `InteroperableAddress`: Fix overflow in the parsing functions that caused silent misparse of large interoperable addresses. ([#6372](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6372)) - `InteroperableAddress`: Reject inputs with both chain reference and addresses empty. ([#6331](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6331)) - `Memory`: Add a `isReserved(Slice)` function that checks if the memory occupied by the slice is reserved (i.e. before the free memory pointer). ([#6302](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6302)) - `Memory`: Remove the `asBytes32` and `asPointer` function to reduce the risk of mistakes when manipulating memory pointers. ([#6348](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6348)) - `RLP`: Perform a memory copy when decoding `bytes` objects containing a single byte instead of returning a reference to the input. ([#6303](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6303)) ###### Access - `AccessManager`: Treat `setAuthority` differently in `canCall` to prevent bypassing the `updateAuthority` security using an `execute`. ([#6388](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6388)) ###### Account - `AccountERC7579Hooked`: Do not revert if hook checks fail during the hook module uninstallation. ([#6390](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6390)) - `ERC4337Utils`, `IERC4337`: Drop the `draft-` prefix from the file names now that ERC-4337 is finalized. Imports must be updated from `account/utils/draft-ERC4337Utils.sol` to `account/utils/ERC4337Utils.sol` and from `interfaces/draft-IERC4337.sol` to `interfaces/IERC4337.sol`. ([#6581](h _[Truncated at 4000 characters — full notes: https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.7.0-rc.0]_