Skip to content

Accounts

The account model is small and carries a lot of weight: two axes, capabilities derived from the pair, and one function that everything else asks instead of guessing.

An account is a kind and a venue, and what it can do is derived from the pair rather than stored anywhere.

Kind Venue What it means
Journal none Exchange-agnostic recordkeeping. Places no orders; fills go in by hand from whichever broker you actually used. Prices are asked for per instrument rather than streamed.
Desk Hyperliquid, Lighter Trades a venue for real, with credentials you supply.
Desk Paper Simulated fills against live prices. Everything else behaves as a desk.

There was, and removing it is the clearest statement of what a kind is. An account exists to answer where its record of what was traded comes from, and there are exactly two answers: a venue reports it, or a person does.

Reading chains, tokens and social sources is a tool set, which either kind can switch on and which a desk has as much use for as anything. Making it a kind meant an account could only have those tools by being unable to trade — a research account was a journal that had given something up for nothing.

Capabilities are asked for, never inferred

Section titled “Capabilities are asked for, never inferred”

One function answers what an account can do, and a venue may only narrow what a kind permits, never grant. Everything downstream asks it rather than testing the kind: which tabs the composer offers, whether the manual-entry form appears, what a market allowlist even lists — a venue’s instruments for a desk, a set of data-source universes for a journal — and what the loading screen waits for.

That last one is the clearest illustration of why this is one function rather than a condition repeated in twelve places. The agent view once waited for venue state and a risk config on every account. A journal produces neither, so it waited forever.

Caps, the loss decay and the drawdown lockout all belong to one account, not to you — so a small experimental desk and a serious one can coexist without the first setting the limits of the second. The mechanics are in the risk model.

A journal has no risk config at all, because it has no venue to place a position at. Anything that assumed every account had one is the bug class described above.