Skip to main content
A schema is the template for an attestation. It lists the fields an attestation carries and their types, and it is registered once in the Schema Registry contract. Every attestation then points at a schema by ID, which is how readers know how to decode its data.

Anatomy of a schema

A schema is a comma-separated list of typed fields. For example, the Review schema is:
Registering it gives you three things you’ll use later: The Schema Registry returns a schema ID, a 32-byte hash. You pass that ID whenever you create or query attestations.
Field order matters. Attestation data is ABI-encoded in the schema’s field order, so anything that writes or decodes data for a schema must use the same order and types as the schema string.

Schemas in the registry

The testnet registry holds four schemas. AgentOwnership is the only one that backs real human-agent pairings. The schema IDs you’ll need most: AgentOwnership carries no data of its own. The attestation itself, from a human DID to an agent DID, is the record. You can pull the current list at any time from the API.

Who can attest against a schema

Creating a schema does not give its creator special rights over it. Whether someone can attest is decided by the schema’s resolver.
  • No resolver. Review, AgentDIDAuth and ERC8004Registration have a zero resolver address, so there is no extra check. Anyone with a connected wallet and a Billions identity can attest against them, the schema’s creator included on equal terms with everyone else.
  • With a resolver. AgentOwnership has one. Its contract can reject attestations that don’t meet its rules, and in practice these records come from the pairing flow, not from people attesting by hand.
If you register a schema and want to limit who can attest, deploy a resolver that enforces the rule and pass its address when you register.

Choosing revocability

Decide this when you register the schema.
  • A review or endorsement should usually be revocable, since the attester may change their mind or have been wrong.
  • A fact that must stay fixed, such as a record of an event, can be non-revocable.
Even on a revocable schema, the person making each attestation chooses whether that attestation can be revoked. The checkbox on the attestation form is disabled for non-revocable schemas.

Create your own

Registering a schema takes a wallet linked to a Billions identity and a small amount of testnet gas. The testnet Explorer has a form for it: name, fields, resolver and revocable.