Operational Trust Console
Passport continuously attests that its money ledgers stayed conserved. The Trust Console surfaces that attestation (signed, chained, offline-verifiable) together with the execution-safety interlock and rail health — so operators and autonomous agents can see — and independently verify — the current trust state.
Reading the dashboard
Three severity tilts make it legible:
- SEVERE — the execution interlock is ON (live settlement halted after an integrity breach) OR the attestation chain failed verification. Treat as: stop transacting; investigate immediately.
- WARNING — a settlement-velocity anomaly (possible compromised signer) OR stale PENDING/PENDING_REVIEW settlements. Treat as: investigate; the AUTO-QUARANTINE tripwire may already be acting.
- OK — ledgers conserved, chain verified, interlock clear.
GET /api/v1/raillab/console (ISSUER API key)
{
"console": {
"severity": "OK",
"safety": { "halted": false, ... },
"attestation": { "verified": true, "chain_ok": true, "issues": [] },
"rails": { "total": 12, "enabled": 9, "quarantined": 1, ... }
}
}Independently verify an attestation
You don't have to trust the dashboard. Fetch the latest signed attestation and verify it in two steps — recompute the hash and check the Ed25519 signature:
GET /api/v1/raillab/health/attestations/latest (public)
# verify endpoint (public) — POST the full attestation object
POST /api/v1/raillab/health/attestations/verify
# or verify POST /api/v1/raillab/health/attestations/verify
# with the full signed attestation JSON body -> { "valid": true }The attestation attestation_hash issha256(canonicalJson(body)); the Ed25519 signature is over that hash. `chain_ok` means the previous hash resolves to a stored attestation, making the whole history tamper-evident.
Live status endpoints (public)
- /api/v1/raillab/health/safety — execution interlock (never cached).
- /api/v1/raillab/health/attestations/latest — latest signed attestation.
- /api/v1/raillab/health/attestations/verify — offline verification.
Agent autarky
From the SDK:
const p = new PassportClient({ apiKey: "pp_…", baseUrl: "https://passport.metis.gold" });
const safety = await p.getSafetyStatus(); // public
const trust = await p.getTrustOverview(); // ISSUER key for full detail
if (trust.console.severity === "SEVERE") {
// An autonomous agent can decide to pause work on this rail.
}