GET /api/v1/status/:hash
Quick agent status lookup.
Auth: None (public)
curl https://provenonce.io/api/v1/status/0xfd752396e4fa9ed34d1e3e3218700ef6aafcaeecad5cb72e1a4ff177417f0373{
"exists": true,
"status": "active",
"hash": "0xfd752396...",
"type": "root",
"depth": 0,
"name": "provenonce-genesis",
"metadata": null,
"wallet": null,
"wallet_model": "operator",
"wallet_chain": null,
"identity_class": "autonomous",
"sigil": "genesis-v2*provenonce*sov",
"sigil_issued_at": "2026-02-12T...",
"tier": "sov",
"principal": "provenonce",
"registered": "2026-02-12T...",
"registered_by": null,
"tx_signature": "BmcxxSCk...",
"heartbeat_refused": false,
"heartbeat_refused_reason": null,
"beat_state": {
"beat_count": 2200,
"lifetime_beats": 2200,
"available_beats": 0,
"latest_beat": 2200,
"last_checkin_beat": 9600,
"last_global_sync": 9600,
"total_heartbeats": 142,
"difficulty": 1000,
"status": "active"
},
"liveness_score": 0.95,
"liveness_algorithm": "v1"
}Status values
| Status | Meaning |
|---|---|
registered | Agent exists but has never heartbeated |
active | Heartbeat within acceptable window |
warning | Approaching staleness threshold |
stale | No recent heartbeat — consumers decide trust |
frozen | Dead Man’s Switch triggered — agent must resync |
refused | Heartbeat refused due to identity complaint flag |
Response fields
| Field | Type | Description |
|---|---|---|
exists | boolean | Whether the agent was found |
status | string | One of the six status values above |
hash | string | Agent identity hash |
type | string | "root" or "agent" (child) |
depth | number | Lineage depth (0 = root) |
name | string | null | Agent name |
metadata | object | null | Freeform metadata set at registration |
wallet | string | null | Wallet address, or null |
wallet_model | string | null | "operator" for BYO wallet agents, or legacy default |
wallet_chain | string | null | "solana", "ethereum", or null |
identity_class | string | null | "narrow_task", "autonomous", "orchestrator", or null if no SIGIL |
sigil | string | null | Full SIGIL string (name*principal*tier), or null |
sigil_issued_at | string | null | ISO timestamp of SIGIL issuance |
tier | string | null | SIGIL tier: "sov", "org", "ind", "eph", "sbx" |
principal | string | null | SIGIL namespace principal |
registered | string | null | ISO timestamp of registration |
registered_by | string | null | Wallet address of the registering entity, or null |
tx_signature | string | null | Solana transaction signature |
heartbeat_refused | boolean | Whether heartbeats are currently refused |
heartbeat_refused_reason | string | null | Reason for refusal (complaint flag) |
liveness_score | number | null | Rolling 30-day liveness score (0.0–1.0), null if in grace period (under 7 days) or sandbox |
liveness_algorithm | string | null | Algorithm version (e.g., "v1"), null if score is null |
beat_state | object | null | Beat chain state (see below) |
beat_state object
| Field | Type | Description |
|---|---|---|
beat_count | number | Current beat count |
lifetime_beats | number | Total accepted beats over lifetime |
available_beats | number | Spendable beat balance (used for spawn gating) |
latest_beat | number | Most recent beat index |
last_checkin_beat | number | Beat index at last check-in |
last_global_sync | number | Last synced global anchor index |
total_heartbeats | number | Total heartbeats submitted by this agent |
difficulty | number | Current VDF difficulty |
status | string | Beat chain status: "active" or "frozen" |
Not found
Returns HTTP 404:
{ "error": "Agent not found", "code": "AGENT_NOT_FOUND", "exists": false, "status": "not_found", "hash": "0x..." }Rate limit: 60/min per IP
Last updated on