vault

10 — Roadmap

docs/10-Roadmap.mdtype: roadmapupdated: 2026-08-09

Roadmap

Phased plan from PM seat. Dates are targets, not commitments — every phase is gated by the 09-Open Questions that block it.

Phase summary

Phase Window Theme Gate
MVP done (2026-05) Mocked end-to-end product ✅ shipped
Beta Q3 2026 First live providers + first paying merchants 09-Open Questions#Launch market, 09-Open Questions#Custody, 09-Open Questions#KYC vendor
GA Q1 2027 MiCA-licensed launch, scale-grade infra 09-Open Questions#Tax & regulatory, 09-Open Questions#Multi-region
Scale 2027+ Additional rails, assets, surfaces revisit at GA

MVP — done ✅

Shipped surfaces (see 03-Domains for status detail):

  • 🟢 Auth — app-local password + TOTP + passkeys + magic link + recovery codes, session revocation, device detection, block flag, admin role, api_keys — all app-owned
  • 🟢 Wallet, Buy, Send, Receive, Sell, Convert
  • 🟢 Invoices (fiat-quoted, per-invoice sub-vault, top-up loop, partial-payment UI)
  • 🟢 Pay-to public links
  • 🟢 Payouts (CSV upload, AML gating, idempotent batches, partial-success handling)
  • 🟢 Admin console (users, transactions, fees, mock email log)
  • 🟢 Fee engine — per-merchant operation rates + global platform_fees knobs (the tier model was retired post-MVP)
  • 🟢 Audit log spine
  • 🟢 Providers behind interfaces (05-External Providers)

Known gaps deferred to Beta — see 08-Risks and Drawbacks.

Shipped after MVP, ahead of the Beta plan ✅

Delivered on master but never folded back into this roadmap:

  • pg-boss background queue — 11 queues, dedicated worker; payouts, webhooks, mail, expiry, reconciliation all off the request lifecycle
  • Durable provider-webhook inbox (provider_webhook_events) and merchant webhook retry via webhook.deliver
  • Live Fireblocks implementation (LiveFireblocks) behind FIREBLOCKS_MODE=live
  • Live KYC — Sumsub behind KYC_MODE=live, with review webhook
  • Live rate oracle — CEX.IO
  • Live email transport — Resend via EMAIL_PROVIDER
  • OpenTelemetry tracing wired + Pino/Better Stack logs, browser telemetry, deep health check, worker heartbeat
  • DB-backed rate limiting (rate_limits) replacing the in-process map
  • Session revocation listusers.session_version + auth_session_revocation_tokens (was a GA item)
  • Payee wallet whitelist — Fireblocks external wallets with quorum approval
  • Balance reconciliation + outbound halt circuit breaker
  • Notifications — table, SSE stream, /my/notifications
  • CMS pages + FAQ authoring, /admin/{ledger,invoices,orders,payouts,reconciliation,jobs,logs,history}
  • Admin log export and invoice CSV export

Beta — Q3 2026

Goal: first 10 design-partner merchants moving real funds in one jurisdiction.

Provider cutover

  • Live Fireblocks implementation written (LiveFireblocks) — still needs vendor onboarding + a production run
  • Live Elliptic — AML + sanctions in one product (replaces MockElliptic, keep 24h cache) — critical path, not started
  • Live KYC vendor — Sumsub (KYC_MODE=live)
  • Live email transport — Resend (selected with EMAIL_PROVIDER)
  • Live rate oracle — CEX.IO (09-Open Questions#Oracle)
  • Live Mercuryo — card acquirer + Buy / Sell on/off-ramp (replaces MockAcquirer) — not started; only the inbound webhook route exists
  • Live ChainProvider (replaces MockChain) — not started
  • Live TRES (replaces MockTres) — not started; payload builder exists

Engineering

Compliance

Product

GA — Q1 2027

Goal: open signup in primary jurisdiction with the licensing posture to invite volume.

  • MiCA CASP authorisation granted in primary jurisdiction — Class 2 (€125k own funds), passportable to all 27 EU states (15-Compliance#MiCA — CASP licensing)
  • AWS production edge hardening complete — CloudFront + AWS WAF + Shield + IAM Identity Center in front of API Gateway (09-Open Questions#AWS edge hardening)
  • Multi-region Postgres (primary + cross-region replica) on AWS, with documented failover runbook
  • Admin bulk export (CSV/JSON) of /admin/transactions
  • Refund / reverse affordances in admin (replaces manual SQL)
  • Notification preferences UI per user (delivery + SSE shipped; preferences did not)
  • Public fee schedule page (09-Open Questions#Fee schedule public commitment) — harder now that pricing is per-merchant rather than per-tier
  • Session revocation list — shipped early via users.session_version + auth_session_revocation_tokens
  • DAC8 first reporting cycle delivered — XML for calendar 2026 filed by the home tax authority's deadline (typically May 2027); cross-border exchange path verified end-to-end (15-Compliance#DAC8 / CARF)
  • Externally-validated security audit + penetration test

Scale — 2027+

Goal: growth surfaces once GA is steady-state.

  • Additional fiat rails (Modulr, Banking Circle, FPS, ACH)
  • Additional assets beyond MVP set
  • Mobile apps (iOS / Android)
  • Self-serve merchant onboarding (KYB-driven, no sales gate)
  • Public webhook simulator + signing-key rotation UX
  • SDK in JS / Python / Go for payouts API

Out of plan

Explicitly not on the roadmap — listed so we don't accidentally drift in:

  • Derivatives, perps, margin
  • Lending or staking yield products
  • In-app spot trading (we route to Mercuryo, we are not an exchange)
  • Custody for non-merchant retail wallets

If these come up, treat them as scope creep — write the trade-off down in 09-Open Questions before committing.

Cross-references