Attestations
Attestations using the Ethereum Attestation Service (EAS) are used to verify the authenticity of hypercerts. We are building on top of EAS because of it's flexibility. By defining a schema in the registry contract on a supported chain, users can create standardized attestation formats to evaluate hypercerts according to -best- practices in a respective domain.
Hypercerts compatible schemas
To design an schema that is compatible with hypercerts we require that the schema contains the required fields for determining the hypercert ID
. This allows us, and any evaluator, to determine which hypercert is being evaluated.
All other information is up to the schema designer. We recommend exploring the EAS documentation and schema registry to get started and maybe even find the schema you need.
Required fields
Field | Type | Description |
---|---|---|
chain_id | uint256 | The chain ID where the minter contract is deployed |
contract_address | address | The contract address of the minter contract on the chain |
token_id | uint256 | The token ID in the minter contract of the hypercert |
Concatenate the chain_id, contract_address and token_id to get the hypercert ID
. We use this to reference hypercerts across chains.
Supported schemas
- Basic Evaluation
- Creator Feed
Schema UID 0x2f4f575d5df78ac52e8b124c4c900ec4c540f1d44f5b8825fac0af5308c91449
Basic evaluation
The basic evaluation schema is used to evaluate the truthfulness of basic hypercert data.
Field | Type | Description |
---|---|---|
chain_id | uint256 | The chain ID where the minter contract is deployed |
contract_address | address | The contract address of the minter contract on the chain |
token_id | uint256 | The token ID in the minter contract of the hypercert |
evaluate_basic | uint8 | Evaluate basic truthfulness of the hypercert |
evaluate_work | uint8 | Evaluate work scopes defined in the hypercert |
evaluate_contributors | uint8 | Evaluate contributors defined in the hypercert |
evaluate_properties | uint8 | Evaluate properties defined in the hypercert |
comments | string | Comments from the evaluator |
tags | string[] | Tags from the evaluator |
The evaluate fields (e.g. evaluate_basic
) represent an enum value. The evaluator can choose between the following values:
Value | Description |
---|---|
0 | Not evaluated |
1 | Valid |
2 | Invalid |
Trusted evaluators
In addition to a curated set of schemas, the Hypercerts Foundation maintains a list of trusted evaluators in the attestor registry
. This is an intermediate step to decentralized governance of trusted evaluators as we grow the ecosystem. Please reach out to us if you think you and/or your organization should be on the list.
Schema UID 0x48e3e1be1e08084b408a7035ac889f2a840b440bbf10758d14fb722831a200c3
Creator Feed
The creator feed schema is used to post updates by Hypercerts creator.
Field | Type | Description |
---|---|---|
chain_id | uint256 | The chain ID where the minter contract is deployed |
contract_address | address | The contract address of the minter contract on the chain |
token_id | uint256 | The token ID in the minter contract of the hypercert |
title | string | The title of the update |
description | string | The description of the update |
sources | string[] | The sources that prove the update |
The sources field expects a JSON array of objects containing:
Field | Type | Description |
---|---|---|
type | string | Type of source. "url" or Supported file types: .pdf, .csv, .xls, .png, .jpg. |
src | string | Source location (URL or IPFS CID) |
name | string(optional) | The name of file (required when type is not url "url") |
Example:
[
{
"type": "url",
"src": "https://example.com/update"
},
{
"type": "image/png",
"src": "QmExample...",
"name": "impact_report.png"
},
{
"type": "application/pdf",
"src": "QmExample...",
"name": "report.pdf"
}
]