mars
api reference

Sixteen endpoints. One shape.

All bodies are JSON, all field names camelCase, all DIDs URL-encoded. Authentication is via Arsenal ACT bearer token; rate limits are per-token, returned in X-RateLimit-Remaining headers.

base · https://api.mars.glass

  • GET/v1/health

    Health probe.

    body: { status, version, registryDid }
  • POST/v1/entries

    Create a new registry entry. Body MUST be a fully signed Entry.

    body: EntryEntry (with sequence)
  • GET/v1/entries/:did

    Resolve latest version.

    body: Entry
  • GET/v1/entries/:did/versions

    Version history.

    body: { versions: Entry[] }
  • PUT/v1/entries/:did

    Publish a new version. New entry MUST reference its parent.

    body: EntryEntry
  • DELETE/v1/entries/:did

    Revoke entry, slash bond. Requires reason and signed revocation receipt.

    body: { reason, signature }{ revokedAt, sigilTx }
  • POST/v1/discover

    Structured discover query.

    body: { entryType?, conditions[], limit? }{ entries, total }
  • POST/v1/discover/marsql

    MARS-QL string query.

    body: { query }{ entries, total }
  • GET/v1/lineage/:did

    Lineage chain back to HMR.

    body: { chain: [...] }
  • POST/v1/transfer/:did

    Initiate ownership transfer. Requires both signatures to settle.

    body: { newOwnerDid, signature }{ pendingTransferId }
  • POST/v1/attestations

    Issue an attestation against an entry.

    body: { entryDid, attestation }{ id, anchoredAt }
  • GET/v1/attestations/:did

    List attestations for an entry.

    body: { attestations: [...] }
  • POST/v1/report

    Report abuse. May trigger investigation and bond slash.

    body: { entryDid, reason, evidence? }{ caseId }
  • GET/v1/registries

    List federated peers.

    body: { registries: [...] }
  • POST/v1/federate/handshake

    Initiate federation handshake with a peer.

    body: { fromRegistry, endpoint, publicKey, scope }{ syncToken }
  • POST/v1/federate/sync

    Page through entries since cursor.

    body: { syncToken, limit, cursor? }{ entries, nextCursor }
  • WS/v1/events

    WebSocket subscription stream.

    body: subscribe frameMarsEvent stream