A 45 byte delegatecall proxy that reuses the PC opcode as its zero constant and forwards every call to one hardcoded implementation.
Historical Significance
Minimal proxies were how a service could give every user their own address without paying to deploy real logic each time. This one predates the ERC-1167 standard and takes a different route to the same goal, trading the standard's fixed layout for a few fewer bytes. Reading it is a reminder that early deployers optimised for deployment gas rather than for tooling that could recognise the pattern later.
Token Information
Key Facts
Description
The entire contract is nine operations. It copies the calldata to memory offset zero, delegatecalls a hardcoded implementation with all available gas, copies the return data back over the same memory, and then returns or reverts with it depending on the result.
The byte saving comes from using PC as a source of zero. At the first instruction the program counter is zero, so a single byte stands in for the two bytes a PUSH1 0x00 would cost, and the value is then duplicated for the offsets that follow. Nothing is stored, nothing is configurable, and there is no admin path; the implementation address is fixed in the code at deployment.
Source Verified
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.
Bytecode Overview
Verified Source Available
This contract has verified source code.
View Verification ProofShow source code (Yul)
// Submitted by EthereumHistory (ethereumhistory.com)
//
// Minimal delegatecall proxy, originally hand-written EVM assembly. The runtime
// is reproduced byte for byte with Yul verbatim so the deployed code can be
// published and checked.
object "Proxy" {
code {
datacopy(0, dataoffset("Proxy_deployed"), datasize("Proxy_deployed"))
return(0, datasize("Proxy_deployed"))
}
object "Proxy_deployed" {
code {
verbatim_0i_0o(hex"5836818037808036817364b29dc43e817817cf77468c8dda63d98ce08fb25af43d91908282803e602b57fd5bf3")
}
}
}