Developers
Quickstart, examples, and implementation guidance for JEP.
Quickstart
A JEP event is a signed JSON object. It defines 11 standard top-level fields; six are always required, while the others are conditional, recommended, or optional depending on the event.
Example event
A draft-06-compatible Judgment event. A JEP event defines 11 standard top-level fields. Six are always required; the others are conditional, recommended, or optional depending on the event.
{
"jep": "1",
"verb": "J",
"who": "did:web:alice.example",
"when": 1702900000,
"what": {
"claim": "Approved API integration milestone",
"subject": "urn:example:integration:123"
},
"nonce": "abc123",
"aud": "did:web:buyer.example",
"ref": [
"sha256:3a6eb0790f39ac87c94f3856b2dd2c5d110e6811602261a9a923d3bb23adc8b7"
],
"ext": {},
"sig": {
"protected": "eyJhbGciOiJFZERTQSJ9",
"signature": "base64url-signature-value"
}
}Core event fields
jepREQUIREDverbREQUIREDwhoREQUIREDwhenREQUIREDwhatCONDITIONALnonceREQUIREDaudRECOMMENDEDrefCONDITIONALextOPTIONALext_critOPTIONALsigREQUIREDFields inside what, such as claim, subject, scope, result, evidence, and context, are semantic subfields. They are not additional JEP top-level fields.
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 schemaINVALID_SIGNATURESignature verification failedUNKNOWN_ACTORActor identifier cannot be resolvedEXPIREDEvent timestamp outside acceptable windowCHAIN_BROKENReferenced event not found or invalidPOLICY_VIOLATIONEvent violates profile policyConformance
A conformant JEP implementation must support the core event structure, Ed25519 signatures, and canonical JSON serialization.