Specification

Draft protocolSource at 169cbd2 ↗Excerpt SHA-256 2a514ac…dbf
Status
Draft
Revision
15
Date
2026-09-25
Changes in this revision
R-12.25 and R-14.12: the exporter's finalized hook may wait at its queue bound; R-17.10: the exporter extracts each block's operation-log slices in the capture hook, and its queue entry is the only slice source; R-17.21: the genesis-started exporter and standby queue reconstructed location-zero slices verified against the published genesis block; glossary "Slice"
Library baseline
Commonware v2026.9.0, with the Keccak256 hasher supplied as a local Hasher at that pin and the Solidity verifiers consumed from the library's main branch after the tag (section 6); exoware 2026.9.0 for the store (section 17)
License
MIT OR Apache-2.0

Abstract

Makechain is a Byzantine-fault-tolerant provenance ledger for content-addressed content produced by people and autonomous agents. It orders and permanently attests which content-addressed objects were published to which project and by whom, where a project's references point, who may write to it, and how those rights change. Versioned code is the first workload, and nothing in the protocol is specific to it. Makechain stores no content. Every attested fact is provable against a finalized block header by a client with no trusted intermediary, and by a contract on another chain that holds the chain's one threshold public key. Validator history retention is bounded by configuration, while resident state grows with priced, rate-limited usage. Collaborators pay with credits imported by proof from an external settlement chain.


Informative. What the protocol is, how its pieces fit, and how this document is written.

Contents

Part I. Orientation

  1. 1. Introduction
    1. 1.1 Scope
    2. 1.2 Goals
    3. 1.3 Non-goals at launch
  2. 2. System overview
    1. 2.1 Roles and boundaries
    2. 2.2 The write path
    3. 2.3 Storage by role
  3. 3. Conventions
    1. 3.1 Requirement keywords and normative scope
    2. 3.2 Notation
    3. 3.3 Rule and invariant numbering
    4. 3.4 The spec/ boundary and the normative companions

Part II. Foundations

  1. 4. Assumptions and threat model
    1. 4.1 Assumptions
    2. 4.2 Design principles
    3. 4.3 Adversaries defended against
    4. 4.4 Accepted risks
  2. 5. Chain identity and chainspec
    1. 5.1 Chain identity
    2. 5.2 What the chainspec commits
    3. 5.3 Genesis
    4. 5.4 Consensus profiles
    5. 5.5 FixedEpochZeroV1
    6. 5.6 DynamicReshareV1
    7. 5.7 Reset
  3. 6. Encoding and digests
    1. 6.1 Canonical encoding
    2. 6.2 The two-hash rule
    3. 6.3 Library dependency and calibration
    4. 6.4 Sizes and identifiers

Part III. The ledger

  1. 7. Accounts and authorization
    1. 7.1 Identity
    2. 7.2 Root authority
    3. 7.3 Delegated keys
    4. 7.4 Signing
    5. 7.5 Root configuration
    6. 7.6 Replay and authority context
  2. 8. Commands
    1. 8.1 Catalog
    2. 8.2 Commitments and the scheme registry
    3. 8.3 PUSH
    4. 8.4 Projects
    5. 8.5 Usernames
    6. 8.6 RECLAIM and the remaining account and system commands
    7. 8.7 Off-chain signed messages
  3. 9. State and record lifecycle
    1. 9.1 The three authenticated databases
    2. 9.2 Validity state
    3. 9.3 The membership log
    4. 9.4 The block-history accumulator
    5. 9.5 What is not in state
    6. 9.6 Record lifecycle
  4. 10. Resources and pricing
    1. 10.1 Resource dimensions
    2. 10.2 Work weights
    3. 10.3 The price table
    4. 10.4 What a reservation covers
    5. 10.5 Permanent-record economics
    6. 10.6 The credit unit

Part IV. The chain

  1. 11. Blocks and headers
    1. 11.1 Block structure
    2. 11.2 Header fields
    3. 11.3 Body and profile-gated fields
    4. 11.4 Block time
    5. 11.5 Counter widths and block size
  2. 12. Execution and block validity
    1. 12.1 Definitions
    2. 12.2 Flat order and the block overlay
    3. 12.3 What makes a block valid
    4. 12.4 Fault outcomes and inputs that are not validity
    5. 12.5 Bounded read and write sets
    6. 12.6 The application contract
    7. 12.7 Admission, the vote gate, and recovery
  3. 13. Consensus and validator membership
    1. 13.1 Consensus wiring
    2. 13.2 Epochs
    3. 13.3 The validator schedule under DynamicReshareV1
    4. 13.4 The four sets and the effective voting set
    5. 13.5 Reshare and carry-over
    6. 13.6 Threshold identity and share custody
    7. 13.7 What each profile changes
  4. 14. Finalized events
    1. 14.1 Definitions
    2. 14.2 Which events exist
    3. 14.3 Emission
    4. 14.4 Deposit fields on events
    5. 14.5 Ordering and delivery
    6. 14.6 Events, roots, and trust

Part V. Verification and the outside world

  1. 15. Proofs, light clients, and publication receipts
    1. 15.1 Trust inputs
    2. 15.2 Proof framing and verification order
    3. 15.3 Proof kinds and the claims they support
    4. 15.4 Current-state proofs and historical proofs
    5. 15.5 Finality and ancestry
    6. 15.6 Release lineage
    7. 15.7 Result kinds
    8. 15.8 Claims that no proof kind establishes
    9. 15.9 Publication receipts
    10. 15.10 The reference verifier
    11. 15.11 Verification on another chain
  2. 16. Settlement
    1. 16.1 The settlement source and its profile
    2. 16.2 Mint authority
    3. 16.3 The settlement contract
    4. 16.4 The single proof kind: credit import
    5. 16.5 Settlement state
    6. 16.6 Source time and the dual trust deadline
    7. 16.7 The pause flag
    8. 16.8 Anchor replacement
    9. 16.9 Guard table
    10. 16.10 Contract and relayer duties
    11. 16.11 Credits
    12. 16.12 External certificate profile
  3. 17. Node roles and the database set
    1. 17.1 The database set
    2. 17.2 Pinned root-affecting parameters
    3. 17.3 Pruning
    4. 17.4 Roles
    5. 17.5 Retention versus publication

Part VI. Evolution

  1. 18. Releases and hardforks
    1. 18.1 Vocabulary
    2. 18.2 Release classes and surfaces
    3. 18.3 The release schedule
    4. 18.4 Governed parameters
    5. 18.5 Rule dispatch
    6. 18.6 Activation installers
    7. 18.7 Consensus-critical surfaces and the engine handoff
    8. 18.8 Compatibility and UnsupportedRelease
    9. 18.9 Profile restrictions
    10. 18.10 Storage and dependency classification
    11. 18.11 Emergency posture

Part VII. Reference

  1. 19. Parameters
    1. 19.1 Status
    2. 19.2 Launch values
    3. 19.3 Positions fixed by architecture
    4. 19.4 Calibration items
  2. 20. Invariant index
    1. 20.1 Consensus
    2. 20.2 Fault handling
    3. 20.3 State, replay, and deposits
    4. 20.4 Accounts and authorization
    5. 20.5 Membership
    6. 20.6 Settlement
    7. 20.7 Proofs
    8. 20.8 Events
    9. 20.9 Governance and validator schedule
  1. Appendix A. Glossary