Bull FX: Vantage-Style MT5 Broker Website with Client and IB Portals
A complete broker front office: registration, KYC, crypto funding, demo and live accounts, IB commissions, admin, and a web trader.
Next.js 15 and Prisma with adapter-based MT5, market-data, payments and email integrations (mock, REST and Skynet providers selected by env), money kept in cents behind optimistic locks, a full E2E loop verified through the real UI, and a Vantage-style web terminal.

- Adapter architecture: mock / REST / Skynet providers switched by env
- Money in cents with optimistic locks and idempotent commission sync
- Full client + admin + IB loop verified through the real UI
- Web trader with pending orders, SL/TP and stop-out in the mock provider
A broker commissioned a site like Vantage's: public pages, account opening, verification tiers, deposits and withdrawals, demo and real MT5 accounts, an introducing-broker programme and an admin back office, MT5 only. The reference IA was recorded from the real Vantage client and IB portals before design, so the flows match what traders already know.
Everything that depends on the broker's own systems sits behind documented adapters: MT5, market data, payments and email each have a mock and a REST or gateway skeleton selected by environment, so the whole site demos offline and the broker's team only implements an HTTP contract. Money lives only in service modules: cents, optimistic locks, MT5 debit at withdrawal request with refund on rejection, and idempotent IB commission sync keyed by deal ticket. Funding is crypto only (USDT, USDC, BTC, ETH).
The full loop was verified through the real UI with the mock MT5 provider: referral registration, verification, live account, deposit, KYC upload, admin approval, withdrawal, transfer, IB application and approval, simulated trades, commission sync, payout and mark-paid. An admin agent added force-credits, TXID records, per-account trade detail and an MT5 failure log; a Skynet provider connects to the hosted Skynet server for balances. A later web trader at /trade mirrors Vantage's terminal with a trading contract that the mock implements fully, including lazy stop-loss, take-profit, pending orders and stop-out.
How it works
- Visitor registers via a referral code and verifies email
- Client opens demo or live MT5 accounts and submits KYC
- Crypto deposit recorded; admin reviews and approves
- Trades sync from the MT5 provider; IB commissions computed per deal ticket
- Withdrawals debit MT5 at request and refund on rejection
- Admin and IB dashboards report balances, payouts and failures