Skip to main content

JSON Schemas (Canonical)

All OMATrust attestation types are defined as JSON Schema (Draft 2020-12) files. These are the canonical, source-of-truth definitions from which EAS schema strings, form UIs, and SDK types are all derived.

The schema files live in the schemas-json/ directory of the rep-attestation-tools-evm-solidity repository.

Available Schemas

SchemaFileDescription
User Reviewuser-review.schema.jsonStructured 1–5 star reviews of tokenized applications or digital services
User Review Responseuser-review-response.schema.jsonResponses to user reviews (from the reviewed subject)
Endorsementendorsement.schema.jsonLightweight attestation indicating support, trust, or approval for a subject
Certificationcertification.schema.jsonFormal certification of a subject by an authorized assessor
Security Assessmentsecurity-assessment.schema.jsonSecurity audit or assessment results for a subject
Key Bindingkey-binding.schema.jsonBinds a cryptographic key to a DID subject
Linked Identifierlinked-identifier.schema.jsonLinks an external identifier (social handle, domain, etc.) to a DID subject
Controller Witnesscontroller-witness.schema.jsonImmutable record that a trusted observer verified a controller assertion
Common Definitionscommon.schema.jsonShared $defs referenced by other schemas (Version, Proof, PayloadVersion, etc.)

Browsing the Schemas

The full JSON Schema files with all properties, validation rules, and OMA3 extensions are available on GitHub:

👉 github.com/oma3dao/rep-attestation-tools-evm-solidity/tree/main/schemas-json

Each file is self-contained (aside from $ref imports from common.schema.json) and includes:

  • Standard JSON Schema validation (type, pattern, maxLength, enum, required, etc.)
  • OMA3 custom extensions (x-oma3-skip-reason, x-oma3-subtype, x-oma3-default, x-oma3-did-methods, x-oma3-enum, x-oma3-nested, x-oma3-witness)

OMA3 Schema Extensions

The schemas use custom x-oma3-* properties to control UI rendering, auto-generation, and EAS field mapping. Key extensions:

ExtensionPurpose
x-oma3-skip-reasonExcludes fields from form generation ("metadata", "eas", "computed", "unused")
x-oma3-subtypeSemantic type hint ("timestamp", "semver") for UI rendering
x-oma3-defaultAuto-generation behavior ("current-timestamp", "current-datetime", "current-date")
x-oma3-did-methodsRecommended DID methods for a field ("web", "pkh", "key", "handle")
x-oma3-enumSuggested values without strict validation (for extensible registries)
x-oma3-nestedControls whether an object field renders as a grouped container in UIs
x-oma3-witnessTop-level flag that triggers a Controller Witness API call after attestation

For full documentation on each extension with examples, see the schemas-json/README.md in the repository.

JSON Schema → EAS Schema Pipeline

JSON Schema files are the input to the generate-eas-object Hardhat task, which produces the flat EAS ABI schema strings used on-chain. The mapping rules are:

  • stringstring
  • integer / numberuint256
  • booleanbool
  • objectstring (JSON-stringified)
  • array of T → T[]
  • Fields with x-oma3-skip-reason: "metadata" or "eas" are excluded from the EAS schema
  • Fields with x-oma3-skip-reason: "unused" are included (reserved per spec)
  • Hex hash patterns (0x[a-fA-F0-9]{64}) map to bytes32

See EAS Schema Definitions for the generated on-chain schemas.