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

Verify Identity

Link an external address (Ethereum or Solana) to your Make ID by signing a deterministic challenge message. The claim is verified on-chain and stored in consensus state.

Demo

Link an Ethereum addressdemo
Construct the challenge message
Formatmakechain:verify:<mid>
Challengemakechain:verify:42

The challenge is deterministic — same MID always produces the same message. No nonce, no expiry.

Sign with your Ethereum wallet
EIP-191 personal_sign
{
  "method": "personal_sign",
  "params": [
    "0x6d616b65636861696e3a7665726966793a3432",
    "0x1234567890abcdef1234567890abcdef12345678"
  ],
  "note": "hex-encoded 'makechain:verify:42'"
}
Signature (65 bytes)0x3a4b5c6d7e8f...r=28
Submit VERIFICATION_ADD
VERIFICATION_ADD message
{
  "type": "VERIFICATION_ADD",
  "mid": 42,
  "timestamp": 1740000200,
  "body": {
    "verification_type": "ETH_ADDRESS",
    "address": "0x1234567890abcdef1234567890abcdef12345678",
    "claim_signature": "3a4b5c6d7e8f..."
  }
}
Claim signature verified
Verification stored in state
Message submittedT+0ms
EIP-191 signature recovery — address matchesT+3ms
Included in block #1,501 (account pre-pass)T+195ms
FinalizedT+289ms
Verified address0x1234567890abcdef1234567890abcdef12345678
State key0x09 | mid(42) | ETH_ADDRESS | addr
Verifications1 / 50
Type: ETH_ADDRESSScheme: EIP-191 personal_sign

Solana variant

Link a Solana addressdemo
Sign the challenge with your Solana wallet
Challengemakechain:verify:42
SchemeEd25519 (Solana address IS the public key)
Signature (64 bytes)7f8e9d0c1b2a...3e4f5a6b7c8d
Submit and finalize
VERIFICATION_ADD message
{
  "type": "VERIFICATION_ADD",
  "mid": 42,
  "timestamp": 1740000300,
  "body": {
    "verification_type": "SOL_ADDRESS",
    "address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "claim_signature": "7f8e9d0c1b2a..."
  }
}
Finalized in block #1,502

How verification works

Ethereum (ETH_ADDRESS)

  1. You sign the challenge makechain:verify:<mid> using EIP-191 personal_sign
  2. The validator recovers the signer address from the signature using secp256k1 + keccak256
  3. If the recovered address matches the address field, the verification is accepted

Solana (SOL_ADDRESS)

  1. You sign the challenge makechain:verify:<mid> with your Solana keypair
  2. The validator verifies the Ed25519 signature directly — the Solana address is the public key
  3. If the signature is valid, the verification is accepted

Removal

Verifications are a 2P set. Submit VERIFICATION_REMOVE to unlink an address. On a timestamp tie between add and remove, remove wins.