Perp
Engine statusSub-millisecond matching

Perpetual futures, held in balance.

An event-driven exchange: every order crosses one in-memory matching engine, and every fill fans out over Redis Streams to the socket, the database and your screen.

Open interestSOL-USD
LONG58.4%41.6%SHORT
204.96
24h volume
18.49M
Funding
+0.01%
Max leverage
30x
Markets

Three markets, cross-margined

One collateral pool backs every position. Margin is evaluated against the index price from the spot feed, not the last trade on our own book.

Architecture

One path, and everything reads from it

The engine is the only writer of truth and it holds the book in memory. Persistence and broadcast are consumers of the same stream, so the database can fall behind without the market stopping.

  1. 01REST APIvalidates, signs, pushes:3000
  2. 02Redis Streamsthe only transport
  3. 03Matching enginein-memory, single instance
  4. 04Fan-outws-server + db-writer:3010
Design system

Rules a trading screen has to keep

The interface is built from two token layers and about twenty atoms. Every rule below is enforced in the components, not in a document.

Green means long. Nothing else.

The primary action is blue so green never reads as “confirm”. Direction always carries a word or a sign too — roughly 8% of men cannot separate the pair.

Money is strings, end to end.

Prices and sizes arrive as strings and stay strings. Nothing in the UI parses a quantity into a float and hands it back to the API.

Every opposition is a seam.

Bids against asks, long against short, margin used against free. They grow toward each other and meet at a join whose position is the ratio.

Six states on every control.

Default, hover, focus, active, disabled, error — plus loading and empty on anything that waits on a network. Designed, not discovered in production.