With the latest release of iExec PoCo v6.0.0, we’re introducing a major architectural change under the hood: the proxy contract design has been migrated from the ERC-1538 Transparent Contract Standard to the ERC-2535 Diamond Standard. While the public APIs and business logic remain the same for regular users, this shift future-proofs the protocol and improves compatibility with modern tooling.
The Proof-of-Contribution protocol (PoCo) is the on-chain governance and consensus layer of the iExec network. It ensures that confidential tasks are executed reliably, payments are settled securely, and all actors follow the agreed rules. In essence, PoCo is the trust layer for providers and requesters, just as iExec is the trust layer for DePIN and AI.
To allow the protocol to evolve over time, the PoCo smart contracts were implemented using an upgradeable proxy design. The pattern of choice was the ERC-1538 Transparent Contract Standard, ensuring extensibility while preserving transparency for users.
Both ERC-1538 and ERC-2535 are standards that define how upgradeable proxy contracts can be structured. They share the same core goal but they take different approaches. ERC-1538 was an early attempt to formalize transparent upgrades, while ERC-2535 (the Diamond Standard) builds on those ideas to offer a more modular, scalable, and widely supported framework.
ERC-1538 (Transparent Contract Standard)
ERC-2535 (Diamond Standard)
While both patterns achieve similar upgrade capabilities, ERC-2535 is now the de-facto community standard for complex upgradeable architectures.
functionSignatures()updateContract(...)
and FunctionUpdate
diamondCut(...)facets()
and DiamondCut
diamondCut
and facet query methods.
In summary, this migration ensures PoCo remains future-proof, better supported by tooling, and easier to audit, all while keeping the user-facing behavior stable. As iExec continues to evolve, adopting widely recognized standards like ERC-2535 helps us maintain security, transparency, and adaptability for the long run.