A self-hosted & themeable DeepBook trading workstation.
- Surflux market data integration:
GET /poolsGET /poolGET /pool-depthGET /recent-tradesGET /ohlcv
- SufFlux stream architecture in surflux package:
- one
PoolStreamper pool - shared/multiplexed subscribers
- reconnect backoff
- idle teardown
- per-pool status reporting
- one
- DeepBook v3 transaction signing/execution for:
- limit orders
- market orders
- limit order cancellation
- auto-creating and funding a BalanceManager inline when needed (single PTB)
- Theme + font settings (neutral-first, fully themeable; includes Geist Pixel options)
bun install
cp packages/surflux/.env.example packages/surflux/.env
cp .env.example .env
bun run dev:surflux
# in another terminal:
bun run devSurflux runs as its own local service in packages/surflux and the frontend calls it.
SURFLUX_SERVICE_BASE_URL=http://localhost:8787Optional frontend URL overrides:
SURFLUX_REST_BASE_URL=http://localhost:8787/api/surflux/deepbook
SURFLUX_STREAM_BASE_URL=http://localhost:8787/api/surfluxSURFLUX_SERVICE_PORT=8787
SURFLUX_SERVICE_ALLOWED_ORIGIN=*
SURFLUX_REST_BASE_URL=https://api.surflux.dev
SURFLUX_STREAM_BASE_URL=https://flux.surflux.dev
SURFLUX_REST_API_KEY=...
SURFLUX_STREAM_API_KEY_DEFAULT=...
SURFLUX_STREAM_API_KEY__SUI_USDC=...
SURFLUX_STREAM_API_KEY__SUI_DBUSDC=...Optional local overrides:
- create
packages/surflux/.env.local - values in
.env.localoverride.envforbun run dev:surfluxandbun run start
Per-pool stream key format:
- prefix:
SURFLUX_STREAM_API_KEY__ - suffix: pool name in uppercase, e.g.
SUI_USDC