FEUM
Fund an account in Australian dollars, buy BTC, ETH, SOL, USDT or USDC with a fee you can see, hold it or move it to your own wallet.
My own venture, and the most demanding build of the three: money in motion, where a rounding error or a double-submitted order is a real loss. I built the brand kit, the marketing site, the member app and the owner's admin, the Command centre.
The rule the whole system is built around: deposits never trigger purchases. Every buy and every transfer needs explicit approval. The member app and back end run in paper mode with simulated funds only, and membership is by invitation.



Member app, paper mode: the quote holds for 60 seconds, the fee sits on its own line, and nothing moves until you approve it. Simulated balances.
What I built
- Member app: available, pending and reserved balances; fund; quote with a 60-second expiry; buy
- Wallet address book with asset and network validation
- Transfers with step-up approval; activity and order timelines
- Command centre: reconciliation of provider funds vs liabilities and crypto vs holdings, provider health, audit trail, CSV exports
- Owner controls, including fee change and pause - every admin action needs a reason plus step-up re-authentication
- Double-entry ledger with immutable postings and reversal-only corrections; money held in integer cents and base units
- Fee version snapshotted on every quote; provider-neutral payment and liquidity adapters
Checkable facts
- 92 automated tests against a real PostgreSQL 16 database
- 5 database migrations
- 3 end-to-end scenarios passing on desktop and mobile
Next.js · TypeScript · Postgres










