GET /api/v1/agent/passport
Export a signed Passport with W3C Verifiable Credential envelope. Free, auth-gated, rate-limited.
Auth: Authorization: Bearer pvn_...
Base URL: https://provenonce.io
Root agents (depth=0) must have a SIGIL. Descendants (depth>0) bypass the SIGIL gate.
Request
curl https://provenonce.io/api/v1/agent/passport \
-H "Authorization: Bearer pvn_..."Response
{
"passport": {
"format_version": 1,
"agent_hash": "0xfd752396...",
"agent_public_key": "DAsDZb5p...",
"authority_key_id": "pvn-ed25519-3f5b2f8a1b7c9d10",
"identity_class": "autonomous",
"registered_at_beat": 5600,
"sigil_issued_at_beat": 5610,
"last_heartbeat_beat": 6267,
"lineage_chain_hash": "0x651db240...",
"issued_at": 1707753600000,
"valid_until": 1707840000000,
"provenonce_signature": "cc45497b04b9..."
},
"passport_vc": {
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://provenonce.io/.well-known/provenonce-passport-v1.jsonld"
],
"type": ["VerifiableCredential", "ProvenoncePassport"],
"issuer": {
"id": "https://provenonce.io",
"authority_key_id": "pvn-ed25519-3f5b2f8a1b7c9d10"
},
"issuanceDate": "2026-02-12T12:00:00.000Z",
"expirationDate": "2026-02-13T12:00:00.000Z",
"credentialSubject": {
"id": "provenonce:agent:0xfd752396...",
"agent_hash": "0xfd752396...",
"agent_public_key": "DAsDZb5p...",
"identity_class": "autonomous",
"registered_at_beat": 5600,
"sigil_issued_at_beat": 5610,
"last_heartbeat_beat": 6267,
"lineage_chain_hash": "0x651db240..."
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-02-12T12:00:00.000Z",
"verificationMethod": "https://provenonce.io/api/v1/.well-known/authority-key",
"proofPurpose": "assertionMethod",
"cryptosuite": "eddsa-provenonce-2026",
"proofValue": "cc45497b04b9..."
},
"format_version": 1
},
"lineage_proof": { ... },
"authority_public_key_hex": "3f5b2f8a1b7c9d10..."
}lineage_proof is a deprecated alias for passport (sunset 2026-09-01).
Passport fields
| Field | Type | Description |
|---|---|---|
format_version | number | Always 1 — frozen canonical field order |
agent_hash | string | Agent identity hash |
agent_public_key | string | null | Wallet address used in proof binding |
authority_key_id | string | Authority key that signed the passport |
identity_class | string | null | SIGIL identity class |
registered_at_beat | number | Beat at registration |
sigil_issued_at_beat | number | null | Beat when SIGIL was issued |
last_heartbeat_beat | number | Last attested heartbeat |
lineage_chain_hash | string | Hash of lineage event chain |
issued_at | number | Unix timestamp (ms) |
valid_until | number | Unix timestamp (ms), 24h from issuance |
provenonce_signature | string | Hex Ed25519 signature |
W3C Verifiable Credential
The passport_vc wraps the passport in a W3C VC envelope for interop with standard credential tooling. The JSON-LD context is at https://provenonce.io/.well-known/provenonce-passport-v1.jsonld.
The cryptosuite is eddsa-provenonce-2026 — hex-encoded Ed25519, not standard linked data proofs.
Error responses
| Status | Body | Cause |
|---|---|---|
| 401 | {"error": "...", "code": "AUTH_MISSING"} | Missing or invalid API key |
| 403 | {"error": "...", "code": "SIGIL_REQUIRED"} | Root agent without SIGIL |
| 404 | {"error": "...", "code": "AGENT_NOT_FOUND"} | Agent not found |
| 429 | {"error": "...", "code": "RATE_LIMITED"} | Rate limit exceeded |