Skip to main content

Canonical Schemas

Verax bootstraps a small set of canonical schemas that multiple tools in the stack already understand.

These schemas are created by the post-deployment flow in contracts/script/deploy/postDeployment.ts.

Relationship​

(bytes32 subject, string predicate, bytes32 object)

This schema is used to express links between attestations.

The SDK exposes the schema ID as Constants.RELATIONSHIP_SCHEMA_ID.

Named graph relationship​

(string namedGraph, bytes32 subject, string predicate, bytes32 object)

This is a variant of the relationship schema that adds a grouping label.

The SDK exposes the schema ID as Constants.NAMED_GRAPH_RELATIONSHIP_SCHEMA_ID.

Offchain​

(bytes32 schemaId, string uri)

This schema is the canonical pointer format for offchain payloads.

The SDK exposes the schema ID as Constants.OFFCHAIN_DATA_SCHEMA_ID.

Why these matter​

These schemas are important because they are not just ideas described in the docs:

  • they are created by deployment tooling;
  • their IDs are baked into the SDK;
  • explorer and SDK behavior depend on them for linked-attestation and offchain flows.

For protocol research, these canonical schemas are also where Verax’s linked-data orientation becomes operational rather than conceptual.