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
┌──────────────────────────────┐
│ API gateway │
│ auth · rate limit · routing │
├──────┬──────┬───────┬──────────┤
│ KYC │ Att. │ Token │ Query │
│ svc │ svc │ svc │ svc │
├──────┴──────┴───────┴──────────┤
│ Postgres │ Redis │ Solana RPC │
└──────────────────────────────┘| Service | Responsibility |
|---|---|
| KYC | Creates provider sessions, verifies webhooks, hashes results, hands off to Attestation. |
| Attestation | Builds and sends the on-chain attestation; persists the record; retries on failure. |
| Token | Checks attestation + rules, then builds unsigned Token-2022 mint/transfer instructions. |
| Query | Reads attestation status and balances; cross-checks on-chain when configured. |
External dependencies
| Dependency | Purpose | Failure strategy |
|---|---|---|
| Helius RPC | Solana connection and indexing. | Fall back to a secondary RPC. |
| Blockpass | KYC verification. | Fail the session and alert operations. |
| Token-2022 | Token operations. | Core infrastructure — no fallback. |
| Redis | Rate limiting and session cache. | Degrade to in-memory; alert operations. |
| Postgres | Persistent 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