Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Create a Project – Makechain
Skip to content

Create a 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.

Demo

Create a projectdemo
Generate Ed25519 keypair
Public keyd4f7a2c8e1b3...9f0e6d2a8c4b
Key file~/.makechain/keys/default.json
Register key with scope SIGNING
KEY_ADD message
{
  "type": "KEY_ADD",
  "mid": 42,
  "timestamp": 1740000000,
  "body": {
    "public_key": "d4f7a2c8e1b3...9f0e6d2a8c4b",
    "scope": "SIGNING"
  }
}
Finalized in block #1,247
Create project
my-first-repo
PUBLIC
PROJECT_CREATE message
{
  "type": "PROJECT_CREATE",
  "mid": 42,
  "timestamp": 1740000001,
  "body": {
    "project_id": "a1b2c3d4e5f6...",
    "name": "my-first-repo",
    "visibility": "PUBLIC"
  }
}
Consensus finalization
Message submitted to mempoolT+0ms
Structural validation passedT+12ms
Included in block #1,248T+198ms
Block notarized (2/3 validators)T+287ms
Finalized (2-chain rule)T+301ms
Project IDa1b2c3d4e5f678901234567890abcdef a1b2c3d4e5f678901234567890abcdef
Block#1,248
State rootf8e7d6c5b4a3...21098765f4e3
Network: devnetFinality: ~300ms

CLI equivalent

# Generate a keypair
makechain keygen
 
# Register the key (relayed from onchain registry)
makechain register-key --scope signing
 
# Create a project
makechain create-project --name my-first-repo --visibility public

What happened

  1. Key generation — An Ed25519 keypair is generated locally. The private key never leaves your machine. The public key is 32 bytes.

  2. Key registration — A KEY_ADD message is submitted with your public key and the SIGNING scope. This message is relayed from the onchain registry into the consensus layer so validators can verify your future signatures without querying the chain.

  3. Project creation — A PROJECT_CREATE message is constructed with your chosen name and visibility. The message is BLAKE3-hashed, Ed25519-signed with your private key, and submitted via gRPC.

  4. Consensus — The message enters the mempool, passes structural validation, and is included in the next block by the current leader. After 2/3+ validators notarize the block and one more block is built on top (2-chain rule), your project is final.

The project ID is the BLAKE3 hash of the PROJECT_CREATE message envelope — it is deterministic, content-addressed, and globally unique.