Create Attestation
Create a new cryptographically signed attestation for an agent action with optional identity verification, tool authorization, and human approval tracking.Endpoint
Authentication
Required. Include your API key as a Bearer token:Request Body
Core Fields
| Field | Type | Required | Description |
|---|---|---|---|
agent_slug | string | Yes | Unique identifier for the agent (1-64 chars) |
action | string | Yes | Human-readable description of the action |
inputs_hash | string | Yes | SHA256 hash of the inputs (1-128 chars) |
metadata | object | No | Additional key-value data |
Visibility Fields
| Field | Type | Required | Description |
|---|---|---|---|
is_public | boolean | No | Override org default. true = public, false = private |
enable_zk | boolean | No | Enable ZK proof for privacy-preserving verification |
Authenticity Fields
| Field | Type | Required | Description |
|---|---|---|---|
agent_signature | string | No | Agent’s Ed25519 signature (proves identity) |
code_hash | string | No | Current SHA256 hash of agent code |
model_id | string | No | AI model version (e.g., “gpt-4-turbo”) |
Tool Verification
| Field | Type | Required | Description |
|---|---|---|---|
tools_used | array | No | List of tools used in this action |
Human Approval
| Field | Type | Required | Description |
|---|---|---|---|
human_approved | boolean | No | Whether a human approved this action |
human_approver_hash | string | No | SHA256 hash of approver identity |
Response
Status: 201 CreatedVerification Status Fields
| Field | Type | Description |
|---|---|---|
agent_authenticated | boolean|null | Agent signature verified against registered public key |
code_hash_verified | boolean|null | Code hash matches registered hash |
tools_authorized | boolean|null | All tools used are in the authorized manifest |
human_approved | boolean | Whether human approval was recorded |
Examples
Basic Attestation
With Tool Verification
With Human Approval
Private with ZK Proof
Errors
| Status | Error | Description |
|---|---|---|
| 401 | Missing Authorization | No API key provided |
| 401 | Invalid API key | API key is incorrect |
| 422 | Validation error | Missing or invalid fields |
| 429 | Rate limit exceeded | Daily attestation limit reached |