Skip to content

Trust

Cryptographic transparency.

Recomputable by anyone

Every day, we hash a deterministic Merkle root over the audit chain that mattered — every AI call, every tenant-side action, every founder cross-tenant read, every messaging-consent record. The root is a fingerprint of what existed in our system on that UTC day. If we silently mutated an old row, the root would no longer match — and any auditor who saved yesterday's value would notice.

How to verify
  1. Read the four audit tables for the UTC day you want to check: ai_run, audit_log, cross_tenant_access_log, customer_messaging_consent.
  2. For each row, build a canonical pipe-joined string key="value"|key="value"... with keys sorted alphabetically. Prefix with the table name. SHA-256 → leaf.
  3. Sort the combined leaf array lexicographically. Build a standard binary Merkle tree (duplicate the last leaf on odd-count layers; concatenate left + right hex bytes for the parent hash). The root is the final 64-character hex string.
  4. Compare to ours. If you have a tenant session at GladiusTurf, GET /api/transparency/root/YYYY-MM-DD returns your tenant-scoped root.

The implementation lives at lib/audit/merkle.ts in our public source. Roughly 100 lines. No exotic crypto — a well-understood Merkle construction over a deterministic row-canonicalization scheme.

What this proves — and what it doesn't

Proves: a row that existed on day X cannot be silently changed on day X+1 without invalidating that day's published root.

Does not prove: that we published the root truthfully (we could compute and post a wrong hash). Daily public-notary timestamping ships next so the chain of roots itself is verifiable independently of us. v2.

Tenant access

Tenants can see their own daily roots inside the workspace at the Trust Console (Pulse → Trust Console). Each AI call additionally generates a public per-call receipt at /receipt/[id]. Drop a receipt URL into any AI-drafted message you send — recipients can verify what the AI was given.

Published roots — last 9 days
all-tenants forensic chain
UTC dateRoot (sha256)AI runsAuditCross-tenantConsent
2026-05-12000000000000000000000000000000000000
2026-05-11000000000000000000000000000000000000
2026-05-10000000000000000000000000000000000000
2026-05-09ef7f409a997e8f0fb970b14c716ec8b10200
2026-05-081b83e3c5d2e34eeacd1a7a6538f46dba0500
2026-05-07000000000000000000000000000000000000
2026-05-06000000000000000000000000000000000000
2026-05-05000000000000000000000000000000000000
2026-05-04000000000000000000000000000000000000

Roots show the first 32 hex characters of each SHA-256 fingerprint. Hit /api/transparency/root/YYYY-MM-DD with your tenant session for the full root + tenant-scoped counts. The all-tenants root above is forensics-grade and not customer-visible per-row.

Questions: email legal@gladiusturf.com. Read the DPA for the full sub-processor list and privacy policy for retention.