Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
Perfect-Abstractions/Compose: A smart contract library that emphasizes readability and onchain composability using EIP-2535 / EIP-8153 Diamonds.

Perfect-Abstractions/Compose: A smart contract library that emphasizes readability and onchain composability using EIP-2535 / EIP-8153 Diamonds.

!Compose

License: MIT</a> Discord</a>

⚠️ Early Stage: Compose is currently in development and only available to contributors and early adopters. It is NOT production ready.

What is Compose?

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.

Try the visual builder now

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.

Why Compose is Different

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).

Core Philosophy

  • 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

Quick Start

Create a new project with Compose CLI

npx @perfect-abstractions/compose-cli init

Add Compose to an existing project (Manual Installation)

Foundry

forge install Perfect-Abstractions/Compose@[email protected]

Hardhat / NPM

npm install @perfect-abstractions/compose

Packages: @perfect-abstractions/compose · @perfect-abstractions/compose-cli. More detail: Installation.

Documentation

Please see our documentation website for full documentation.

Contributing

We welcome contributions from everyone! Compose grows through community involvement.

Please see the documentation for contributing.



Made with more than 🩵 by the Compose Community

Chat with me