INVADERS

DEX aggregation

One trading screen and one account across many perpetual-futures exchanges.

The app trades on more than one perpetual-futures exchange, but you use the same trading screen for all of them. That is the whole point of the aggregation layer: every exchange behaves the same way once you are on it, so switching venues never means relearning the app.

What it means for you

You pick a venue once. The order ticket, the charts, the orderbook, the positions table, all of it works the same way regardless of which venue is live. When you switch venues, the app cleanly tears down the old connection and brings up the new one, so you never see stale data leak from one exchange into another.

Today there are two venues. One is a synthetic mock-venue used for development and demos, which behaves like a real exchange without touching real money. The other is Hyperliquid, the first live integration. Adding the next real exchange does not mean rewriting the trading screen. It means writing one new module that implements the same port.

One app, many venues

Each exchange is integrated once, behind the scenes, and from then on it looks and behaves like every other venue in the app. The trading screen does not change when you switch exchanges, and neither does your account.

The practical payoff is for you, not just for us: adding the next exchange does not mean rewriting the app or asking you to relearn anything. A new venue shows up in the venue picker, and everything you already know how to do still works.

Not every venue does everything

Real exchanges do not all offer the same features. One might support TWAP orders, another might not. One might report a vault balance, another might not. Rather than pretend, the app shows you the honest truth: a feature an exchange genuinely supports is available, and one it does not is clearly marked "not supported here" instead of faked.

So what you see on the screen always matches what the live venue can actually do. Nothing is mocked up to look richer than it is.

A funded account never shows as empty

Exchanges store the same information in different shapes, and some of those shapes are traps. Hyperliquid, for example, has account modes: depending on yours, the obvious "perp balance" field can read close to zero even when your account is fully funded.

A careless integration would read that field, see roughly nothing, and show your funded account as empty — a real, money-relevant mistake. The app handles each exchange's quirks inside that exchange's own integration, so the account value you see is always the correct one. The exchange's internal oddities never reach the screen.

Switching venues cleanly

When you change venue, the app cleanly tears down the old connection and brings up the new one from scratch. Nothing from the previous exchange lingers, so you never see stale prices, balances, or positions leak from one venue into another. The switch is clean by construction, not by careful cleanup.