██╗ ██╗ █████╗ █████╗ ██╗ ██╗███╗ ███╗███████╗ ███████╗██╗ ██╗ ██║ ██║██╔══██╗██╔════╝██║ ██╔╝████╗ ████║██╔════╝ ██╔════╝╚██╗██╔╝ ███████║███████║██║ █████╔╝ ██╔████╔██║█████╗ █████╗ ╚███╔╝ ██╔══██║██╔══██║██║ ██╔═██╗ ██║╚██╔╝██║██╔══╝ ██╔══╝ ██╔██╗ ██║ ██║██║ ██║╚██████╗██║ ██╗██║ ╚═╝ ██║███████╗ ███████╗██╔╝ ██╗ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚══════╝╚═╝ ╚═╝
PAPER ONLY — simulated balances in localStorage. Not a licensed exchange. Not financial advice. No real custody or public matching API.
🏠 Main HackMe · Live paper · STATUS · Docs · Economics · Security
HackMe’s pool and chain live in the main HackMe repository. This sidecar is the spot desk UI: charts, book, convert, paper wallet — so the network can show an own-market terminal without merging SPA code into the hub.
| Pillar | What you get |
|---|---|
| Spot | Chart · book · market / limit / stop / OCO · VIP fees · pay-fees-in-HMC |
| Convert | Instant swap at mid (paper) |
| Account | Balances · VIP · paper portfolio |
| Pool | Read-only oracle telemetry from hackme.tech |
Own HMC market desk — not a third-party CEX listing claim.
Live site: exchange.hackme.tech (static paper SPA).
| Mode | Meaning |
|---|---|
| paper (default) | localStorage wallet · shared reference mids — not real custody |
| lab | Optional loopback sibling API — contributor / private lab only |
| live | Blocked in this SPA until an explicit product go-live |
Never put admin tokens in VITE_* — Vite inlines them into the browser bundle.
| Pair / leg | Reference | Notes |
|---|---|---|
| HMC/USDT | 0.05 | Mild paper drift · not scaled by pool GH |
| SUP/USDT | 0.01 | Same |
| HMC/SUP | 5.0 | Cross = HMC ÷ SUP |
| HMC/BTC · SUP/BTC | usdt / btcUsd |
Shared paper pin |
Canonical sheet: docs/ECONOMICS.md.
cp .env.example .env # optional
npm install
npm test
npm run build
npm run dev # → http://127.0.0.1:5199Requires a checkout of the private sibling API next to this repo:
# Terminal A
cd ../hackme-exchange-api && go run ./cmd/exchange-api
# → http://127.0.0.1:18443/health
# Terminal B — .env: VITE_LAB_API=1 VITE_EXCHANGE_API_ORIGIN=http://127.0.0.1:18443
npm run devWiring: docs/LAB_API.md
| Gate | Command |
|---|---|
| Unit + security | npm test |
| UI smoke | npm run test:ui-smoke |
| Visual (G10) | npm run test:e2e (needs Vite on :5199) |
| Live paper smoke | npm run smoke:live |
| Paper static build | npm run d0:static → gitignored dist-d0/ |
Maintainer extras (test:e2e:full, audit:full, lab smokes): scripts/README.md.
| Doc | Purpose |
|---|---|
STATUS.md |
Product status · HOLD on matching/custody |
docs/README.md |
Docs index |
docs/SCOPE.md |
Boundaries vs HackMe hub |
docs/ECONOMICS.md |
Fees · VIP · reference mids |
docs/SECURITY.md |
SPA threat checklist |
docs/LAB_API.md |
Loopback API (contributors) |
CONTRIBUTING.md |
Setup · PRs · secrets |
| Project | Link |
|---|---|
| HackMe Network | github.com/jokeez/hackme |
| Paper site | exchange.hackme.tech |
| Hub / pool | hackme.tech |
Matching / custody API remains a private sibling until its own public gates pass.
GNU Affero General Public License v3.0 — same family as HackMe.
Paper tooling only. Not a licensed exchange · not production custody.
Copyright © 2026 HackMe contributors · AGPL-3.0