⚠️ Early Stage: Compose is currently in development and only available to contributors. It is NOT production ready.
Compose is a smart contract library that helps developers create smart contract systems using ERC-2535 Diamonds.
Compose provides:
- An on-chain standard library of facets (modular smart contracts)
- Building blocks for diamond-based smart contract systems
- Patterns and libraries to combine Compose facets with your custom logic
The project actively evolves based on community input—tell us what you'd like Compose to do for you.
Forget traditional smart contract design patterns—Compose takes a radically different approach.
We build high-quality smart contracts by intentionally restricting Solidity features and following 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 diamond contracts
- Composition Over Inheritance: Combine facets instead of inheriting contracts
- Intentional Simplicity: Banned features lead to clearer, safer code
# Clone the repository
git clone https://github.com/Perfect-Abstractions/Compose.git
cd Compose
# Install dependencies
forge install
# Build the project
forge build
# Run tests
forge test
# For test documentation, see test/README.mdPlease see our documentation website for full documentation.
We welcome contributions from everyone! Compose grows through community involvement.
Please see the documentation for contributing.
Compose is evolving with your help. Join us in building the future of smart contract development.
-Nick & The Compose Community