This specification defines the architecture of the Lux Financial Platform — a modular, globally compliant digital securities infrastructure. The platform provides banking, foreign exchange, matching, and compliance as independent Go services that compose into a unified stack. White-label operators deploy the same images with their own regulatory licenses (ATS, BD, TA, etc.) and brand configuration.
Lux Group Securities operates from Luxembourg as a digital securities platform. White-label licensees operate under their own regulatory registrations in their respective jurisdictions.
bank | bankd | :8070 | Accounts, payments, compliance, KYC | MTL (Lux Group) |forex | forexd | :8086 | FX execution, payment rails | MTL (Lux Group) |dex | lxd | :8085 | Order matching, market data | MTL (Lux Group) |broker | brokerd | :8080 | Multi-provider order routing | WL operator |futures | futuresd | :8090 | Futures/commodities | WL operator |captable | captabled | :8075 | Cap table, corporate actions | WL operator |exchange | (SPA) | :3000 | DEX frontend | On-chain |
┌─────────────────────────────────────────────────────┐
│ FRONTENDS │
│ exchange (DEX) bank dash admin (Base) │
├─────────────────────────────────────────────────────┤
│ PLATFORM LAYER (MTL) │
│ bank — accounts, KYC, payments, compliance │
├──────────┬──────────┬──────────┬──────────┬─────────┤
│ broker │ forex │ futures │ captable │ dex │
│ equities│ FX/BaaS │ commod │ registry│ match │
├──────────┴──────────┴──────────┴──────────┴─────────┤
│ PAYMENT RAILS │
│ SEPA · FPS · ACH · SWIFT · Interac · Wire │
├─────────────────────────────────────────────────────┤
│ PROVIDERS │
│ Alpaca · IBKR · Apex · CurrencyCloud · OpenPayd │
│ LMAX · Circle │
└─────────────────────────────────────────────────────┘
The platform is designed for white-label deployment. Each WL operator:
/config.jsonExample: A WL operator with SEC ATS + FINRA BD + SEC TA registrations deploys:
ghcr.io/luxfi/broker:main with their Alpaca/IBKR credentialsghcr.io/luxfi/bank:dev with their CurrencyCloud keysghcr.io/luxfi/dex:main for order matchingghcr.io/luxfi/captable:main for transfer agent functionsNo Lux branding appears in the WL deployment. All customer-facing strings come from brand config.
Each module defines a Go interface that providers must implement:
Provider (16 methods), OptionsProvider (8), MarginProvider (4)FXProvider (6 methods) — pairs, quotes, orders, positions, ratesFuturesProvider (6 methods) — contracts, quotes, orders, marginTAProvider — issuance, transfers, corporate actions, cap tableThe bank module detects the appropriate payment network based on currency and jurisdiction:
Rail selection is automatic via DetectRail(currency, senderCountry, recipientCountry).
Every financial operation passes through compliance hooks before execution:
1. KYC Gate: Account must have kycStatus = "approved"
2. AML Screening: Transactions exceeding threshold screened via compliance service
3. Sanctions Check: Beneficiary creation screened against sanctions lists
4. PEP Screening: Account creation flagged for politically exposed persons
5. Audit Trail: All state transitions logged to immutable audit collection
Each module produces Docker images tagged :main (production), :test (testnet), :dev (devnet).
White-label deployments consume the same images with different runtime configuration:
/config.json (K8s ConfigMap or KMS)CORS_ALLOWED_ORIGINS