Skip to main content

EAS Schema Definitions

These are the on-chain EAS (Ethereum Attestation Service) schema strings for each OMATrust attestation type. They are generated from the canonical JSON Schemas using the generate-eas-object Hardhat task in the rep-attestation-tools-evm-solidity repository.

Each schema string is a comma-separated list of ABI-typed fields that EAS uses to encode and decode attestation data on-chain.

User Review

string subject, string version, uint256 ratingValue, string reviewBody, string[] screenshotUrls, string[] proofs
  • Revocable: No
  • Testnet UID: 0x7ab3911527e5e47eaab9f5a2c571060026532dde8cb4398185553053963b2a47

User Review Response

string subject, string refUID, string responseBody
  • Revocable: No
  • Testnet UID: 0x53498ae8ae4928a8789e09663f44d6e3c77daeb703c3765aa184b958c3ca41be

Endorsement

string subject, string organization, string version, string policyURI, string payload, string payloadVersion, string payloadSpecURI, string payloadSpecDigest, uint256 issuedAt, uint256 effectiveAt, uint256 expiresAt
  • Revocable: No
  • Testnet UID: 0xb0cf93ef0f3feb858aa5d07a54f6589da5852883f378dfd0cae5315da1d679ac

Certification

string subject, string organization, string version, string versionHW, string subjectURI, string programID, string programURI, string assessor, string assessorURI, string certificationLevel, string outcome, string reportURI, string reportDigest, string payload, string payloadVersion, string payloadSpecURI, string payloadSpecDigest, uint256 issuedAt, uint256 effectiveAt, uint256 expiresAt
  • Revocable: No
  • Testnet UID: 0x2b0d1100f7943c0c2ea29e35c1286bd860fa752124e035cafb503bb83f234805

Security Assessment

string subject, string organization, string version, string versionHW, string payload, string payloadVersion, string payloadSpecURI, string payloadSpecDigest, uint256 issuedAt, uint256 effectiveAt, uint256 expiresAt
  • Revocable: No
  • Testnet UID: 0x67bcc2424e3721d56e85bb650c6aba8bf7f1711d9c9a434c3afae3a22d23eed7

Key Binding

string subject, string keyId, string publicKeyJwk, string[] keyPurpose, string[] proofs, uint256 issuedAt, uint256 effectiveAt, uint256 expiresAt
  • Revocable: Yes
  • Testnet UID: 0x807b38ce9aa23fdde4457de01db9c5e8d6ec7c8feebee242e52be70847b7b966

Linked Identifier

string subject, string linkedId, string method, string[] proofs, uint256 issuedAt, uint256 effectiveAt, uint256 expiresAt
  • Revocable: Yes
  • Testnet UID: 0xed79388b434965a35d50573b75f4bbd6e3bc7912103c4a6ac0aff6a510ccadac

Controller Witness

string subject, string controller, string method, uint256 observedAt
  • Revocable: No
  • Testnet UID: 0xc81419f828755c0be2c49091dcad0887b5ca7342316dfffb4314aadbf8205090

Schema UID Calculation

Schema UIDs are deterministic. They are computed as:

keccak256(abi.encodePacked(schema, resolverAddress, revocable))

Where resolverAddress is 0x0000000000000000000000000000000000000000 (zero address) for schemas deployed without a resolver.

The SDK and tooling provide a calculateSchemaUID helper:

import { ethers } from "ethers";

const uid = ethers.keccak256(
ethers.solidityPacked(
["string", "address", "bool"],
[schemaString, resolverAddress, revocable]
)
);

Revocability

Most OMATrust schemas are non-revocable. The exceptions are:

  • Key Binding — keys can be rotated or compromised, so revocation is supported
  • Linked Identifier — linked accounts can be unlinked, so revocation is supported

Revocability is set at schema registration time and cannot be changed after deployment.

Regenerating EAS Schemas

If you modify a JSON Schema file, regenerate the EAS object with:

npx hardhat generate-eas-object --schema schemas-json/<name>.schema.json

This writes a .eas.json file to the generated/ directory. Deploy it with:

npx hardhat deploy-eas-schema --file generated/<Name>.eas.json --network omachainTestnet