Skip to content

QuantaTrade AI — Platform Status Report

Date: April 2026 Organization: github.com/QuantaTradeAI Scope: Snapshot of adapted services, components, and milestone readiness for the 10-milestone delivery plan.


1. System Architecture

High-Level Architecture

graph TB
    subgraph Clients["Client Layer"]
        TUI["Trading UI<br/>(Next.js 15)"]
        ADM["Admin Panel<br/>(Next.js 15)"]
        PSA["Presale App<br/>(scaffold)"]
        INV["Investor Dashboard<br/>(scaffold)"]
    end

    subgraph Gateway["Gateway Layer"]
        API["API Gateway<br/>(NestJS)<br/>REST + Auth"]
        WSG["WS Gateway<br/>(uWebSockets.js)<br/>Real-time events"]
    end

    subgraph Trading["Trading Core"]
        ME["Matching Engine<br/>(Java Spring Boot)<br/>exchange-core2 CLOB"]
        OR["Order Router / OMS<br/>(NestJS)<br/>state machine + gRPC"]
        RS["Risk Service<br/>(NestJS)<br/>Margin + Liquidation"]
        PMS["PMS Service<br/>(NestJS)<br/>Positions + P&L"]
    end

    subgraph Financial["Financial Infrastructure"]
        LED["Ledger Service<br/>(NestJS + Temporal)<br/>Double-Entry"]
        CUS["Custody Service<br/>(NestJS)<br/>BitGo"]
        COM["Compliance Service<br/>(NestJS)<br/>Sumsub KYC/AML"]
    end

    subgraph Intelligence["Market Intelligence"]
        MD["Market Data<br/>(Java Spring Boot)<br/>TimescaleDB recorder"]
        MM["Market Maker<br/>(Python)"]
        SE["Strategy Engine<br/>(Python FastAPI)"]
    end

    subgraph Blockchain["Blockchain Layer"]
        CT["Smart Contracts<br/>(Solidity scaffold)<br/>$QTRA Token + Presale"]
        CI["Chain Indexer<br/>(scaffold)"]
    end

    subgraph Data["Data Layer"]
        PG[("PostgreSQL<br/>Prisma")]
        TS[("TimescaleDB<br/>Trades + OHLCV")]
        RD[("Redis<br/>Cache + Pub/Sub")]
        NT["NATS<br/>Event Bus"]
        TMP["Temporal<br/>Workflow Engine"]
    end

    TUI --> API
    TUI --> WSG
    ADM --> ME
    ADM --> API

    API --> OR
    API --> LED
    API --> CUS
    API --> COM
    WSG --> NT

    OR --> ME
    OR --> RS
    OR --> NT
    ME --> MD

    LED --> NT
    LED --> TMP
    CUS --> TMP
    RS --> NT

    MM --> ME
    SE --> MD

    API --> PG
    OR --> PG
    LED --> PG
    MD --> TS
    API --> RD
    OR --> RD

    style Clients fill:#f5f5f5
    style Gateway fill:#e0f2f1
    style Trading fill:#e8f5e9
    style Financial fill:#fff3e0
    style Intelligence fill:#e1f5fe
    style Blockchain fill:#f3e5f5
    style Data fill:#eceff1

Service Communication Map

graph LR
    subgraph Sync["Synchronous (REST/gRPC)"]
        API -->|REST| ME
        API -->|REST| OR
        ADM -->|REST + gRPC-Web| ME
        OR -->|gRPC + WS| ME
        PMS -->|REST| ME
    end

    subgraph Async["Asynchronous (NATS)"]
        OR -->|orders.*| NT["NATS"]
        NT -->|trades.executed| LED
        NT -->|marketdata.*| WSG
        NT -->|margin.*| RS
        NT -->|kyc.*| COM
        NT -->|custody.*| CUS
        NT -->|balances.*| WSG
    end

    subgraph Workflows["Temporal Workflows"]
        CUS -->|withdrawal| TMP["Temporal"]
        CUS -->|deposit| TMP
        LED -->|settlement| TMP
    end

    style Sync fill:#e8f5e9
    style Async fill:#e1f5fe
    style Workflows fill:#fff3e0

Note: tech-decisions.md §6 lists Redpanda as the long-term message broker. NATS is retained from the adapted source; migration to Redpanda is evaluated as a follow-up once load profiles are measured.


2. Component Inventory

2.1 Exchange Core (Matching Engine)

Aspect Details
Repo exchange-core (Java 17, Spring Boot 3.2.1)
Algorithm Price-Time Priority (FIFO) via exchange-core2 + LMAX Disruptor
Order Types GTC, IOC, FOK, FOK_BUDGET, MARKET, STOP_LIMIT, STOP_MARKET
STP Modes NONE, CANCEL_RESTING, CANCEL_INCOMING, CANCEL_BOTH, DECREMENT_AND_CANCEL
APIs REST endpoints, gRPC methods, WebSocket channels
Risk Pre-trade validation, rate limiting, max order size, max notional, STP
Fees 7-tier volume-based (15/25 bps base → -2/10 bps VIP), custom rates, withdrawal fees
Ports 8090 (REST), 9090 (gRPC), WebSocket on same port

Fee Schedule:

Tier 30d Volume Maker Taker
Base < $50K 15 bps 25 bps
Tier 1 $50K–$500K 12 bps 22 bps
Tier 2 $500K–$2M 10 bps 20 bps
Tier 3 $2M–$10M 8 bps 18 bps
Tier 4 $10M–$50M 5 bps 15 bps
Tier 5 $50M–$100M 2 bps 12 bps
VIP > $100M -2 bps (rebate) 10 bps

$QTRA holders receive the discounted rate schedule per the system specification (0.03% / 0.06% at the base tier).

2.2 Platform (Backend Monorepo)

Service Port Role Key Capabilities
api-gateway 3001 REST API entry Auth, orders, accounts, markets, KYC, staking, payments, API keys, MFA
order-router 3006/9092 Order routing & OMS Risk checks, fat-finger protection, balance validation, order state machine, NATS pub/sub
ledger-service 3007 Accounting Double-entry ledger, idempotent ops, Temporal workflows
risk-service 3009 Margin/Risk Margin checks (10x max), liquidation engine (105% trigger), interest accrual
ws-gateway 8080 WebSocket Real-time ticker, orderbook, trades, user events (uWebSockets.js)
pms-service 3007 Positions Position tracking, P&L, FIFO tax reporting

Shared Packages: @quantatrade/common, @quantatrade/db (Prisma), @quantatrade/types, @quantatrade/nats, @quantatrade/temporal.

API Gateway Modules:

Module Highlights
Auth Login, register, MFA, password reset
Orders Place, cancel, history, estimate
Accounts Balances, deposit address, withdraw (crypto + fiat), portfolio
Markets Markets, tickers, orderbook, trades, candles
Users Profile, MFA, activity, addresses, permissions
KYC Status, start, basic info, webhook
Staking Products, balances, stake/unstake, history
Conversions Pairs, quote, execute, history
API Keys Create, list, revoke, rotate
Payments Routes, session, history
Fees Network, payment, trading fees

2.3 Order Router & OMS

Aspect Details
Repo order-router (NestJS + TypeScript)
Role Pre-trade risk checks, margin validation, matching-engine submission, NATS fan-out
State Machine Order lifecycle (PendingNew → New → PartiallyFilled → Filled / Cancelled / Rejected / Expired)
Matching engine link gRPC for synchronous flows; REST + WebSocket for execution reports
Risk Fat-finger limits, balance validation, notional caps, rate limiting
Persistence PostgreSQL (order history), Redis (hot state)

2.4 Custody & Treasury

Aspect Details
Repo custody-service (NestJS + TypeScript)
Custody Provider BitGo — confirmed by client 2026-04-19 (multi-sig / TSS, institutional policy engine, approval flows)
Blockchains Base (primary for $QTRA); Ethereum, BSC, Solana, Tron for stablecoin rails per M2 scope
Workflows Temporal workflows for withdrawal, deposit, address generation
Webhooks Provider-signed webhook verification with replay protection
Multi-sig HOT(2/3), WARM(3/5), COLD(4/7), TREASURY(3/5)
Treasury 50% active trading / 50% liquidity & risk reserve per M2 framework. Proof-of-reserve reports planned

Policy Engine:

Wallet Max Tx Daily Limit Approvals Auto-Approve
Hot $10K $100K 1 < $1K
Warm $100K $1M 2 Never
Treasury $500K $2M 3 Never
Cold $1M $5M 4 Never

2.5 Trading UI

Aspect Details
Repo trading-ui (Next.js 15)
Pages login, dashboard, admin, legal, strategy monitoring
API Routes orders, strategies, risk, analytics, export
Components React components organised by feature area
Hooks Custom hooks for WebSocket, positions, P&L, risk
Auth NextAuth.js (Google OAuth + credentials), RBAC, admin approval gate
Database Prisma (PostgreSQL)
Strategies UI Momentum (MA crossover), Mean Reversion (Bollinger + RSI), funding-rate arbitrage
Risk Controls Kill switch (global/strategy/symbol), exposure limits, risk breach tracking

2.6 Admin Panel

Aspect Details
Repo admin-panel (Next.js 15)
Pages Dashboard, participants, orders, trades, balances, risk, treasury, hedging, market-making, symbols, KYC, approvals, services
RBAC Participant types with granular permissions
Operations Balance adjustments, KYC review, withdrawal approvals, MM controls, symbol management, risk limits

2.7 Market Maker

Aspect Details
Repo market-maker (Python)
Connectors Binance, Bybit, OKX, Kraken, Coinbase, QuantaTrade internal
Strategies PMM, XEMM, Avellaneda-Stoikov, Grid, Directional, AI-driven
QuantaTrade Connector Custom REST + WS with LIMIT / LIMIT_MAKER, fee-model awareness
Risk Kill switch (PnL threshold), triple barrier (SL/TP/time), cooldown, rate limiting

2.8 Strategy Engine (Backtester)

Aspect Details
Repo strategy-engine (Python, FastAPI per tech-decisions.md §6)
Data Formats CSV, Parquet, Binance and Bybit historical feeds
Modes L2 depth backtest, partial / no-partial fill, live and paper-trading modes
Strategies Mean reversion, momentum, funding-rate arbitrage, AI signal scanners
Metrics Sharpe, Sortino, MaxDrawdown, ReturnOverMDD, position statistics

2.9 Market Data

Aspect Details
Repo market-data (Java Spring Boot)
Records Trades, orderbook snapshots, fee events (batched writes)
OHLCV TimescaleDB continuous aggregates: 1m, 5m, 15m, 1h, 4h, 1d, 1w
NATS Publishes marketdata.trade.*, marketdata.ticker.*, marketdata.orderbook.*, marketdata.candle.*
API REST endpoints (trades, OHLCV, ticker, orderbook, status)

2.10 Compliance

Aspect Details
Repo compliance-service (NestJS + TypeScript)
Provider Sumsub (HMAC-SHA256 auth)
Tiers basic, intermediate, advanced
NATS Subscribes: kyc.verification.start, kyc.status.get, sumsub.webhook
Status Early stage — persistence layer not implemented (TODO stubs)

3. Data Flow Diagrams

3.1 Order Lifecycle

sequenceDiagram
    participant U as User (Trading UI)
    participant API as API Gateway
    participant OR as Order Router
    participant RS as Risk Service
    participant ME as Matching Engine
    participant LED as Ledger Service
    participant WSG as WS Gateway
    participant MD as Market Data

    U->>API: POST /orders (JWT auth)
    API->>API: Validate user, KYC level
    API->>OR: Submit order (NATS request)

    OR->>OR: Risk checks (fat-finger, size limits, notional)
    OR->>RS: Margin check (NATS request)
    RS-->>OR: Margin OK

    OR->>ME: Place order (gRPC/REST)
    ME->>ME: Validate (balance, STP, rate limit)
    ME->>ME: Match against CLOB

    alt Order Fills
        ME-->>OR: ExecutionReport (WebSocket)
        OR->>LED: trades.executed (NATS)
        LED->>LED: Double-entry settlement (Temporal)
        OR-->>API: Order filled
        API-->>U: Order confirmation

        par Fan-out
            OR->>WSG: orders.filled (NATS)
            WSG->>U: WebSocket: order_update
            OR->>MD: marketdata.trade.* (NATS)
            MD->>MD: Record to TimescaleDB
        end
    else Order Rests on Book
        ME-->>OR: Order acknowledged
        OR-->>API: Order placed
        API-->>U: Order pending
    end

3.2 Deposit Flow

sequenceDiagram
    participant U as User
    participant API as API Gateway
    participant CUS as Custody Service
    participant CUSTODIAN as Custodian
    participant LED as Ledger
    participant WSG as WS Gateway

    U->>API: GET /accounts/deposit-address
    API->>CUS: getDepositAddress (Temporal workflow)
    CUS->>CUS: Check address pool
    alt Pool has address
        CUS-->>API: Existing address
    else Pool empty
        CUS->>CUSTODIAN: Generate new address
        CUSTODIAN-->>CUS: Address
        CUS->>CUS: Assign to user
    end
    API-->>U: Deposit address

    Note over U,CUSTODIAN: User sends crypto to address

    CUSTODIAN->>CUS: Webhook: transaction status updated
    CUS->>CUS: Verify signature
    CUS->>CUS: processDeposit (Temporal workflow)
    CUS->>LED: ledger.credit (NATS)
    LED->>LED: Credit user balance (double-entry)
    LED->>WSG: balances.updated (NATS)
    WSG->>U: WebSocket: balance_updated

3.3 Withdrawal Flow

sequenceDiagram
    participant U as User
    participant API as API Gateway
    participant CUS as Custody Service
    participant POL as Policy Engine
    participant ADMIN as Admin (Approver)
    participant CUSTODIAN as Custodian
    participant LED as Ledger

    U->>API: POST /accounts/withdraw/crypto
    API->>CUS: withdrawalWorkflow (Temporal)

    CUS->>CUS: Validate address format
    CUS->>LED: ledger.lock (NATS) — lock funds
    CUS->>POL: Check withdrawal policy

    alt Auto-approve (< threshold)
        POL-->>CUS: Approved
    else Requires approval
        POL-->>CUS: Awaiting approval
        CUS->>ADMIN: Notification
        ADMIN->>CUS: approvalSignal (Temporal)
    end

    CUS->>CUSTODIAN: Sign transaction
    CUS->>CUSTODIAN: Broadcast transaction
    CUSTODIAN->>CUS: Webhook: TX confirmed
    CUS->>LED: ledger.debit (NATS) — finalize
    CUS->>U: Withdrawal complete

3.4 Market Data Pipeline

graph LR
    ME["Matching Engine<br/>(trades + orderbook)"]
    MD["Market Data Recorder<br/>(Java)"]
    TS[("TimescaleDB<br/>trades, snapshots,<br/>OHLCV 1m→1w")]
    NT["NATS"]
    WSG["WS Gateway"]
    TUI["Trading UI"]
    MM["Market Maker"]

    ME -->|WebSocket| MD
    MD -->|batch insert| TS
    MD -->|marketdata.trade.*| NT
    MD -->|marketdata.ticker.*| NT
    MD -->|marketdata.orderbook.*| NT
    MD -->|marketdata.candle.*| NT
    NT --> WSG
    WSG -->|WebSocket| TUI
    MM -->|REST/WS| ME

4. Database Schema

4.1 Prisma Models (platform)

erDiagram
    User ||--o{ Account : has
    User ||--o{ Order : places
    User ||--o{ Trade : executes
    User ||--o{ ApiKey : owns
    User ||--o{ MfaSecret : has
    User ||--o{ KycRecord : has
    User ||--o{ StakingPosition : stakes
    User ||--o{ AuditLog : generates

    Account ||--o{ LedgerEntry : tracks
    Market ||--o{ Order : contains
    Order ||--o{ Trade : produces

    MarginAccount ||--o{ MarginPosition : holds
    MarginAccount ||--o{ MarginLoan : borrows

    InsuranceFund ||--o{ InsuranceFundTransaction : records
    ProofOfReserve ||--o{ UserBalanceSnapshot : attests

Key Models: User, Account, LedgerEntry, Market, Order, Trade, MarginAccount, MarginPosition, MarginLoan, StakingPosition, KycRecord, ApiKey, MfaSecret, AuditLog, ProofOfReserve.

4.2 TimescaleDB (market-data)

Hypertable Key Columns Indexes
trades time, symbol, trade_id, price, quantity, side, fees (time, symbol, trade_id)
orderbook_snapshots time, symbol, bids (JSONB), asks (JSONB), spread_bps (time, symbol)
fee_events time, participant_id, fee_type, fee_amount, tier_name (time, participant_id)

Continuous Aggregates: ohlcv_1m, ohlcv_5m, ohlcv_15m, ohlcv_1h, ohlcv_4h, ohlcv_1d, ohlcv_1w.


5. NATS Event Bus

Category Subjects Publishers Subscribers
Orders orders.created/updated/filled/cancelled/rejected order-router ws-gateway, ledger
Trades trades.executed, trades.executed.{symbol} order-router ledger, risk, market-data
Market Data marketdata.ticker/orderbook/trade/candle.{symbol} market-data ws-gateway
Balances balances.updated.{userId} ledger ws-gateway
Custody custody.deposit/withdrawal.* custody-service api-gateway
Margin margin.position/liquidation/loan.* risk-service ws-gateway
KYC kyc.verification/level.* compliance api-gateway
Staking staking.staked/unstaked/rewards.* staking-service ws-gateway
Ledger RPC ledger.balances.get/credit/debit/lock/unlock order-router ledger-service
Risk RPC risk.margin.check/balance.check/margin.level order-router risk-service

6. Project Status

Completion by Milestone

gantt
    title QuantaTrade AI — Current Status vs Plan
    dateFormat YYYY-MM-DD
    axisFormat %b

    section Phase 1 Status
    M1 Execution Engine (READY ~80%)       :done, p1m1, 2026-04-07, 7d
    M2 Contracts & Custody (READY ~60%)     :active, p1m2, after p1m1, 7d
    M3 Presale Platform (SCAFFOLD ~5%)      :p1m3, after p1m2, 7d
    M4 Compliance & Trading (READY ~50%)    :p1m4, after p1m3, 7d
    M5 Token Utility (NOT STARTED)          :p1m5, after p1m4, 7d

    section Phase 2 Status
    M1 Market Data (READY ~70%)             :p2m1, after p1m5, 7d
    M2 Signals & AI (READY ~40%)            :p2m2, after p2m1, 7d
    M3 Margin & Derivatives (PARTIAL ~30%)  :p2m3, after p2m2, 7d
    M4 Liquidity & MM (READY ~75%)          :p2m4, after p2m3, 7d
    M5 Portfolio & Institutional (PARTIAL ~20%) :p2m5, after p2m4, 7d

Detailed Status per Milestone

Milestone Deliverable Status What Exists What's Missing
P1-M1 Execution Engine Matching engine READY exchange-core2 CLOB, 7 order types, price-time priority Rebrand pair configs for $QTRA
OMS / PMS READY State machine, venue connectors, FIFO P&L, mark-to-market Configure for crypto-only venues
Ledger READY Double-entry, Temporal workflows, idempotent Ready as-is
UI/UX READY Components, API routes, pages Rebrand + crypto UI
Smart order routing READY Fat-finger protection, balance check, margin eligibility Configure for QT markets
P1-M2 Smart Contracts $QTRA Token NOT STARTED Hardhat scaffold only ERC20 contract
SaleManager NOT STARTED Scaffold only Private A/B/C + Public round logic
Vesting NOT STARTED Scaffold only Merkle-based claims
Custody integration IN PROGRESS Adapt custody service for BitGo SDK, policy engine, approval flows (provider confirmed 2026-04-19) Complete BitGo integration, configure wallets and policies
Treasury READY Policy engine, multi-sig, proof-of-reserve plan Configure policies for $QTRA
Multi-sig READY HOT(2/3), WARM(3/5), COLD(4/7), TREASURY(3/5) Ready as-is
Fiat rails PARTIAL Gateway scaffolding SEPA/SWIFT/ACH integration still needed
P1-M3 Presale Platform Presale web app NOT STARTED README scaffold Full Next.js app
Admin panel READY Pages, permissions, RBAC Add presale management
Investor dashboard NOT STARTED README scaffold Full Next.js app
Chain indexer NOT STARTED README scaffold Full indexer
P1-M4 Compliance KYC/AML PARTIAL Sumsub integration, tiers Persistence layer incomplete
Trading platform READY Full trading UI, strategies, risk controls Adapt for crypto
Strategy engine READY Mean reversion, momentum, backtesting Add funding arbitrage
Subscription mgmt NOT STARTED Stablecoin payments flow
P1-M5 Token Utility Staking PARTIAL Staking API exists in platform Smart contract needed (see staking-open-questions.md)
Buyback/burn NOT STARTED New development (revenue router — highest-risk contract)
Fee rebates NOT STARTED Fee system exists Token-holder detection at execution
P2-M1 Market Data DOM / L2 / L3 PARTIAL Orderbook recording exists L2/L3 visualization
Sentiment / news NOT STARTED New development
OHLCV READY 7 intervals, continuous aggregates Ready as-is
P2-M2 Signals & AI Signal engine PARTIAL Momentum + mean reversion AI scanners
Backtesting READY Python backtester, historical data ingestion Ready as-is
Custom signal builder NOT STARTED New development
P2-M3 Margin & Derivatives Margin accounts PARTIAL Risk service has margin (10x, liquidation) Cross / isolated margin UI
Perpetuals NOT STARTED Architecture exists Contract specs
P2-M4 Liquidity & MM Market maker READY Multi-venue Python MM with strategies, QuantaTrade connector Configure for QT pairs
Spread management READY Admin panel has MM controls Ready
P2-M5 Portfolio & Inst. Portfolio optimization NOT STARTED PMS has P&L tracking Optimization engine
Tax tools PARTIAL FIFO P&L exists in PMS Tax reporting UI
Institutional dashboards NOT STARTED New development

Estimated Completion

Category Items Ready Partial Not Started
Phase 1 20 deliverables 10 (50%) 4 (20%) 6 (30%)
Phase 2 15 deliverables 4 (27%) 4 (27%) 7 (46%)
Total 35 deliverables 14 (40%) 8 (23%) 13 (37%)

7. Build Blockers

# Issue Repo Impact Fix
1 Missing @quantatrade/logger package platform Several files import it Create stub package
2 Missing @quantatrade/metrics package platform Several files import it Create stub package
3 Compliance persistence layer incomplete compliance-service KYC can't persist Implement Prisma calls
4 Smart contracts not written contracts Blocks M2 presale Priority development
5 Presale / Investor apps not built presale-app, investor-dashboard Blocks M3 New development
6 SEPA/SWIFT/ACH fiat rails missing custody-service Blocks fiat on/off ramp Partner integration (Banking Circle / ClearBank)
7 Revenue router not specified in full detail contracts Blocks M5 Request buyback section of system spec (PDF is truncated)

8. Next Actions — Gantt Chart

gantt
    title QuantaTrade AI — Next Actions (8-Week Plan)
    dateFormat YYYY-MM-DD
    axisFormat %b %d

    section Week 0 — Unblock
    Fix build blockers (logger, metrics)                :crit, w0a, 2026-03-31, 2d
    Finalize tokenomics with client                     :crit, w0b, 2026-03-31, 3d
    Select deployment chain (Base recommended)          :w0c, 2026-03-31, 1d
    BitGo sandbox credentials + integration scope       :crit, w0d, 2026-03-31, 3d
    Configure QT trading pairs in matching engine       :w0e, 2026-04-01, 2d
    CI/CD pipelines for all repos                       :w0f, 2026-04-01, 3d

    section Phase 1 — Milestone 1 (COMPLETED)
    Rebrand UI (remove legacy configs, add crypto pairs):done, p1a, 2026-04-07, 3d
    Configure exchange-core for QTRA pairs              :done, p1b, 2026-04-07, 2d
    Verify order lifecycle end-to-end                   :done, p1c, 2026-04-09, 2d
    Deploy staging environment                          :done, p1d, 2026-04-10, 2d
    M1 Acceptance testing                               :done, p1e, 2026-04-11, 2d

    section Phase 1 — Milestone 2
    Write $QTRA ERC20 token contract                    :crit, p2a, 2026-04-14, 2d
    Write SaleManager contract (Private A/B/C + Public) :crit, p2b, 2026-04-14, 3d
    Write Vesting / Allocation contracts (Merkle)       :p2c, 2026-04-16, 2d
    Contract tests (90%+ coverage)                      :p2d, 2026-04-17, 2d
    Deploy to Base Sepolia testnet                      :p2e, 2026-04-18, 1d
    Configure custody sandbox                           :p2f, 2026-04-14, 3d
    Configure treasury policies                         :p2g, 2026-04-17, 2d

    section Phase 1 — Milestone 3
    Build presale web app (Next.js + wagmi)             :p3a, 2026-04-21, 4d
    Build admin presale management                      :p3b, 2026-04-21, 3d
    Build investor dashboard                            :p3c, 2026-04-23, 3d
    Build chain indexer                                 :p3d, 2026-04-23, 2d
    End-to-end presale flow testing                     :p3e, 2026-04-25, 2d

    section Phase 1 — Milestone 4
    Complete compliance persistence layer               :p4a, 2026-04-28, 2d
    Add jurisdiction-based access controls              :p4b, 2026-04-28, 2d
    Adapt trading UI for crypto                         :p4c, 2026-04-28, 3d
    Add funding spread arbitrage strategy               :p4d, 2026-04-30, 2d
    Subscription management system                      :p4e, 2026-04-30, 3d

    section Phase 1 — Milestone 5
    Write staking smart contract                        :p5a, 2026-05-05, 2d
    Implement revenue router (highest-risk audit)       :p5b, 2026-05-05, 3d
    Token fee rebate integration                        :p5c, 2026-05-07, 2d
    On-chain auditability                               :p5d, 2026-05-08, 2d
    Phase 1 final testing                               :p5e, 2026-05-09, 2d

9. Technology Stack Summary

Layer Technology Version / Notes
Matching Engine Java Spring Boot, exchange-core2 Java 17, Spring 3.2.1
Backend Services Node.js, NestJS, TypeScript Node 20, NestJS 10
Order Router / OMS NestJS Part of the platform monorepo
Trading UI Next.js, React, TypeScript Next 15, React 18
Market Maker Python Multi-venue connector framework
Strategy / Backtester Python, FastAPI Per tech-decisions.md §6
Smart Contracts Solidity, Hardhat, OpenZeppelin Solidity 0.8.24
Database PostgreSQL, Prisma PG 16, Prisma 5.22
Time-Series TimescaleDB Extension on PG 16
Cache Redis Redis 7
Message Bus NATS (+ JetStream) NATS 2.10 (Redpanda under evaluation)
Workflows Temporal Temporal 1.22
WebSocket uWebSockets.js uWS 20
Custody BitGo Confirmed 2026-04-19
KYC Sumsub Sumsub API
Monitoring Prometheus, Grafana, Loki Per tech-decisions.md §7