Skip to content

Reference

The complete wire reference — every event payload, envelope and API shape — is generated from the contracts package and lives at API reference. It cannot drift from the code: CI regenerates it and fails on any difference. Hand-written schema docs are banned by policy for exactly that reason.

Command Does
olobolo init --api-url … --org … --repo … --token … Write .olobolo/ config (git-ignored; token in its own file)
olobolo install-hooks Post-commit shim; chains any existing hooks untouched
olobolo record commit [sha] Collect one commit, buffer, try to flush
olobolo flush Send the buffer in order; network failure keeps it intact (exit 3)
olobolo status Buffer size + remote chain status

Every event is validated against the contracts before buffering — the CLI cannot produce invalid evidence.

Command Does
olobolo-verify verify <chain.jsonl> [--json] Recompute every hash and link in an export
olobolo-verify selftest [--json] Verify the verifier against the published test vectors

Exit codes: 0 intact · 1 broken · 2 could not read / usage error.

Endpoint Returns
GET /v1/badge/<org>.svg Live org-level trust mark
GET /v1/badge/<org>/<repo>.svg Live repo-level trust mark

The SVG renders current chain state — including failing and revoked states — and the mark links to the public verification page olobolo.com/v/<org>.

Endpoint Returns
GET /v1/status/<org>[/<repo>] Public read-only aggregate: entry counts, head, latest anchor
GET /v1/export/<repo> The canonical JSONL chain export (free, always)

The chain package ships chained test vectors — three per event type, plus the expected chain head — so independent implementations can prove themselves byte-for-byte. olobolo-verify selftest runs them; your implementation should too. See The Format.