prev_hash pointer, forming a tamper-evident chain that gateway observers can independently verify. Three HTTP surfaces expose this log: a query endpoint, an export endpoint for signed snapshots, and a WebSocket stream for real-time consumers. A separate audit log records control-plane operations.
GET /v1/events
Returns a paginated list of events from the local event log. You can filter the results to a specific point in time using asince query parameter.
Query Parameters
ISO 8601 timestamp. Only events recorded after this point are returned. Omit to retrieve the full log from genesis.Example:
?since=2024-11-01T00:00:00ZMaximum number of events to return in a single response. Defaults to
100. Use in combination with since for pagination.Filter by event type string (e.g.
mission.accepted, payment.settled, peer.connected). Omit to return all event types.Response Fields
Ordered array of event objects, oldest first.
Unique event identifier (content-addressed hash).
Event type string in dot-notation (e.g.
"mission.accepted").ISO 8601 timestamp of when the event was recorded.
Hash of the immediately preceding event in the chain. Forms the tamper-evident linkage.
Ed25519 signature over the event payload, verifiable against the node’s
public_identity key.Event-specific data. Shape varies by
type.Total number of events matching the query (before
limit is applied).Example Response
GET /v1/events/export
Returns a signed snapshot of the node’s complete public event history. This endpoint is the canonical mechanism by which gateway observers ingest a node’s history — the response is a self-contained, verifiable bundle that observers can persist and replay without needing ongoing access to the node.Response Fields
Unique identifier for this particular export snapshot.
The exporting node’s agent DID.
ISO 8601 timestamp at which the snapshot was sealed.
The full ordered event chain, identical in structure to the events returned by
GET /v1/events.Hash of the genesis event — the root of the chain.
Hash of the most recent event at the time the snapshot was sealed.
Signature over the entire bundle (root hash + tip hash + generated_at), allowing observers to verify the snapshot as a whole without re-checking every individual event signature.
Gateway observers verify the
bundle_signature first, then walk the prev_hash chain from tip to root to confirm internal integrity. If any link is broken the entire snapshot should be treated as invalid.GET /v1/stream (WebSocket)
Opens a persistent WebSocket connection and delivers events in real time as they are appended to the log. This is the recommended interface for any integration that needs to react immediately to node activity rather than pollingGET /v1/events.
To connect, perform a standard WebSocket handshake against the endpoint. Pass your Bearer token in the Authorization header during the upgrade request:
events array from GET /v1/events. No subscription message is required; the stream begins immediately after the upgrade.
GET /v1/audit
Returns the control-plane audit log — a separate append-only record of administrative actions taken against the node’s API (configuration changes, token rotations, policy updates, and similar operations). Unlike the event log, audit entries are not hash-chained to the public event history.Query Parameters
ISO 8601 timestamp. Only audit entries recorded after this point are returned.
Filter by action type string (e.g.
"policy.updated", "token.rotated").Response Fields
Ordered array of audit log entries.
Unique audit entry identifier.
The administrative action that was performed.
Identifier of the entity that triggered the action (typically the node’s own DID for automated operations).
ISO 8601 timestamp.
Action-specific metadata.