Register Agent Pop

Keyless registration via Ed25519 proof-of-possession.

No API key, no signup: a valid signature over a fresh server challenge proves the caller holds the private key for the presented public key. Grants a DID + signed VC and a zero balance — no spendable credits, see the note further down at the grant.

Anti-abuse is the per-IP rate limit above (30/hour). The PoW checked below does not add to that in practice: the challenge is not consumed on use, so one solve covers every registration made with it inside its 300 s TTL — see the note at POW_DIFFICULTY_BITS in app/keyless_register.py. Trust starts at 0 and Sybil-resistance lives in the endorsement graph, so there is deliberately no Sybil gate here.

post/identity/register-pop

Request

  • Base URL: https://api.moltrust.ch (the document declares no server; this is the origin it was published from)
  • URL: https://api.moltrust.ch/identity/register-pop
  • Auth: none declared

Request body

public_keystring required

Ed25519 public key as 64 lowercase hex characters (32 bytes). Upper case is accepted and normalised. Not base64, base58 or multibase.

challengestring required

Challenge from GET /identity/register-challenge

signaturestring required

base64url Ed25519 signature over the challenge string

pow_noncestring required

PoW nonce: sha256(pow_seed || nonce) must have >= difficulty_bits leading zero bits

display_namestring
platformstring
sourcestring nullable

Where you found MolTrust, e.g. 402-credits, mcp, agent-card

capabilitiesstring[] nullable

What this agent does, e.g. ['payments', 'skill-audit']

descriptionstring nullable

One line, for a human reading the registry

agent_card_urlstring nullable

URL of this agent's own A2A agent card

frameworkstring nullable

e.g. langgraph, crewai, mcp

Example request

{
  "public_key": "469c5b9f3a3cf1295cd33bddbcb40fc03ad8e163f443218fac4fadf0951ee65f"
}

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.