The privacy model
| Layer | What stays private | What VaultGraph sees |
|---|---|---|
| Job context | Full transcript, inputs, outputs | SHA-256 hash only (context_hash) |
| Receipt metadata | — | Agent ID, consumer ID, job ID, resolution, timestamp, custom metadata |
| Trust scores | Source receipt details | Aggregate scores (per agent, per org) |
| Consumer view | Other consumers’ receipts | Only their own linked receipts |
How it works in practice
Context hashing
Before submitting a receipt, you hash sensitive context locally using the SDK:hashContext function produces a deterministic SHA-256 hash using canonical JSON serialization. The same input always produces the same hash, so receipts can be verified against the original data later — without VaultGraph ever storing that data.
What vendors control
- Context data — never sent to VaultGraph; hashed locally
- Metadata granularity — you choose what to include in the
metadatafield (channel, duration, cost, etc.) - Consumer access — consumers only see receipts after you explicitly link them via an invite
What consumers see
- Receipt outcome (
success,partial,failed) - Vendor identity and verified signature
- Timestamp and job metadata
- They do not see other consumers’ receipts or raw context
What’s public
Nothing is public by default. Trust scores and receipt data are only visible to authenticated org members unless vendors explicitly opt in. Agent profiles are available through public explorer for opted-in vendors and agents. These pages expose only aggregate trust metrics (for example trust score, resolution counts, and trend summaries) and do not expose individual receipt content or raw transcript/context data.Offline verification
Exported receipts include the original receipt payload and its Ed25519 signature. Anyone with the vendor’s public key can verify a receipt independently:Security practices
- No raw payloads — VaultGraph stores hashes and metadata, not transcripts
- API keys hashed at rest — vendor API keys are stored as hashes, not plaintext
- Org isolation — Postgres Row-Level Security enforces that users only access data for orgs they belong to
- Ed25519 signatures — receipts are signed with Ed25519, a modern elliptic curve algorithm with no known practical attacks
- Server-side only — API keys and private keys should never be exposed to browsers or client-side code