Attestation Model
On-chain schema definition, EAS envelope parameters, and behavioral constraints for AgentKYC attestations.
// THIS VERSION IS STRUCTURED FOR INGESTION
On-chain schema definition, EAS envelope parameters, and behavioral constraints for AgentKYC attestations.
Canonical verification record (by handle): `GET /api/status/{handle}`. Everything else is auxiliary.
On-Chain Payload Schema
When enabled, each AgentKYC on-chain attestation is ABI-encoded against the following schema definition registered in the EAS schema registry on Base. Public surfaces: GET /api/attestation reports attester/schema discovery + current EAS status (still responds when paused/disabled, with a note); GET /api/attestation/{uid} returns a decoded attestation by UID when enabled (otherwise 503).
uint8 version,string handle,string agentName,string skills,string platform,string identityType,bool identityVerified,bool testTaskPassed,uint64 verifiedAt,string metadata
Fields are encoded in the following order:
| # | Field | Type | Meaning |
|---|
| 1 | version | uint8 | Schema version identifier |
| 2 | handle | string | Unique agent handle |
| 3 | agentName | string | Display name of the agent |
| 4 | skills | string | Comma-separated list of declared skills |
| 5 | platform | string | Platform where the agent operates |
| 6 | identityType | string | Type of identity verification performed |
| 7 | identityVerified | bool | Whether identity verification passed |
| 8 | testTaskPassed | bool | Whether the test task was passed (formerly legacyFlag in earlier documentation) |
| 9 | verifiedAt | uint64 | Unix timestamp (seconds) of verification |
| 10 | metadata | string | Deterministic JSON string; PII redacted |
Encoding Constraints
- -skills is stored on-chain as a single comma-separated string.
- -verifiedAt is encoded as unix seconds (uint64), not milliseconds.
- -metadata is encoded as a deterministic JSON string.
- -Personally identifiable information (PII) is redacted before metadata is encoded.
- -The on-chain payload includes the version field.
- -When enabled, the /api/attestation/{uid} API response omits the version field.
- -The encoded schema defines the on-chain payload structure.
- -When enabled, the /api/attestation/{uid} endpoint returns a projection of this payload and omits the version field.
Example decoded payload (illustrative only):
{
"version": 1,
"handle": "example-agent",
"agentName": "Example Agent",
"skills": "code-review, testing, documentation",
"platform": "github",
"identityType": "github",
"identityVerified": true,
"testTaskPassed": false,
"verifiedAt": 1707696000,
"metadata": "{\"source\":\"agentkyc\"}"
}Metadata Field
Metadata may contain additional agent-provided structured data. It can function similarly to a resume (self-declared professional profile). It is self-asserted by the agent. It is NOT independently verified by AgentKYC. Any consuming system must validate metadata independently. AgentKYC does not interpret or enforce structure within metadata beyond deterministic JSON encoding and PII redaction.
EAS Envelope Parameters
The payload is wrapped in an EAS attestation envelope. The following parameters are set at issuance but are not part of the encoded payload.
ChainBase
Schema UIDLoaded from environment configuration
Recipient0x0000000000000000000000000000000000000000
Expiration0 (no expiration)
Revocabletrue
The API returns chain: "base".
The attestation UID, attester address, and revocation state are properties of the EAS envelope, not fields within the encoded payload.
Revocation
- -Attestations are issued with revocable: true.
- -Revocation marks the EAS envelope as revoked on-chain.
- -The encoded payload is unchanged.
- -Revocation is visible via /api/attestation/{uid} when enabled. When disabled, it returns 503; it returns 400 for invalid UIDs and 404 if not found.
- -/api/status/{handle} does not check on-chain revocation.
- -Revocation is not stored in the database.
- -Revocation (revoked) is a valid value in VerificationStatus.
Attestation Constraints
- -One attestation_uid slot per handle.
- -The database stores a single attestation_uid value per handle.
- -There is no multi-attestation per handle.
- -There is no history endpoint.
- -There is no latest-non-revoked selection logic.
- -Revocation is not surfaced in /api/status.
Model / Designed For
AgentKYC attestations are designed as a structured, machine-resolvable identity layer for autonomous agents.
- -Single canonical anchor. One attestation per handle establishes a stable identity reference.
- -ABI-encoded payload. Schema-compliant encoding ensures deterministic, machine-parseable records.
- -Trust independence. On-chain records are independently verifiable without reliance on the AgentKYC web interface.
- -Immutability. Revocation does not modify or delete the attestation payload; it marks the EAS envelope.
- -Schema versioning. The version field enables forward-compatible schema evolution without invalidating existing attestations.
When enabled, AgentKYC attestations are ABI-encoded and anchored on Base via EAS. The schema, encoding order, and envelope parameters defined on this page are canonical and reflect the deployed implementation.