# openzeppelin-contracts v5.7.0 - Product: openzeppelin-contracts (https://whatsnew.fyi/product/openzeppelin-contracts) - Vendor: OpenZeppelin - Date: 2026-07-29 - Version: v5.7.0 - Original notes: https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.7.0 - Permalink: https://whatsnew.fyi/product/openzeppelin-contracts/releases/v5.7.0 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** — EIP712: Drop the storage fallback for long name/version values, requiring both parameters to fit in a ShortString (at most 31 bytes) or the constructor reverts with ShortStrings.StringTooLong - **changed** — ERC2771Forwarder: Rename custom error ERC2771ForwarderFailureInAtomicBatch to ERC2771ForwarderNoRefundReceiver - **changed** — Governor and IGovernor: Replace GovernorQueueNotImplemented with GovernorProposalQueueingNotRequired and GovernorProposalQueueingFailed - **deprecated** — Checkpoints, DoubleEndedQueue, EnumerableMap and EnumerableSet: Deprecate the at function for accessing a specific index, introducing new pos functions to replace them - **added** — BlockHeader: Add a new library for verifying and parsing block headers - **added** — Create3: Add a library to deploy contracts using the CREATE3 mechanism, allowing the deployment address to depend only on the salt and the deployer - **added** — ERC1967Clones: Add a library to deploy minimal ERC-1967 proxies via CREATE or CREATE2 - **added** — ERC6372Utils: Add utility library for ERC-6372 clock mode validation, supporting block number and timestamp modes with consistency checks - **added** — RateLimiter: Add a library that provides primitives for limiting the rate at which an action can be performed, with a refilling token bucket and a sliding window counter - **added** — SimulateCall: Add call simulation utilities that allow inspecting return data from contract calls by executing them in a non-mutating, revert-based context - **changed** — Arrays: Reduce reliance on recursion to prevent stack overflow and support larger arrays - **changed** — ERC2771Forwarder: Revert the entire atomic batch if a call with value fails - **fixed** — InteroperableAddress: Fix overflow in the parsing functions that caused silent misparse of large interoperable addresses - **changed** — InteroperableAddress: Reject inputs with both chain reference and addresses empty - **added** — Memory: Add a isReserved(Slice) function that checks if the memory occupied by the slice is reserved - **removed** — Memory: Remove the asBytes32 and asPointer functions to reduce the risk of mistakes when manipulating memory pointers - **changed** — RLP: Perform a memory copy when decoding bytes objects containing a single byte instead of returning a reference to the input - **changed** — AccessManager: Treat setAuthority differently in canCall to prevent bypassing the updateAuthority security using an execute - **added** — AccessManager: Allow a role admin to cancel operations that grant or revoke roles - **changed** — AccountERC7579: Revert the uninstallation of any module if its onUninstall callback reverts, giving modules control over their own uninstallation ###### Breaking changes - `EIP712`: Drop the storage fallback for long `name`/`version` values. Both parameters must now fit in a `ShortString` (at most 31 bytes) or the constructor reverts with `ShortStrings.StringTooLong`. Storing the domain exclusively in immutables keeps the domain (and downstream `ERC7739` verification) consistent when the contract is used behind a proxy or clone without an initializer. ([#6631](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6631)) - `ERC2771Forwarder`: custom error `ERC2771ForwarderFailureInAtomicBatch` has been renamed to `ERC2771ForwarderNoRefundReceiver`. ([#6415](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/6415)) - `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)) ###### Ac _[Truncated at 4000 characters — full notes: https://github.com/OpenZeppelin/openzeppelin-contracts/releases/tag/v5.7.0]_