Developers

Quickstart, examples, and implementation guidance for JEP.

Quickstart

A JEP event is a signed JSON object with a small set of required fields.

Example event

A minimal Judgment event with actor, timestamp, claim digest, nonce, and signature.

{
  "verb": "J",
  "who": "did:web:alice.example",
  "when": 1702900000,
  "what": "sha256:9f86d081884c7d659a2feaa0c55ad015...",
  "nonce": "abc123",
  "ref": ["sha256:prev-event-hash..."],
  "ext": {},
  "sig": "Ed25519:..."
}

Signature model

JEP events use detached signatures. The signature field contains the cryptographic signature over the canonical representation of the event payload.

Supported algorithms: Ed25519 (required), ES256 (optional profile).

Validation result

Verification events should include a validation result indicating what level of validation was achieved.

Common levels: syntax, signature, actor-binding, chain-integrity, credential-status, policy-compliance.

Failure codes

When validation fails, verifiers should indicate the failure reason.

INVALID_SYNTAXEvent does not conform to schema
INVALID_SIGNATURESignature verification failed
UNKNOWN_ACTORActor identifier cannot be resolved
EXPIREDEvent timestamp outside acceptable window
CHAIN_BROKENReferenced event not found or invalid
POLICY_VIOLATIONEvent violates profile policy

Conformance

A conformant JEP implementation must support the core event structure, Ed25519 signatures, and canonical JSON serialization.

Resources