# Makechain > A realtime decentralized protocol for ordering and storing git-like messages ## Docs - [Architecture](/architecture): Makechain uses a layered architecture with single-chain Simplex BFT consensus, parallel per-project execution, and a separate data availability layer. - [Getting Started](/getting-started): 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. - [Consensus](/protocol/consensus): 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): 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): An **account** is identified by a unique Make ID (`mid`, uint64) assigned by an onchain registry contract. The registry maps MIDs to Ed25519 owner keys. - [Message Types](/protocol/messages): All message types and their semantics. - [Protocol Overview](/protocol/overview): 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. - [Parallel Execution](/protocol/sharding): Makechain uses a single consensus chain with parallel per-project execution within each block, rather than separate shard chains. - [State Model](/protocol/state-model): A project's state consists of: - [Storage Limits](/protocol/storage-limits): 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): Every message goes through a multi-stage validation pipeline before being included in a block. - [Brand](/design/brand): The Makechain wordmark uses Inter SemiBold at tight letter-spacing, with the five brand shapes arranged below. - [Colors](/design/colors): The base theme is pure monochrome. Background and text use black/white with graduated neutral layers for depth. - [Components](/design/components): Patterns for composing content elements across the docs. - [Shapes](/design/shapes): 55 vector shapes for use as visual anchors throughout the docs. Use inline in MDX headings: - [Typography](/design/typography): The system uses the default Vocs font stack — system sans-serif for body text and monospace for code. - [Writing Guide](/design/writing-guide): 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): 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): 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): Interactive walkthroughs of core Makechain operations. Each demo shows the full message lifecycle — from construction to consensus finality. - [Manage Access](/demos/manage-access): 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): 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. - [Verify Identity](/demos/verify-identity): 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. - [API Reference](/api/overview): 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. - [RPC Reference](/api/rpc-reference): Complete reference for all `MakechainService` gRPC methods. All byte fields use raw bytes in gRPC and hex encoding in the CLI.