Skip to content
Perfect-AbstractionsPublic

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

109 stars

Watchers

7 watching

Forks

Repository files navigation

Compose

License: MIT Discord

⚠️ 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.

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@tag=compose@0.0.6

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

About

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

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

109 stars

Watchers

7 watching

Forks

Releases

Used by

Contributors

Languages