Protocol overview

Makechain is address-native. The 20-byte owner_address is the sole identity, every committed message is user-submitted, and the finalized Block is the canonical commitment.

Core properties:

  • owner_address is the sole canonical identity
  • STORAGE_CLAIM is the only Tempo-backed storage ingress path
  • SIGNER_ADD and SIGNER_REMOVE are the only signer-management paths
  • Tempo events are never injected into Makechain blocks
  • canonical persisted verification uses the finalized Block (header + body)

Identity and authorization

Ordinary user messages are authorized by delegated Ed25519 keys attached to an owner_address.

SIGNER_ADD and SIGNER_REMOVE bypass delegated-key lookup and derive authority from custody proofs.

STORAGE_CLAIM still requires finalized settlement verification, but first successful application does not require delegated-key authorization. STORAGE_CLAIM funds raw storage only — usernames are claimed separately through USERNAME_CREATE and replaced through USERNAME_UPDATE.

MERGE_REQUEST_ADD and MERGE_REQUEST_REMOVE open and close cross-project contribution proposals from fork descendants. MERGE_REQUEST_REMOVE has dual authorization: the requester may withdraw, or a target project member with WRITE+ may close.

Execution model

Execution is split into two ordered phases:

  1. account-level messages in proposer-selected serial order
  2. project-level messages grouped by project_id in byte-lexicographic order

This ordering is committed by the block header's transactions_root over the body's message set.

Removed legacy behavior

Makechain does not preserve:

  • registry-based identity semantics
  • registry or relay ingress
  • relay checkpoints
  • relay-era replay compatibility
  • protocol-level ownership transfer or recovery