⚠️ Early Stage: Compose is currently in development and only available to contributors and early adopters. It is NOT production ready.
A smart contract development framework for building modular systems with ERC-8153 Diamonds.
Compose gives you a clear way to split contract functionality into focused facets, reuse proven building blocks, and evolve your onchain application with ease.
The framework includes:
- A Solidity library of reusable facets and modules
- A CLI toolkit for projects with Foundry or Hardhat
- Design patterns for combining Compose components with custom logic
- Documentation for building, extending, and testing diamond systems
The project actively evolves based on community input—tell us what you'd like Compose to do for you.
Smart contracts are hard enough to audit and maintain. Compose keeps each piece small, explicit, and easy to read.
We use intentional Solidity constraints and conventions designed specifically for smart contracts. This is Smart Contract Oriented Programming (SCOP).
- Read First: Code written to be understood, not just executed
- Diamond-Native: Built specifically for ERC-2535 / ERC-8153 diamond contracts
- Composition Over Inheritance: Combine facets instead of inheriting contracts
- Intentional Simplicity: Banned features lead to clearer, safer code
npx @perfect-abstractions/compose-cli initforge install Perfect-Abstractions/Compose@tag=compose@0.0.6npm install @perfect-abstractions/composePackages: @perfect-abstractions/compose · @perfect-abstractions/compose-cli. More detail: Installation.
Please see our documentation website for full documentation.
We welcome contributions from everyone! Compose grows through community involvement.
Please see the documentation for contributing.
