

How it works
1
Receive RFQs
Subscribe to the maker channel. The snapshot holds every open RFQ,
and
RFQ_CREATED adds each new one: its legs, stake and taker. The RFQ carries no price.
Price each leg from your own Hyperliquid market data.2
Quote
Create a quote with the
payout you will pay
if every leg wins. It is unsigned and reserves nothing. Quote again to replace it, or
cancel it.3
Confirm the fill
When a taker accepts, you get
QUOTE_ACCEPTED with the exact terms and a deadline seconds
away. Sign the terms and confirm, or decline.
Totalis puts the trade on-chain. A missed deadline fills nothing.4
Back the position
The taker’s net stake moves into your maker vault and the position’s worst case locks. Totalis
settles it when the markets resolve: you keep the stake, or pay the winnings.
Endpoints
Set up
At hip4.totalis.trade/mm:- Under Your wallet, add a little HYPE for gas and the USDC you will quote with.
- Choose Create maker account: one transaction from your wallet. Your
maker_idis assigned then. A wallet opens one maker. - Choose Fund vault to move USDC into the maker vault.
- Create a key for the maker with the maker scopes.
- Run your bot with that key, your
maker_idand your wallet key.
Quote
Quoting rules
- Price the net stake. The taker fee comes off
stakebefore it reaches you, so you riskpayout - net stake. - Your newest quote on an RFQ replaces your last one. The taker sees
QUOTE_REMOVEDfor the old one. - A quote leaves the RFQ at its
expiry, and the RFQ closes atexpires_at. Neither sends an event. The windows, and how close toexpirya quote stops being shown, are on Limits. - A quote reserves no collateral. Capacity is checked when you confirm, so quote only what
free_after_pendingcovers (When collateral is checked). - A
409withRFQ_NOT_OPENorRFQ_GENERATION_STALEmeans the RFQ moved on. Drop it, or re-read it and quote again.
Cancel a quote
CANCELLED or REPLACED means it is off the RFQ. 409 with ACCEPTED means a taker already
accepted it: answer the acceptance.
Confirm
QUOTE_ACCEPTED carries the exact terms, named by kind. Check them against what you quoted, then
sign them (entry as Quote, sell_back as SellBack, transfer as CashoutTransfer) and answer
with no Idempotency-Key:
{ "decision": "DECLINE" }needs no signature. Decline when your price or your capital moved.- The confirm deadline is on Limits. It is short, so sign on a hot path: keep the deployment and your signer loaded, and answer before any slow work.
- A lost response: resend the same answer. Until you know the outcome, treat the quote as filled.
QUOTE_CAPACITY_EXCEEDEDmeans your capital cannot cover this fill now. Nothing filled.
After a restart
Subscribe from your saved cursor. The maker snapshot’sacceptances holds every acceptance still
waiting for you, earliest deadline first, and
List acceptances pages the rest. Answer each
one before its deadline. Keep the quote_ids you created in durable storage, so a restarted bot
confirms only terms it published.
Profit and loss
Read the positions you back with List positions
and your maker key.
settlement_kind and each leg’s result are on
Trading.
Collateral
Each fill locks the position’s worst case in your maker vault:payout - net stake. Positions that
cannot all win together can share that collateral once you run a collateral reduction.
Maker collateral has every capital field, how each step moves it, and how
to reduce it.
Cash-outs
A taker can sell an open position before it settles. Totalis opens a cash-out RFQ to every maker:RFQ_CREATED with kind: CASHOUT, the position_id, its owner and the backing maker_id.
Price the position at the RFQ’s
decision_block and sign its leg_state unchanged. Keep your own
vault balance at zero to sell back only. A cash-out quote’s expiry window is on
Limits.
Your identity
To keep your wallet key off the bot, set a
signer that holds no funds with setQuoteSigner. The
zero address stops all fills at once. See Move maker funds.
Maker collateral
Capital, how fills move it, and collateral reduction.
Real time
Hold the maker channel and resume it without missing a fill.
TypeScript SDK
createMaker: quote, confirm and reduce collateral in a few lines.Errors
Every code, and which to retry.

