Fork a 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.
Demo
CLI equivalent
# Fork a project at a specific commit
makechain fork \
--source e7f8a9b0c1d2... \
--commit deadbeef0123... \
--name my-web-framework \
--visibility publicWhat happened
-
Read source — You query the source project to find the commit you want to fork at. The source project must be accessible to you (public, or you are a collaborator).
-
Fork point — The
source_commit_hashanchors the fork to a precise point in the source project's history. This is recorded permanently in the fork's metadata. -
FORK message — A
FORKmessage is submitted. This is a 1P Singleton — it creates a new resource irreversibly. The new project ID is the BLAKE3 hash of theFORKmessage itself (not the source project). This guarantees a globally unique, content-addressed ID. -
Account pre-pass —
FORKis processed in the serial account pre-pass (Phase 1) because it modifies shared account state (project_count). The protocol checksproject_count < storage_units * 10before allowing the fork. If you are at capacity, the fork is rejected withStorageLimitExceeded.
Cross-shard note
In a future sharded architecture, FORK is the one operation that requires cross-shard coordination. The FORK message includes a state proof from the source project to verify the source_commit_hash exists without querying the source shard.