# Makechain > A realtime decentralized protocol for ordering and storing git-like messages ## Docs - [Architecture](/architecture.md): Makechain uses a layered architecture with single-chain Simplex BFT consensus, parallel per-project execution, and a separate data availability layer. - [Building with AI](/building-with-ai.md): Makechain documentation is built with AI-first principles, providing multiple ways for LLMs and AI assistants to access protocol documentation. - [Changelog](/changelog.md): Notable changes to the Makechain protocol, node, and documentation. Organized by month and grouped by category. - [Contributing](/contributing.md): Development setup, test workflow, and contribution guidelines. - [FAQ](/faq.md): Common questions about the protocol, identity, consensus, storage, and development. - [Getting Started](/getting-started.md): Makechain is a Rust crate implementing the core protocol with a node binary and CLI client. This guide walks you through building, running a node, and submitting your first message. - [Glossary](/glossary.md): Definitions for terms used throughout Makechain documentation. - [Troubleshooting](/troubleshooting.md): Common errors and their solutions. - [Consensus](/protocol/consensus.md): Makechain uses **Simplex BFT** via the [commonware-consensus](https://commonware.xyz) primitive. A single consensus chain orders all messages with parallel per-project execution within each block. - [Data Availability](/protocol/data-availability.md): The consensus layer stores only message metadata (~100–500 bytes per message). Actual file content — blobs, trees, and full commit messages — lives in a separate data availability (DA) layer. - [Identity](/protocol/identity.md): Every Make ID is owned by an EVM wallet address on Tempo: - [Message Types](/protocol/messages.md): All message types and their semantics. - [Protocol Overview](/protocol/overview.md): Makechain is a realtime decentralized protocol for ordering and storing git-like messages — project creation, commits, ref updates, access control — with permissionless publishing and cryptographic attribution. - [Security](/protocol/security.md): Overview of cryptographic primitives, authorization, consensus guarantees, replay protection, rate limiting, and P2P security. - [Parallel Execution](/protocol/sharding.md): Makechain uses a single consensus chain with parallel per-project execution within each block, rather than separate shard chains. - [State Model](/protocol/state-model.md): A project's state consists of: - [Storage Limits](/protocol/storage-limits.md): Makechain enforces per-account storage limits to prevent unbounded state growth. Each account has **storage units** (default: 1 for free tier), and limits scale with units. - [Message Submit Pipeline](/protocol/submit-pipeline.md): Every message goes through a multi-stage validation pipeline before being included in a block. - [Brand](/design/brand.md): The Makechain wordmark uses Inter SemiBold at tight letter-spacing, with the five brand shapes arranged below. - [Colors](/design/colors.md): The base theme is pure monochrome. Background and text use black/white with graduated neutral layers for depth. - [Components](/design/components.md): Patterns for composing content elements across the docs. - [Shapes](/design/shapes.md): 55 vector shapes for use as visual anchors throughout the docs. Use inline in MDX headings: - [Typography](/design/typography.md): The system uses the default Vocs font stack — system sans-serif for body text and monospace for code. - [Writing Guide](/design/writing-guide.md): The Makechain documentation is the canonical reference for the protocol, its APIs, and tooling. This guide provides editorial standards for writing clear, consistent, and accurate documentation. - [Create a Project](/demos/create-project.md): Generate an Ed25519 keypair, register it with your Make ID, and create a new project. The project ID is the BLAKE3 hash of the `PROJECT_CREATE` message itself — content-addressed from the moment of creation. - [Fork a Project](/demos/fork-project.md): Fork an existing project at a specific commit. The forked project gets a new content-addressed ID (the BLAKE3 hash of the `FORK` message) and inherits the source project's refs and commit history at that point. - [Demos](/demos.md): Interactive walkthroughs of core Makechain operations. Each demo shows the full message lifecycle — from construction to consensus finality. - [Manage Access](/demos/manage-access.md): Add collaborators to a project, assign permission levels, and manage the access control list. Collaborators are a 2P set — add and remove pairs with remove-wins semantics. - [Push Commits](/demos/push-commits.md): Bundle commit metadata, upload content to the DA layer, and update refs — all in a single atomic flow. Consensus orders the operations and the ref update uses compare-and-swap to prevent conflicts. - [Register a Make ID](/demos/register-account.md): Every identity on Makechain is anchored to a wallet on Tempo — an EOA, smart wallet, or WebAuthn passkey. You connect your wallet, generate an Ed25519 keypair, and register on the onchain registry. The registry assigns a Make ID, binds it to your wallet address (`owner_address`), and relays a `KEY_ADD` message into the consensus layer. Registration costs gas, providing natural spam resistance. MID ownership is transferable onchain for social recovery and account migration. - [Verify Identity](/demos/verify-identity.md): Link an external address (Ethereum or Solana) to your Make ID by signing a deterministic challenge message. The claim is verified on-chain and stored in consensus state. - [Examples](/api/examples.md): Working examples using the CLI, grpcurl, JavaScript, and monitoring endpoints. - [API Reference](/api/overview.md): Makechain exposes a single gRPC service (`MakechainService`) for reading and writing state. The service supports grpc-web for browser clients and server reflection for runtime discovery. - [REST API](/api/rest.md): The Cloudflare Workers gateway translates HTTP REST requests to the underlying gRPC service. All endpoints return JSON and accept standard query parameters. - [RPC Reference](/api/rpc-reference.md): Complete reference for all `MakechainService` gRPC methods. All byte fields use raw bytes in gRPC and hex encoding in the CLI.