HyperCore perpetuals
On HyperCore perps, Silhouette places the winning maker's order on Hyperliquid's order book and sends your order against it at the agreed price and size, so the trade prints on the book. Silhouette calls this matched execution. Silhouette holds nothing: your margin and your position stay on your own Hyperliquid account.
How it works
- You ask for a price on a size. Pick the market, buy or sell, the size, and a price limit for the full size: the most you will pay on a buy, or the least you will accept on a sell.
- Makers quote the full size.
- You accept one quote by signing an order at that quote's price and size.
- Silhouette places the maker's order on Hyperliquid's order book and sends yours against it.
- If the maker's order rests on the book, your order fills against it, and the result comes back to you. If it does not, Silhouette does not send your order, and there is no trade.
For the request and quote steps common to every RFQ, see How RFQs work.
Settlement
A request can settle in full, settle in part, or fail. Here is what you end up with.
| What happened | What you end up with |
|---|---|
| Your order fills in full, against the maker's order or a better-priced order ahead of it | The full size at the quoted price or better. You keep any improvement. |
| Only part of the size is available at your price or better | Only the part that filled. The request still shows as settled, so compare the filled size with the size you asked for. |
| Another trader takes the maker's order before yours arrives, and nothing else is at your price or better | No fill. The request shows as failed. |
| Hyperliquid refuses the maker's order, for example because the market moved through its price | No trade. Silhouette does not send your order. |
| Your margin is short, so Hyperliquid refuses your order | No fill. Add margin on Hyperliquid, then request again. |
| Silhouette cannot confirm the outcome | A position may exist. The request is final, and Silhouette does not update it later. |
| Your builder fee approval is below the rate | No trade. Silhouette sends nothing to Hyperliquid. Raise the approval, then request again. |
Silhouette sends your order once, exactly as you signed it. Once sent, it never fills at a worse price than the one you signed (before fees), never fills more than the size you accepted, and your order never rests on the book.
Fees come on top of that price. On a buy, your all-in cost can be higher than the price you signed, and on a sell, your proceeds can be lower. Your price limit bounds the price per unit, so a partial fill settles for a smaller total.
After any failed perps request, check your Hyperliquid position before trading that market again.
Integrators can find how to handle each failure in Failures.
Acceptance
Acceptance is manual only. You sign your order when you accept, so a quote cannot win automatically. If no maker quotes, or you accept none before the quote window closes, there is no trade.
Accept promptly: a maker's quote goes stale, and a late acceptance can fail. If a maker re-prices, accept the new quote. Once Silhouette starts placing the orders, you cannot cancel the request.
Setup
Before your first trade, set these up on your own Hyperliquid account.
- Fund your account. Your margin is USDC on Hyperliquid. Fund the account before the steps below.
- In the app, switch to Hyperliquid's unified account mode and approve a signing key. The app requires a unified account for perps.
- Approve Silhouette's builder fee. Approve it once in your Hyperliquid account, and again if the rate rises above your approval. The rate is on the Fees page. See Hyperliquid's builder codes.
The request carries no leverage or margin setting, so your order fills with the settings your Hyperliquid account already holds for that market. In the app, you set leverage and margin mode on the request ticket, and they apply to your Hyperliquid account.
Signing key
In the app, a signing key that your main wallet approves signs your orders, so accepting a quote brings no wallet prompt. Your main wallet signs only the setup steps: the unified account switch, the signing key, and the builder fee. Orders the signing key signs book to your main account.
If your signing key stops working, approve it again from your main wallet. To sign through the API, see HyperCore perps via the API.
Closing a position
To close or reduce a position, request the opposite side. Hyperliquid nets positions per market, and Silhouette does not cap a closing request at your open size, so a trade larger than your open position flips it. Check your open size on Hyperliquid, and keep your size at or below it to close without flipping.
The app sends an ordinary order, so this warning applies there. Through the API, you can sign a reduce-only order instead, which can only shrink your position. Hyperliquid checks it against your position when it executes, so it can fill part or none of the size. See Signing.
Checking a fill
The request reports how much filled and the average price, before fees. Silhouette returns no Hyperliquid order ID or transaction hash, because Hyperliquid holds the record of the fill and of your position.
In the app, your Hyperliquid trade history shows the fill. Integrators should see Verification.
Markets
RFQs cover selected Hyperliquid perpetual markets, listed in the app and returned by the instruments endpoint in the API Reference.
For makers
To quote HyperCore perps, see HyperCore perpetuals for makers.