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).
| 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
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 |