Updated October 1, 2026: this article replaces the earlier logging example with a runnable introduction to JEP Core 0.7.
Judgment Event Protocol (JEP) is a format for portable signed event records. A receiving system can inspect a record and check its signature using the appropriate verification key.
This walkthrough verifies a published sample. It requires no hosted API or account.
Verify your first signed event
You need Python 3.10 or later, internet access for installation, and a macOS, Linux, or WSL terminal.
Create a working directory and a virtual environment:
mkdir jep-first-event
cd jep-first-event
python3 -m venv .venv
source .venv/bin/activate
Install the validator, export the sample fixtures, and verify a Judgment event:
python -m pip install jep-core-conformance==0.7.7
jep-byoi export jep-example
jep-validate validate jep-example/vectors/J-basic.json --keys jep-example/keys.json
Use a new jep-example directory: the export command does not overwrite an existing directory.
The result should include:
status: "valid"checks.syntax: "pass"checks.cryptographic: "pass"checks.actor_binding: "not_checked"
The keys belong to public test fixtures. This checks the sample’s structure and signature; it does not establish trust in a real actor or confirm a business outcome. A verifier’s individual checks explain what was actually evaluated.
Here, 0.7 is the JEP Core protocol version and 0.7.7 is the software package version used for this walkthrough.
What JEP records
JEP Core has four event verbs:
- Judgment (J): an actor expresses or adopts a judgment.
- Delegation (D): an actor declares a delegation with a delegatee and scope.
- Termination (T): an actor declares that a referenced target is no longer eligible for future reliance within a stated scope.
- Verification (V): an actor records the result of evaluating a referenced target under an explicit verification scope.
An application decides how these statements affect its workflow. For example, recording a Termination statement does not itself stop another process.
The specification is published as an individual Internet-Draft and is not an IETF-endorsed standard. The published Core 0.7 draft defines the protocol semantics.
Top comments (0)