Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
ERC-1822, titled Universal Upgradeable Proxy Standard (UUPS) and created on 4 March 2019, has Stagnant status. The proxy delegates every call to the implementation via delegatecall and remains a minimal forwarder, while each implementation defines its own upgrade rules. The standard requires every implementation to include the proxiableUUID function, used as a compatibility check: before upgrading, it verifies that the new implementation respects the same UUPS storage slot, avoiding leaving the proxy locked after an incompatible upgrade. The upgrade function is invoked through the proxy onto the implementation.
The comparison with the transparent proxy clarifies the design. Both resolve function selector clashing, but by different routes. The transparent proxy keeps upgrade logic in the proxy and routes by caller, admin or user, which raises the cost of every call and enlarges the proxy. UUPS moves that logic into the implementation: a smaller, cheaper and reusable proxy, with the caveat that deploying an implementation without an upgrade function loses the ability to update.
Both UUPS and the transparent proxy use EIP-1967 as the storage slot standard, deterministic and collision-resistant locations holding the implementation and admin addresses, preventing the implementation variable from clashing with the logic storage. The industry's canonical implementation is OpenZeppelin's UUPSUpgradeable.sol, which includes proxiableUUID and the upgrade authorization control.
Also known as
- ERC1822
- Universal Upgradeable Proxy Standard (UUPS)





