Skip to main content
Every position you confirm is backed by your maker vault. When you fill, the vault locks that position’s worst case: what you pay if every leg wins. Positions that cannot all win at once still lock in full until you run a collateral reduction. A reduction lowers your requirement to what your whole book can lose together. Two positions on the same tournament, only one of which can win: backed one by one they lock 13,000, reduced they lock 8,000 Two positions on the same tournament, only one of which can win: backed one by one they lock 13,000, reduced they lock 8,000 In the picture you back two positions on one tournament winner market. Only one team can win. Backed one by one they lock 13,000 USDC. After a reduction they lock 8,000, the larger of the two.

Your capital

Get maker capital reads the maker vault exactly as the contract sees it. All amounts are atomic USDC.
Re-read capital on every MAKER_CAPITAL_UPDATED on the maker channel.

How each step moves it

The profit fee comes out of the taker’s winnings, not your vault. The entry fee comes out of the taker’s stake before it reaches you. Rates are on Limits.

When collateral is checked

Creating a quote reserves nothing. Your capacity is checked when you confirm a fill, against free_collateral less every fill not yet on-chain. If several of your quotes are accepted at once, a later confirm can fail with QUOTE_CAPACITY_EXCEEDED. The contract checks again when the trade lands. Quote only what free_after_pending covers.

Reduce collateral

A reduction looks at every open position you back, finds the most your book can lose under any way the markets can resolve, and certifies the difference as your discount. You submit that certificate on-chain from a wallet that pays the gas. Totalis does not run reductions for you, and it does not pay their gas.
1

Start a job

Create collateral reduction. It takes no body. You get a job_id and next_eligible_at, the earliest time a new discount can land.
2

Wait for the certificate

Follow COLLATERAL_REDUCTION_UPDATED on the maker channel, or poll Get collateral reduction, until status is DURABLE. The job then holds a transaction: to, data, value and chain_id for one call to the vault.
3

Sign and submit it

Sign that call as an EIP-1559 transaction from any wallet that holds HYPE for gas. Send it to Submit self-funded transaction with the job’s operation_id and the same Idempotency-Key that created the job, before the job’s expiry. Totalis checks the transaction matches the job and broadcasts it. It never holds that wallet’s key or picks its nonce.
4

Collect the headroom

When the transaction lands, MAKER_CAPITAL_UPDATED follows. discount is higher, requirement lower, and free_collateral higher by the same amount. No funds move: the freed USDC stays in your maker vault, ready to back fills or be withdrawn.
  • One job runs per maker at a time. Creating another while one is open returns the open one.
  • A new discount only ever raises the old one. It never undoes a larger discount still in force.
  • New fills do not use the discount, and closing positions use it up. Run a reduction again after your book grows. The TypeScript SDK’s reduceCollateral runs all four steps.
  • COLLATERAL_REDUCTION_UNAVAILABLE means reductions are switched off for this vault right now. Retry later.

What nets

The reduction treats these positions as linked, and every other pair as independent: Treating two markets as independent can only overstate your worst case, never understate it. The certificate never lowers your requirement below what your book can actually lose.

Undo a discount

Your wallet can call resetDiscount on the vault at any time. It sets discount to zero, so every open position locks in full again. It can only raise your requirement, never lower it.

Move maker funds

Your wallet calls the vault directly and pays the gas in HYPE. Totalis does not relay these. The SDK’s maker.controller() builds each call for your wallet to send.