Secure Post-Quantum-Safe Core Banking & ISO 20022 Payments That Heals and Scales Itself - with Products Extended as Code via WASM Edge Functions.
Bank8 is the finance vertical of the Sentin8 platform - a complete retail banking stack: core ledger, payment orchestration (domestic + cross-border), open banking composed from the OpenFin8 vertical, prudential risk measurement, and AML/CTF compliance. All built as six independent Rust services composed on top of the Sentin8 platform for identity, events, workflows, scheduling, and storage.
Extensibility is architectural: custom product logic (fees, tiered interest, velocity limits, sweeps) compiles to WASM and runs in Sentin8:Func, the platform's isolated edge-function service - invoked around the ledger's atomic commit through typed hooks, never inside the transaction loop. There is no fixed product catalog: any financial product - retail checking, savings, credit cards, mortgages, commercial lending, BNPL, wallets, or tokenized asset balances nobody has built yet - is created as data (a free-form type + parameters + validation modules) on the same unified ledger, while behavior beyond the built-in module library is authored as WASM hooks. Products launch and change as data operations (upload → validate → simulate → activate) with zero core restarts; a buggy hook is contained in its sandbox while the posting transaction stays intact.
Sentin8 and Bank8 redefine infrastructure independence by delivering massive scale directly onto bare-metal, private cloud, and all major public cloud environments - including AWS, GCP, and Azure. Engineered to bypass the complexity and overhead of Kubernetes or heavy service meshes, Sentin8 features native auto-scaling and self-healing capabilities built directly into its core with minimal to no external dependencies. It is purpose-built for ultra-low latency and maximum efficiency, proven in testing to power real-time services with a blistering throughput of 5,000,000 transactions per second (TPS). With Sentin8, you get cloud-native resilience and elite performance, stripped of the operational tax.
Architected for ultimate versatility, Sentin8 is being designed and tested to power infrastructure across the entire business spectrum, from Tier 1 global enterprises to fast-growing startups. Whether you are managing massive legacy workloads at the highest enterprise scale or launching a lean, high-velocity application from a garage, Sentin8 provides the exact same battle-tested reliability and performance to match your operational needs.
A note on our history. If you found your way here looking for PRIME -
authPrime,exchangePRIME, and family - you're in the right place. Those projects are this one: our open-source work is now rebranded to Sentin8 (this vertical is Bank8) to avoid confusion with other brand names and products. At the same time we left our self-hosted Apache SVN behind and moved everything to GitHub. The lineage goes back further than you might expect - here's a fun LinkedIn read from 2017, when the platform was still called PRIME and still lived on SVN: Advanced Hybrid Securities Exchange.
| Service | Domain | What it does | Tables | Endpoints |
|---|---|---|---|---|
| Bank8:Ledger | Core Banking | Double-entry ledger with an open product factory - any financial product creatable as data (free-form type + parameters + modules, no fixed catalog) - plus accounts, products, postings, balances (3-D), statements, checksum-chained audit trail | 44 domain tables + outbox + audit journal | 91 endpoints |
| Bank8:Payments | Payment Orchestration | ISO 20022 scheme flows (B8 on-us, SEPA, TIPS, SWIFT AGI), card issuing/lifecycle/3DS, mandates, payees, routing rules, recurring payments, sandbox simulators | 55 domain tables + outbox + audit journal | 90 endpoints |
| Bank8:Risk | Prudential Risk | Exposure measurement from posting/payment events, Basel capital, LCR/NSFR liquidity, IFRS 9 ECL staging, limit monitoring with breach events, stress scenarios | Event-driven (consumes ledger/payments events) | Embedded worker |
| Bank8:Reporting | Regulatory Reporting | Jurisdiction registry, filing calendar, return generation (XBRL/CSV), submission/amendment lifecycle, AML/CTF filing executor (STR/SAR/CTR/EFTR/LCTR) | Event-driven (consumes risk/compliance events) | Embedded worker |
| Bank8:Compliance | AML/CTF | KYC/CDD, beneficial ownership, PEP/sanctions screening, transaction monitoring, alert/case lifecycle - detection only, filing via Reporting | Event-driven (consumes ledger/payments events) | Embedded worker |
Verticals owned outside this repository that bank8 composes into its stack. They keep their own tables, endpoints, and lifecycle; bank8 only composes them by enabling them in its environment.
| Vertical | Domain | What it does | Service Types |
|---|---|---|---|
| OpenFin8 | Open Finance | Consent-first financial data sharing (openfin8.dev - org: OpenFin8): the consent authority, recipient registry (two-ledger model), CSDF field-level minimization, HMAC-signed notifications, and per-jurisdiction adapters, all over a shared openfin8-core kernel library |
One service per market (below); enable individually per environment |
OpenFin8 markets - a bank activates a market by enabling one service in an environment, not by porting software:
| Service | Jurisdiction | Standard | Status |
|---|---|---|---|
openfin8:ca |
Canada | FDX v6.x (consumer-driven banking) | serving |
openfin8:us |
United States | FDX v6.x | serving |
openfin8:uk |
United Kingdom | OBL Read/Write API v3.1.x | serving (FAPI ceremony, intent consents) |
openfin8:eu |
European Union | Berlin Group openFinance | serving (SCA ceremonies, eIDAS) |
openfin8:br |
Brazil | Open Finance Brasil | designed |
openfin8:au |
Australia | CDR | designed |
Composition. bank8 composes the provider role by enabling openfin8:ca in its
environment (sys.services); OpenFin8 consumes Ledger/Payments via public APIs + the
bank8:: SDK contracts only - never the bank8 database (the OBVERT invariant). Tables
and endpoints are owned by the OpenFin8 vertical; recipient-only fintechs compose it
standalone.
| Repository | Description |
|---|---|
bank8-ebank |
Retail customer banking app |
bank8-eteller |
Branch teller terminal |
bank8-admin |
Vertical admin console (RFW) |
The recipient app moved with the open-finance vertical: the former
bank8-efintech is now eOpenCA
(OpenFin8/openfin8-eopenca).
| Path | Purpose |
|---|---|
sdk/rust/bank8 |
Unified Rust SDK facade - typed clients + contracts (bank8::ledger, bank8::payments, etc.) |
crates/ledger/contracts |
Wire DTOs for ledger domain |
crates/payments/contracts |
Wire DTOs for payments domain |
openfin8-core (OpenFin8) |
The open-finance kernel library - traits + shared implementation (the OpenFin8 vertical) |
crates/fdx/contracts |
Wire DTOs for the FDX (open-banking) domain |
crates/regulatory/contracts |
Wire DTOs for regulatory reporting domain |
Bank8 depends on these Sentin8 platform services for cross-cutting concerns:
| Platform Service | What Bank8 gets from it | Dependency direction |
|---|---|---|
| Sentin8:Auth | Identity, sign-in, token issuance (user + M2M), JWKS, RBAC authorization | bank8 → Auth (verification + M2M identity) |
| Sentin8:BFF | Proxy, delegation gateway, client session custody, token attach | bank8 ← BFF (user tokens proxied to services) |
| Sentin8:Bus | Durable event transport, producer outbox relay, consumer DLQ, SSE push | bank8 → Bus (produce + consume domain events) |
| Sentin8:Flow | Multi-step workflow orchestration with retries and wait states | bank8 → Flow (payment instruction workflows) |
| Sentin8:Cron | Recurring job scheduling (statement runs, schedule-driven postings) | bank8 → Cron (schedule registration) |
| Sentin8:Func | Tenant-authored WASM edge functions (hooks execute outside the core; modules call back through the certificate-bound proxy-back endpoint) | bank8 ← Func (proxy-back handlers for hooks; per-product-version module registry) |
| Sentin8:Storage | Object/file storage (statement documents, filing packages) | bank8 → Storage (document PUT/GET) |
| Sentin8:Stat | Business metrics aggregation and telemetry | bank8 → Stat (event ingestion) |
| Sentin8:Sys | Organization/environment lifecycle, service enablement | bank8 → Sys (env-init events) |
- Double-entry atomicity - posting batches that don't balance per denomination are rejected before any row is written
- One money-movement executor - all financial movement realizes through Bank8:Ledger via the public API; no service writes another's balances
- Idempotent by construction - every payment/posting is idempotent; retries can never double-post
- Terminal states are final - completed/cancelled/revoked states never regress
- No consent, no data - external data access exists only under explicit, revocable customer consent with field-level minimization
- Extension code never touches the commit - product logic runs as sandboxed WASM (fuel + memory + deadline, WASI rejected) on the platform side; even a hook-initiated posting re-enters the same validation pipeline
Architecture & Design: bank8 and its underlying concepts were designed by Hamid Jahanzad.