Skip to main content
Utilities for working with proxy patterns including ERC-1967 storage slots, ERC-1167 minimal proxies, and ERC-3448 MetaProxies.
Implements ERC-1967 (Proxy Storage Slots), ERC-1167 (Minimal Proxy), and ERC-3448 (MetaProxy).

Overview

Proxy patterns enable contract upgradeability by separating logic (implementation) from state (proxy). The proxy delegates calls to the implementation while maintaining its own storage. Proxy Patterns:
  • ERC-1967: Standard storage slots for proxy metadata (implementation, admin, beacon)
  • ERC-1167: Minimal proxy clone (45 bytes runtime) for gas-efficient deployment
  • ERC-3448: MetaProxy with embedded metadata for factory patterns

Quick Start

Proxy Patterns Comparison

API Documentation

Constants

ERC-1967 storage slot constants

generateErc1167

Generate minimal proxy bytecode

parseErc1167

Parse minimal proxy implementation

isErc1167

Check if bytecode is ERC-1167

generateErc3448

Generate MetaProxy with metadata

parseErc3448

Parse MetaProxy implementation and metadata

isErc3448

Check if bytecode is ERC-3448

Usage Patterns

UUPS Proxy Detection

Clone Factory

MetaProxy Factory with Metadata

Specification References

  • Storage - Namespaced storage for upgradeable contracts
  • Address - Address utilities including CREATE2
  • Bytecode - Bytecode analysis and manipulation