Getting Started

Setting Up as a Market Maker

Becoming a HyperDex market maker requires both an on-chain registration (so the smart contract recognises your signing key) and an off-chain registration (so the backend lets you into the WebSocket auction feed). The maker-sdk handles all the infrastructure — you only decide how to price.

Why do I need to register?

HyperDex is a permissioned maker pool. Only registered makers can submit bids. This design prevents spam bids and ensures every bid comes from an entity that has deposited real inventory into its own pool — guaranteeing they can actually settle if selected.

Step 1 — Apply on the dashboard

Open /maker, connect your maker wallet in Freighter, and submit the application form (name + contact). This creates a pending application the admin reviews.

Step 2 — Admin approval & API key

An admin approves your application at /admin and issues an sk_live_... API key. This key authenticates your Maker SDK WebSocket connection and is shown once — copy it.

Step 3 — Run the setup wizard

In maker-sdk/, run the wizard. It verifies your API key, generates an ed25519 signing keypair (a hot key, separate from your funds wallet), and saves everything to credentials/<yourname>.cred (file perms 600 — git-ignored, never commit it).

cd maker-sdk
npm install
npm run setup
# → enter your sk_live_... API key
# → prints your SIGNER PUBLIC KEY (64 hex) — copy it
# → saved: credentials/<yourname>.cred

Step 4 — On-chain registration via the frontend

Back on /maker, paste the signer public key from Step 3 and click Register On-Chain. Freighter signs one transaction that calls pool_registry.register_maker() and the factory deploys your personal maker_pool. Then deposit USDC/EURC inventory from the Inventory tab.

Step 5 — Run the Maker SDK

# Built-in ghost-price engine (prompts you for a ghost price on start)
npm run dev <yourname>

# ...or run your own pricing engine — NOTE the `--` separator (npm strips a bare flag)
npm run dev <yourname> -- --engine=./examples/binance-engine.ts

# Skip the prompt in CI:
GHOST_PRICE=0.8788 npm run dev <yourname>
# → LIVE banner (Maker / Address / Pool / Backend / Engine), then [WS] Connected
Pluggable pricing: The SDK does the WebSocket, auth, ed25519 signing, inventory reads and trade confirmations. Pricing lives in a MakerEngine: use the built-in ghost-price engine or ship your own. See Pricing Engines in the sidebar.

The built-in ghost-price engine

With no --engine flag, the SDK runs the default engine. You set one ghost price — the EURC you offer per 1 USDC — and it auto-bids that rate, fee-adjusted, on every RFQ. It is gated by an inventory check (never quotes more than ~80% of your pool balance) and a drift guard that warns when your ghost price is >1% from the live oracle mid and pauses quoting at >3% so you don't get arbitraged. Press Ctrl+R to re-price, Ctrl+C to disconnect.

HyperDex | Trade Without Limits