Changelog
v0.3.0 - 2025-09-10
Added
- UUPS Proxy: 
UUPSUpgradeablecontract andIErc1822Proxiabletrait for user-controlled upgradeable proxies. - Beacon Proxy: 
BeaconProxycontract andIBeaconinterface, supporting the beacon proxy pattern for upgradeable contracts. - Upgradeable Beacon: 
UpgradeableBeaconcontract, allowing upgradeable beacon-based proxies with owner-controlled implementation upgrades. - Enumerable Sets: Generic 
EnumerableSettype with implementations forAddress,B256,U8,U16,U32,U64,U128,U256. - Token Receivers: 
IErc1155ReceiverandIErc721Receivertraits with correspondingErc1155HolderandErc721Holdercontracts. - Access Control Extensions: 
AccessControlEnumerableextension that supports role member enumeration. - Enhanced SafeERC20: Additional methods including 
try_safe_transfer,try_safe_transfer_from, and relaxed call variants. - Cryptography: EDDSA (Ed25519) signature scheme, Twisted-Edwards Curves, and enhanced elliptic curve configurations (secp256k1, Baby Jubjub, Bandersnatch, Curve25519, Jubjub).
 - Precompiles: Enhanced 
Precompilestrait withp256_verifywrapper function for ergonomic precompile invocation. - Type Conversions: Bidirectional conversions between 
ruint::Uintand crypto libraryUinttypes, plus conversions betweenUintand primitive integer types. 
Changed
- Type Aliases: Standardized 
FixedBytes<4>toB32,FixedBytes<32>toB256, andStorageFixedBytes<32>toStorageB256. - API Simplifications: Simplified Pedersen hash API to accept any type implementing 
Into<P::BaseField>. - Interface Compliance: Removed redundant interface ID checks in 
Erc1155Supply. 
Changed (Breaking)
- Interface Naming: Renamed Solidity interfaces for consistency (
IERC721Receiver→IErc721ReceiverInterface,IERC1155Receiver→IErc1155ReceiverInterface). - Trait Bounds: Added 
IErc721Receivertrait bound toIErc721Wrappertrait. - Error Handling: Replaced associated error types with raw byte output (
Vec<u8>) in receiver traits for ABI compliance. - Deref Removal: Removed 
Derefimplementations for extension contracts to improve API clarity. - API Simplifications: Prefix 
ct_removed for constant functions atopenzeppelin-crypto. 
Full Changelog: https://github.com/OpenZeppelin/rust-contracts-stylus/compare/v0.2.0...v0.3.0.
v0.2.0 - 2025-06-20
Added
- ERC-1155 token (
Erc1155,Burnable,MetadataUri,Supply,UriStorage). - ERC-4626 “Tokenized Vault Standard” and ERC-20 Flash Mint extension.
 - ERC-2981 on-chain royalties.
 - ERC-20 Utils: 
SafeErc20. - Finance: 
VestingWallet. - Ownership: 
Ownable2Step. - Token wrappers: 
Erc20Wrapper,Erc721Wrapper. - Cryptography: Poseidon2 hash, Pedersen hash (Starknet params), Short-Weierstrass Curves.
 - Math & utils: optimised 
Uint<_>big-integer ops (mul_div, shift-left/right, checked/unchecked add/sub). - Constructors now supported across all contracts.
 - All events derive 
Debug; contracts implementMethodErrorandIErc165. 
Changed
- Keccak constants pre-computed at compile-time.
 - Optimisations across contracts and crypto libraries.
 
Changed (Breaking)
- Stylus SDK ↑ to v0.9.0 (
cargo-stylus↑ to v0.6.0) - Contracts refactored to new inheritance model.
 - Interface IDs now returned by 
fn interface_id();IErc165::supports_interfacetakes&self;Erc165struct removed. - Public state fields made private.
 - Feature 
stdremoved from libraries. 
Fixed
- Correct ERC-165 IDs for 
IErc721Metadata,IErc721Enumerable, etc. #[interface_id]macro now propagates super-traits correctly.- Edge-cases in Merkle proofs, big-int overflows and re-entrancy bugs resolved.
 
Full Changelog: https://github.com/OpenZeppelin/rust-contracts-stylus/compare/v0.1.2...v0.2.0.
v0.1.2 - 2025-04-12
Summary
Breaking Change
- build: in v0.1.1 bump sdk to 0.6.1. #628
 
Full Changelog: https://github.com/OpenZeppelin/rust-contracts-stylus/compare/v0.1.1...v0.1.2
v0.1.1 - 2024-10-28
Summary
Changed
- Mini alloc is now used by default via the stylus-sdk. This avoids conflicts with duplicate 
#[global_allocator]definitions. #373 - Removed the panic handler from the library, making it easier for 
stdandno_stdprojects to use the library. #373 
Full Changes List
- fix: reference-types error on nightly version by @qalisander in #375
 - fix: use mini-alloc by default and remove panic handler by @qalisander and @ggonzalez94 in #373
 - build: bump v0.1.1 by @bidzyyys in #382
 
Full Changelog: https://github.com/OpenZeppelin/rust-contracts-stylus/compare/v0.1.0...v0.1.1
v0.1.0 - 2024-10-17
First release 🎉