Protocol Overview

Introduction

Welcome to the engineering documentation for Common Protocol. This documentation provides a comprehensive guide to the technical aspects of Common Protocol, focusing on its smart contracts, mechanisms, and developer interfaces.

Common is automated, end to end, where users are rewarded for participation

Common Protocol is built around the concept of tokenized attention for actions, ideas, and more. This documentation will help developers, auditors, and technical users understand how the protocol works at a code level, its architectural decisions, and how to interact with its various components.

Project Overview

Common Protocol consists of several interconnected projects, each serving a specific purpose within the ecosystem of Common Protocol:

Namespace

The Namespace project provides a foundation for community identity and ownership. It's built on ERC1155 tokens that represent community memberships, roles, and permissions. Namespaces are the building blocks that connect other features of the protocol.

Contests

The Contests system allows communities to run competitions with tokenized rewards. This encourages participation and helps communities curate quality content and contributions through voting mechanisms.

Referrals

The Referral system provides incentives for growing communities through a fee-sharing mechanism. It tracks and rewards community growth while creating sustainable economics for protocol participants.

Launchpad

Launchpad enables communities to launch tokens with built-in liquidity mechanisms. It integrates bonding curves and automatic market makers to help communities bootstrap token economies and create sustainable tokenomics models.

Hooks and Extension Points

Common Protocol is designed with extensibility in mind. Throughout the documentation, we'll highlight various hooks that allow for custom logic to be added at specific points in the protocol's execution flow:

  • Content Hooks: Customize behavior before and after content submission or voting

  • Claim Hooks: Modify logic during reward distribution

  • Namespace Hooks: Add custom behavior for token minting and transfers

  • Curve Hooks: Implement custom behavior during token purchases and sales

These hooks provide powerful extension points that allow communities to customize and extend the protocol's functionality for their specific needs.

Smart Contract Architecture

This documentation covers the implementation details of Common Protocol's smart contracts, which are organized into several core modules:

  1. Core contracts: Base functionality and shared components

  2. Module-specific contracts: Implementation for each project module

  3. Interface contracts: Standards for interoperability

  4. Utility contracts: Helper functionality

The documentation will provide insights into how these contracts interact, their security considerations, and how developers can build on top of them.

References

Throughout this documentation, we'll reference:

  • [Governance Contracts](Slack Reference)

  • [Protocol Contracts]

  • Introductory material from Introducing Common Protocol

  • Audit reports and security considerations [docs] {./audit-reports}

How to Use This Documentation

This documentation is organized by project modules, with each section detailing the specific contracts, their functionality, and how they interact with the broader ecosystem. We recommend starting with the overview of each project before diving into specific contract implementations.

For developers looking to integrate with Common Protocol, each module includes examples of how to interact with the contracts, interface definitions, and common integration patterns.

Note: These event signature hashes are derived from the keccak256 hash of the event string signatures including parameter types, following the Ethereum event encoding standard. For example, the signature for BeneficiaryAdded is calculated as:

keccak256("BeneficiaryAdded(address,uint256)")

These event signatures (topic0) are important for anyone implementing event listeners or indexers that need to track actions in the Referral System.

Last updated

Was this helpful?