aere-research/aips/aip23-kinds/KINDS.json

654 lines
15 KiB
JSON

{
"protocol": "AIP-23",
"kinds": [
{
"kind": "data",
"statementKind": "aere-proof-of-data",
"envelopeKind": "aere-proof-of-data-attestation",
"fields": [
{
"name": "sha256",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "name",
"type": "plain"
}
],
"required": [
"sha256",
"name",
"createdAt"
],
"attests": "a file or dataset had exactly this content (its SHA-256) under this name",
"vector": "data.json"
},
{
"kind": "execution",
"statementKind": "aere-proof-of-execution",
"envelopeKind": "aere-proof-of-execution-attestation",
"fields": [
{
"name": "inputHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "outputHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "programSha256",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "program",
"type": "plain"
},
{
"name": "exitCode",
"type": "plain"
}
],
"required": [
"program",
"inputHash",
"outputHash",
"createdAt"
],
"attests": "a program ran on this input and produced this output (digests), with this exit code",
"vector": "execution.json"
},
{
"kind": "identity",
"statementKind": "aere-proof-of-identity",
"envelopeKind": "aere-proof-of-identity-attestation",
"fields": [
{
"name": "publicKeyHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "subjectHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "method",
"type": "plain"
},
{
"name": "subjectId",
"type": "plain"
}
],
"required": [
"subjectId",
"publicKeyHash",
"createdAt"
],
"attests": "a subject identifier is bound to this public key (digest), by this method",
"vector": "identity.json"
},
{
"kind": "compliance",
"statementKind": "aere-proof-of-compliance",
"envelopeKind": "aere-proof-of-compliance-attestation",
"fields": [
{
"name": "evidenceHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "subject",
"type": "plain"
},
{
"name": "policy",
"type": "plain"
},
{
"name": "result",
"type": "plain"
}
],
"required": [
"subject",
"policy",
"result",
"createdAt"
],
"attests": "a subject was checked against a named policy with this result; the evidence is referenced by digest",
"vector": "compliance.json"
},
{
"kind": "runtime",
"statementKind": "aere-proof-of-runtime",
"envelopeKind": "aere-proof-of-runtime-attestation",
"fields": [
{
"name": "artifactSha256",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "attestedSha256",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "host",
"type": "plain"
},
{
"name": "unit",
"type": "plain"
},
{
"name": "matches",
"type": "plain"
}
],
"required": [
"host",
"artifactSha256",
"createdAt"
],
"attests": "a host runs this artifact (digest), and whether it matches the attested one",
"vector": "runtime.json"
},
{
"kind": "location",
"statementKind": "aere-proof-of-location",
"envelopeKind": "aere-proof-of-location-attestation",
"fields": [
{
"name": "evidenceHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "subject",
"type": "plain"
},
{
"name": "region",
"type": "plain"
},
{
"name": "method",
"type": "plain"
}
],
"required": [
"subject",
"region",
"createdAt"
],
"attests": "a subject is in this region, by this method; the evidence is referenced by digest",
"vector": "location.json"
},
{
"kind": "device",
"statementKind": "aere-proof-of-device",
"envelopeKind": "aere-proof-of-device-attestation",
"fields": [
{
"name": "attestationHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "publicKeyHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "deviceId",
"type": "plain"
},
{
"name": "posture",
"type": "plain"
}
],
"required": [
"deviceId",
"attestationHash",
"createdAt"
],
"attests": "a device identifier carries this attestation and key (digests) and this posture",
"vector": "device.json"
},
{
"kind": "payment",
"statementKind": "aere-proof-of-payment",
"envelopeKind": "aere-proof-of-payment-attestation",
"fields": [
{
"name": "txHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "from",
"type": "plain"
},
{
"name": "to",
"type": "plain"
},
{
"name": "amount",
"type": "plain"
},
{
"name": "asset",
"type": "plain"
}
],
"required": [
"from",
"to",
"amount",
"createdAt"
],
"attests": "a payment of this amount and asset from one party to another, with its transaction (digest)",
"vector": "payment.json"
},
{
"kind": "ownership",
"statementKind": "aere-proof-of-ownership",
"envelopeKind": "aere-proof-of-ownership-attestation",
"fields": [
{
"name": "assetHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "owner",
"type": "plain"
},
{
"name": "assetId",
"type": "plain"
}
],
"required": [
"owner",
"assetId",
"createdAt"
],
"attests": "an owner holds this asset identifier; the asset is referenced by digest",
"vector": "ownership.json"
},
{
"kind": "time",
"statementKind": "aere-proof-of-time",
"envelopeKind": "aere-proof-of-time-attestation",
"fields": [
{
"name": "subjectHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "source",
"type": "plain"
},
{
"name": "at",
"type": "plain"
}
],
"required": [
"subjectHash",
"at",
"createdAt"
],
"attests": "a subject (digest) existed at this time, from this time source",
"vector": "time.json"
},
{
"kind": "block",
"statementKind": "aere-proof-of-block",
"envelopeKind": "aere-proof-of-block-attestation",
"fields": [
{
"name": "stateTransitionProof",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "blockHash",
"type": "plain"
},
{
"name": "stateRoot",
"type": "plain"
},
{
"name": "anchorHeight",
"type": "plain"
},
{
"name": "certificateDigest",
"type": "plain"
}
],
"required": [
"blockHash",
"stateRoot",
"certificateDigest",
"createdAt"
],
"attests": "a block hash and state root, with the post-quantum anchor certificate digest that covers them",
"vector": "block.json"
},
{
"kind": "authorization",
"statementKind": "aere-proof-of-authorization",
"envelopeKind": "aere-proof-of-authorization-attestation",
"fields": [
{
"name": "policyHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "grantor",
"type": "plain"
},
{
"name": "grantee",
"type": "plain"
},
{
"name": "scope",
"type": "plain"
},
{
"name": "expiresAt",
"type": "plain"
}
],
"required": [
"grantor",
"grantee",
"scope",
"createdAt"
],
"attests": "a grantor gave a grantee the right to act within a scope, under a policy (digest), until an expiry",
"added": "2026-09-28",
"vector": "authorization.json"
},
{
"kind": "settlement",
"statementKind": "aere-proof-of-settlement",
"envelopeKind": "aere-proof-of-settlement-attestation",
"fields": [
{
"name": "instructionHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "txHash",
"type": "hash",
"note": "already a 32-byte hash (0x + 64 hex); any other form is refused, not hashed"
},
{
"name": "blockHash",
"type": "hash",
"note": "already a 32-byte hash (0x + 64 hex); any other form is refused, not hashed"
},
{
"name": "chainId",
"type": "plain"
},
{
"name": "from",
"type": "plain"
},
{
"name": "to",
"type": "plain"
},
{
"name": "amount",
"type": "plain"
},
{
"name": "asset",
"type": "plain"
}
],
"required": [
"chainId",
"txHash",
"blockHash",
"amount",
"asset",
"createdAt"
],
"attests": "a settlement on a chain: its transaction and block (32-byte hashes carried as they are, never re-hashed), amount and asset",
"added": "2026-09-28",
"vector": "settlement.json"
},
{
"kind": "provenance",
"statementKind": "aere-proof-of-provenance",
"envelopeKind": "aere-proof-of-provenance-attestation",
"fields": [
{
"name": "subjectHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "processHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "parents",
"type": "list",
"note": "non-empty list of digests"
},
{
"name": "actor",
"type": "plain"
}
],
"required": [
"subjectHash",
"parents",
"createdAt"
],
"attests": "an artifact (digest) was produced from a non-empty list of parents (digests), by a process (digest), by an actor",
"added": "2026-09-28",
"vector": "provenance.json"
},
{
"kind": "secret-access",
"statementKind": "aere-proof-of-secret-access",
"envelopeKind": "aere-proof-of-secret-access-attestation",
"fields": [
{
"name": "presentationHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "policyHash",
"type": "digest",
"note": "sha256 of the content, 0x + 64 hex"
},
{
"name": "requestHash",
"type": "hash",
"note": "already a 32-byte hash (0x + 64 hex); any other form is refused, not hashed"
},
{
"name": "service",
"type": "plain",
"values": "1 to 256 printable ASCII characters without spaces (the audience of the service)"
},
{
"name": "secret",
"type": "plain",
"values": "a secret name (^[a-z0-9][a-z0-9_-]{0,63}$), \"*\" for list, or null"
},
{
"name": "version",
"type": "plain",
"values": "an integer >= 1, or null"
},
{
"name": "operation",
"type": "plain",
"values": "put | get | metadata | rotate | revoke-version | grant | revoke | list"
},
{
"name": "verdict",
"type": "plain",
"values": "allowed | refused | failed (failed: allowed and entered, then the change could not be stored)"
},
{
"name": "rules",
"type": "plain",
"values": "a list of rule names (^[a-z][a-z0-9-]{0,63}$), at most 128"
},
{
"name": "grant",
"type": "plain",
"values": "a grant id (^[A-Za-z0-9][A-Za-z0-9_.:-]{0,63}$), or null"
},
{
"name": "holder",
"type": "plain",
"values": "an aere-id (aere-id: + 40 hex) verified from the presentation, or null"
},
{
"name": "presenter",
"type": "plain",
"values": "an aere-id verified from the presentation, or null"
},
{
"name": "claimedHolder",
"type": "plain",
"values": "an aere-id the presentation claims and nobody verified, or null"
},
{
"name": "claimedPresenter",
"type": "plain",
"values": "an aere-id the presentation claims and nobody verified, or null"
},
{
"name": "judged",
"type": "plain",
"values": "a list of { grant, rules }, at most 64"
},
{
"name": "createdAt",
"type": "plain",
"values": "an RFC 3339 time"
}
],
"required": [
"service",
"operation",
"verdict",
"presentationHash",
"createdAt"
],
"attests": "a secrets service judged one request (put, get, metadata, rotate, revoke-version, grant, revoke or list) on a named secret and version: the verdict and the rules that decided it, the presented identity (presentation digest) and the request it was signed for (request digest), the holder and presenter when verified (claimed ones are named as claimed), the grant and the policy (digest); never the value. Its values have a fixed vocabulary (KINDS.json, values)",
"added": "2026-10-18",
"vector": "secret-access.json"
},
{
"kind": "ai",
"statementKind": "aere-proof-of-ai",
"envelopeKind": "aere-proof-of-ai-attestation",
"fields": [
{
"name": "model",
"type": "object {name, version|null, weightsSha256|null}"
},
{
"name": "promptHash",
"type": "digest|null"
},
{
"name": "inputHash",
"type": "digest|null"
},
{
"name": "outputHash",
"type": "digest|null"
},
{
"name": "tools",
"type": "list of tool names"
},
{
"name": "agentId",
"type": "plain|null"
},
{
"name": "requesterHash",
"type": "digest|null"
}
],
"required": [
"model.name",
"createdAt"
],
"attests": "an AI action: which model and version, which prompt, input and output (digests), which tools, which agent, who asked",
"vector": "ai.json"
},
{
"kind": "agent-decision",
"statementKind": "aere-proof-of-agent-decision",
"envelopeKind": "aere-proof-of-agent-decision-attestation",
"fields": [
{
"name": "policyHash",
"type": "hash",
"note": "the hash of the agent policy in its normal form (0x + 64 hex)"
},
{
"name": "actionHash",
"type": "digest",
"note": "SHA-256 of the canonical JSON of the action (keys sorted at every level), 0x + 64 hex"
},
{
"name": "allowed",
"type": "plain",
"note": "boolean"
},
{
"name": "reason",
"type": "plain",
"note": "why the policy allowed or refused it, in English"
}
],
"required": [
"policyHash",
"action",
"decision",
"createdAt"
],
"attests": "an AI agent action was judged against a policy (by its hash): allowed or refused, and why; the action by the digest of its canonical JSON",
"added": "2026-09-29",
"vector": "agent-decision.json"
}
]
}