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

Register a Make ID

Every identity on Makechain is anchored to a wallet on Tempo — an EOA, smart wallet, or WebAuthn passkey. You connect your wallet, generate an Ed25519 keypair, and register on the onchain registry. The registry assigns a Make ID, binds it to your wallet address (owner_address), and relays a KEY_ADD message into the consensus layer. Registration costs gas, providing natural spam resistance. MID ownership is transferable onchain for social recovery and account migration.

Interactive Demo

Register a new accountinteractive
Generate Ed25519 keypair
AlgorithmEd25519
Public key (32 bytes)d4f7a2c8e1b39f0e6d2a8c4b75301fa8 92e6d1c7b4a3f0e8d5c2b9a6f3e0d7c4
Key file~/.makechain/keys/default.json

The private key is generated locally and never leaves your machine. Deterministic signing — no nonce reuse risk.

2
Connect your wallet on Tempo
3
Fund your wallet with testnet stablecoins
4
Register on the onchain registry
5
KEY_ADD relayed into consensus
KEY_ADD message (relayed from registry)
{
  "type": "KEY_ADD",
  "mid": "?",
  "timestamp": "...",
  "body": {
    "public_key": "d4f7a2c8e1b3...9f0e6d2a8c4b",
    "scope": "OWNER",
    "owner_address": "0x742d35Cc6634...a2F8e01B"
  }
}

The registry event is relayed into the Makechain consensus layer as a KEY_ADD message. This is the bridge between the onchain registry and the protocol — validators learn about your key without querying the chain directly.

Registry: onchain contractRelay: KEY_ADD into consensus

Add more keys

Once your account is active, you can register additional keys with different scopes.

Register a SIGNING keydemo
Generate a second keypair
Public keya8b9c0d1e2f3...4a5b6c7d8e9f
Submit KEY_ADD with SIGNING scope
KEY_ADD message
{
  "type": "KEY_ADD",
  "mid": 42,
  "timestamp": 1740000010,
  "body": {
    "public_key": "a8b9c0d1e2f3...4a5b6c7d8e9f",
    "scope": "SIGNING"
  }
}
OWNER scope required — verifiedKey count: 2 / 50
Register an AGENT key for CI/CDdemo
Generate an agent keypair
Public keyf1e2d3c4b5a6...9f0e1d2c3b4a
Submit KEY_ADD with AGENT scope
KEY_ADD message
{
  "type": "KEY_ADD",
  "mid": 42,
  "timestamp": 1740000020,
  "body": {
    "public_key": "f1e2d3c4b5a6...9f0e1d2c3b4a",
    "scope": "AGENT"
  }
}

AGENT keys can push commits and update refs but cannot manage collaborators or account settings. Ideal for CI/CD pipelines and AI agents.

Set your profile

Set account metadatademo
Submit ACCOUNT_DATA messages
ACCOUNT_DATA — username
{
  "type": "ACCOUNT_DATA",
  "mid": 42,
  "timestamp": 1740000030,
  "body": {
    "field": "username",
    "value": "alice"
  }
}
ACCOUNT_DATA — bio
{
  "type": "ACCOUNT_DATA",
  "mid": 42,
  "timestamp": 1740000030,
  "body": {
    "field": "bio",
    "value": "Building the future of decentralized code hosting"
  }
}

ACCOUNT_DATA uses LWW Register semantics — the most recent message by consensus order wins per (mid, field) conflict key.

Account profile live
GetAccount response
{
  "mid": 42,
  "username": "alice",
  "bio": "Building the future of decentralized code hosting",
  "key_count": 3,
  "project_count": 0,
  "storage_units": 1,
  "verification_count": 0
}

CLI equivalent

# Generate a keypair
makechain keygen
 
# Register on the onchain registry (assigns MID)
makechain register
 
# Add a SIGNING key (requires OWNER key to sign)
makechain register-key --scope signing
 
# Add an AGENT key
makechain register-key --scope agent
 
# Set profile metadata
makechain set-account --field username --value alice
makechain set-account --field bio --value "Building the future..."

What happened

  1. Key generation — An Ed25519 keypair is generated locally. The public key is 32 bytes, the private key never leaves your machine. Ed25519 uses deterministic signing, so there is no nonce reuse risk.

  2. Onchain registration — You submit a transaction to the Makechain registry contract on Tempo with your public key. The registry assigns a unique Make ID (uint64), binds your wallet as the owner_address, and emits an event. The gas cost prevents spam — every account has a real economic anchor.

  3. Relay into consensus — The registry event is picked up and relayed into the Makechain consensus layer as a KEY_ADD message with OWNER scope and your wallet's owner_address. This is processed in the account pre-pass (Phase 1, serial) because it modifies shared account state.

  4. Account live — After finalization (~300ms), your account exists in consensus state. You can now create projects, push commits, add collaborators, and verify external addresses. Your wallet can always add new Ed25519 keys, and MID ownership can be transferred onchain for social recovery.

Key scopes

ScopeWhat it can doTypical use
OWNEREverything — manage keys, transfer projects, delete accountYour primary key
SIGNINGPush commits, update refs, manage collaborators, set metadataDay-to-day development
AGENTPush commits and update refs onlyCI/CD, AI agents, automation

Each account can have up to 50 keys. Keys are a 2P set — use KEY_REMOVE to revoke a compromised key. On a timestamp tie, remove wins.