WebSocket events
Real subscription behavior and its current limitations.
Connect to /v1/ws with the registry's WebSocket origin. The wire contract uses SubscriptionMessage and MarsEvent.
{
"action": "subscribe",
"filters": {
"entryTypes": ["AgentDefinition"],
"events": ["entry.created", "entry.updated"]
}
}Event kinds
entry.created, entry.updated, entry.revoked, entry.transferred, entry.attested, entry.reported, bond.slashed, and federation.sync are the eight declared event types. A declared type does not prove an external economic or chain action occurred.
Current limitations
Nonempty entry type, event type, and DID filters combine with AND. Empty filters match everything. The namespace field is accepted but is not currently enforced by the server filter. Sending unsubscribe clears filters, which makes subsequent events match all; close the socket to stop delivery.
The server tracks a durable event ID internally but exposes no resumable client cursor. On reconnect, reconcile current registry state and deduplicate by event ID; do not promise exactly-once client delivery.
Source authority
This page describes the checked-in implementation, not the availability of a public registry.
mars-server/src/api/mod.rsmars-server/src/contracts.rsdocs/api/openapi.v1.jsonmars-server/src/api/websocket.rsmars-protocol/src/events.rs