Everything below signs from this address. The owner keys on PriceEngine and Ballast are the deployer, so use that wallet or the admin calls will revert.
Address—
Chain—
Gas balance (USDC)—
02
Test collateral
Chips stands in for USDC because the Arc faucet gives one dollar a day, which cannot seed a pool deep enough for any number on this desk to mean anything. Six decimals, open mint, worthless on purpose. Each faucet call mints 100,000.
Your balance—
Approved to Ballast—
03
Seed the vault
Seeding mints locked shares to a burn address, which puts a permanent floor under total supply. Until it runs, every deposit reverts — an unseeded vault is exactly the state the first-depositor attack needs. This can only happen once, and only the owner can do it.
Vault state—
Share decimals—
Locked shares—
Amount in whole Chips. Runs the approval and the seed as two signatures.
04
Pool depth
This is the money that takes the other side of every trade. Traders who win are paid from here; traders who lose pay into here. Deeper means the desk can carry larger positions before it runs out of room to honour them.
Total assets—
Idle (withdrawable)—
Reserved against positions—
Your shares—
Assets per share—
Liability feed—
Your position is worth—
Withdrawable right now—
Withdrawals are capped by idle capital, not by what your shares are worth.
Money reserved against open positions belongs to those positions until they close — a winning
trader has to be payable from something, and that something cannot also have been withdrawn.
05
Price engine
The desk prices everything from here. A price older than the staleness window stops being a price and trading halts — a dead feeder shuts the desk rather than settling anyone against a stale print. US30 also closes outside its session, which is why it reads shut on a weekend.
Markets listed—
Rejected pushes—
Whole dollars. Blank fields are skipped. A move beyond the deviation limit is rejected on purpose — that breaker is what stops a typo from liquidating the book.
Price history
Drawn from the engine's own PricePushed events, not an exchange feed — this is the price your positions actually settle against. Gaps mean the feeder skipped a push, and a flat run means it was rejected or down. Both are worth noticing.
06
Order ticket
Size is the notional you control; margin is what you post against it. Leverage is size divided by margin and the engine caps it per market. Profit is capped at half your size and reserved in the pool the moment you open — a runner past that cap stops earning, which is the price of the pool being able to honour it at all.
Leverage—
Entry (live)—
Open fee—
Reserved from pool—
Est. liquidation—
07
Open positions
Equity is margin plus profit, less funding and the close fee. When it falls to the maintenance level anyone can liquidate you and the remainder goes to the pool. Closing needs a live price, so a halted market traps a position until it reopens — margin can still be added to defend it.
—nothing open
Desk exposure
Skew is longs minus shorts. The pool is counterparty to everyone, so when longs outweigh shorts the pool is net short and collects funding from longs directly. Pool PnL is what the desk currently owes traders — it comes straight off the vault's net asset value.
Admin
Owner-only calls. These revert from any other wallet. Authorising a pusher is what lets the feeder publish prices — nothing trades until that is done and the feeder is running.
You are owner—
Force push skips the deviation breaker. For weekend reopens and nothing else.
Funding at full skew—
Funding is what pushes back when the whole desk piles onto one
side and the pool has to take the other. At a factor of 100 it comes to 0.24% a day, which a trader who is
right by 5% does not notice — so nothing discourages the skew. A factor of 10000 gives 1%/hr at full
skew, which is a real carrying cost. The existing maxFundingBps of 100 caps it there exactly.