The Extendable Contract Pattern is a novel smart contract design pattern and framework that allows contracts to be flexible, mutable, modular and, of course, extendable. It defines a development and execution approach for robust and future-proof smart contracts on Ethereum. The reference implementation is written in Solidity.
With Extendable contracts you can upgrade your smart contract logic, modify functionality and even extend the original interface during runtime to allow your contracts to evolve as your use-cases do. It addresses many of the drawbacks of the smart contract paradigm and builds on top of the current solution space of Proxy patterns.
Implement and deploy constantly evolving units we call "Extensions" to extend or modify your core contract logic enabling more efficient mutability methods to your contracts whilst also maintaining high degree of visibility over your contract interface.


Integrating the Extendable pattern into your smart contract design enables your contracts to achieve numerous benefits not limited to:
  • Static - Your contracts can maintain a static address
  • Mutable - Mutability allows great degrees of runtime configurability of your contracts
  • Modular - Each functional unit of your contract stack becomes a flexible module
  • Reusable - Common modules can be used across contracts without redeployment
  • Extendable - Your contract's interface can dynamically change according to your needs
  • Limitless - Avoids the contract size limit of 24kb
Importantly, the dynamic and modular nature of the framework lends itself well to the decentralised structures built through smart contracts allowing it to adapt and evolve with the ecosystem whilst remaining agnostic to future possibilities.

Guides: Jump right in

Follow our handy guides to get started on the basics as quickly as possible:
Last modified 9mo ago