Architecture

Passify is API-first and deliberately minimal: a thin set of services over Postgres, Redis, and Solana RPC, holding no identity data and no user keys.

Design principles

  • API-first. Every capability is reachable over REST. SDKs are thin wrappers — never the only path.
  • Zero PII on-chain. The on-chain record holds a wallet key, attester key, schema, expiration, and a hash. Nothing else.
  • Minimal on-chain footprint. Attestations use an existing attestation program; token operations use Token-2022 over RPC. No bespoke program to maintain in v1.
  • Stateless backend. Servers hold no secret state beyond hashed API keys. State lives on-chain or in the database.

Services

components
              ┌──────────────────────────────┐
              │          API gateway          │
              │   auth · rate limit · routing  │
              ├──────┬──────┬───────┬──────────┤
              │ KYC  │ Att. │ Token │  Query   │
              │ svc  │ svc  │ svc   │  svc     │
              ├──────┴──────┴───────┴──────────┤
              │ Postgres │ Redis │ Solana RPC  │
              └──────────────────────────────┘
ServiceResponsibility
KYCCreates provider sessions, verifies webhooks, hashes results, hands off to Attestation.
AttestationBuilds and sends the on-chain attestation; persists the record; retries on failure.
TokenChecks attestation + rules, then builds unsigned Token-2022 mint/transfer instructions.
QueryReads attestation status and balances; cross-checks on-chain when configured.

External dependencies

DependencyPurposeFailure strategy
Helius RPCSolana connection and indexing.Fall back to a secondary RPC.
BlockpassKYC verification.Fail the session and alert operations.
Token-2022Token operations.Core infrastructure — no fallback.
RedisRate limiting and session cache.Degrade to in-memory; alert operations.
PostgresPersistent storage.No fallback — the system of record.

Stateless & resilient

Because servers carry no durable secret state, an instance can be replaced with no data loss — another spins up and reads from the database and chain. User private keys never touch Passify: investors sign in their own wallet or wallet-as-a-service provider, and Passify only ever returns unsigned transactions.

Last updated