ctdl-validate playground
Structural validation for CTDL JSON-LD, run before you publish to the Credential Registry. Nothing is uploaded: the validator runs entirely in your browser via Pyodide (WebAssembly), so unpublished credential and competency data never leaves your machine.
New here?
CTDL, the Credential Transparency Description Language, is the JSON-LD vocabulary the Credential Registry uses to describe credentials, competencies, and the organizations behind them. A payload can be well-formed JSON, parse as JSON-LD, and still be wrong in ways nothing tells you about until much later: an identifier in the wrong form, a reference that points at nothing, a property attached to a class that never declared it.
This page checks those things and shows you, for every finding, the published sentence the check rests on and the date that document was retrieved. Severities mean what the README says they mean: ERROR is a cited rule broken, WARNING is very likely wrong, INFO is worth a look, and UNVERIFIABLE is the tool refusing to guess about something it cannot see from the payload alone. This project is not affiliated with or endorsed by Credential Engine.
Payload
Load a sample, paste your own JSON-LD, or choose a .json
file. Or open the rule list below and load the payload that trips any
rule you want to see.
Resolve references against another document (optional)
The same thing the command line calls --resolve. A
reference this document can see is checked against the property's
declared range; one it cannot see stays
UNVERIFIABLE. It is read, not
fetched, and it is never validated itself.
Starting the validator…
Findings
Results will appear here after you validate a payload.
Every rule this build can report
Not a list written by hand. Every entry below was produced by running this build of the validator over a document that trips that rule, so the severity, the wording and the citation are the ones you would get in a report. The code list itself is read out of the check modules in the wheel this page loaded, so a rule cannot be missing from it.
The rule list appears once the validator has started.