Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Message Types — Makechain Protocol
Skip to content

Message Types

All message types and their semantics.

2P: Project Set

TypeDescriptionRequired Scope
PROJECT_CREATECreate a new project with name and visibilitySIGNING
PROJECT_REMOVERemove a project (hides refs, commits, collaborators)OWNER

Conflict key: (project_id). A removed project retains its data — a subsequent PROJECT_CREATE referencing the same project ID restores it.

1P: Singleton

TypeDescriptionRequired Scope
FORKFork an existing project at a specific commitSIGNING

Includes source_commit_hash anchoring the fork to a precise point. The forked project's ID is the BLAKE3 hash of the FORK message.

1P: LWW Register

TypeConflict KeyRequired Scope
PROJECT_METADATA(project_id, field)SIGNING
ACCOUNT_DATA(mid, field)SIGNING

1P: Append-only

TypeDescriptionRequired Scope
COMMIT_BUNDLEDeclare a batch of new commit metadata + DA referenceAGENT

Commits are ordered parent-first within a bundle. Each commit includes: hash, parent hashes, tree root hash, author MID, title, and message hash.

1P: State Transition

TypeDescriptionRequired Scope
PROJECT_ARCHIVEMake project read-onlyOWNER

2P: Ref Set (CAS-ordered)

TypeDescriptionRequired Scope
REF_UPDATEMove a ref to a new commit hashAGENT
REF_DELETERemove a refAGENT

REF_UPDATE uses compare-and-swap: includes expected current hash (old_hash). If the ref has moved, the update is rejected. Updates must be fast-forward (the new commit must be a descendant of the current ref target) unless force = true.

2P: Collaborator Set

TypeDescriptionRequired Scope
COLLABORATOR_ADDGrant an account access to a projectSIGNING (admin)
COLLABORATOR_REMOVERevoke accessSIGNING (admin)

Permissions: READ, WRITE, ADMIN, OWNER.

1P: Relay-Injected

TypeDescriptionAuthorization
KEY_ADDRegister an Ed25519 key with a scopeRelay-injected
KEY_REMOVERevoke a keyRelay-injected
OWNERSHIP_TRANSFERTransfer MID ownership to a new wallet addressRelay-injected

These messages are injected by validators relaying events from the onchain MakeRegistry contract. No Ed25519 scope check is performed — the onchain transaction was already validated. OWNERSHIP_TRANSFER includes previous_owner_address for defense-in-depth (must match current state).

2P: Verification Set

TypeDescriptionRequired Scope
VERIFICATION_ADDProve ownership of an external addressSIGNING
VERIFICATION_REMOVERevoke a verificationSIGNING

Supported types: ETH_ADDRESS (Ethereum EOA), SOL_ADDRESS (Solana). The claim_signature must be a valid signature over the challenge message makechain:verify:<mid>. See Identity for signing details.