CommBank ID + income

Participants · packages/pod-runtime

POD CDR Data Pods

A pod is a per-customer, self-managing store for CDR data. It is created from the event stream once the ADR holds tokens, loads itself through the kit's PingAccess, runs only the programs the customer's use consents allow, and destroys itself - crypto-shredding its key - when the last arrangement ends.

What it does

  • One actor per customer, mailbox serialised; encrypted sql.js store sealed with AES-256-GCM under a per-pod key, wrapped by POD_MASTER_KEY.
  • Programs: token manager, loader, refresher, income aggregator, ZK prover, retention/destroyer - each gated on scopes and use consents, refusals audited.
  • The circuit proves income ≥ threshold against a Poseidon commitment in 620 constraints. The setup is beacon-only and demo-only, but byte-for-byte reproducible.
  • The API serves outputs only, never raw CDR data. Nothing sensitive goes on pod.events.

Ports and endpoints

pod-runtime7500
zk-verifier7600
Redis6379

Railway

pod-runtimepod-runtime-production.up.railway.app success
zk-verifierzk-verifier-production.up.railway.app success
Redisservice created, no public domain success

Components and versions

Read from packages/pod-runtime/docker-compose.yml at build time.

ServiceImageHost ports
redisredis:7-alpine6379→6379
pod-runtime(built from repo)7500→7500
zk-verifier(built from repo)7600→7600
pod-dev-fakes(built from repo)7300→7300

Config browser

Read-only, from files tracked in git. Keys, keystores, .sec/, real env files and anything gitignored are left out; secret-looking values are shown as «redacted». 67 files.