propose_hyperliquid_perp_open
Propose opening a Hyperliquid perp position. Runs FortFi perp policy (max leverage, max notional) and rejects non-hyperliquid-mainnet wallets. Optional marginMode picks cross or isolated margin. Returns a proposalId for confirm_proposal.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"walletId": "<walletId>",
"symbol": "<symbol>",
"side": "<side>"
},
"name": "propose_hyperliquid_perp_open"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| size | No | Coin-unit size (string). Use sizeUsd instead for USD notional. | |
| symbol | Yes | e.g. BTC, ETH, xyz:TSLA, xyz:GOLD | |
| sizeUsd | No | USD notional target (min $10 on HL). Preferred for agents. | |
| leverage | No | ||
| stopLoss | No | Optional stop-loss trigger. With limitPrice it attaches to the order (normalTpsl) and arms once it fills, validated against the limit price. | |
| walletId | Yes | ||
| limitPrice | No | Optional resting limit price (GTC). Must be within 5% of mid when it crosses the book. Omit for a market order. | |
| marginMode | No | Optional. cross shares the wallet's margin across positions; isolated caps the loss at the margin put into this position. Omit for cross (isolated on isolated-only markets). An already-open position keeps its mode, so a mismatch is rejected. | |
| takeProfit | No | Optional take-profit trigger. With limitPrice it attaches to the order (normalTpsl) and arms once it fills, validated against the limit price. | |
| timeInForce | No | Limit orders only. Gtc (default), Alo (post only, rejected if it would cross), Ioc. | |
| closeAfterHours | No | Optional time stop: FortFi closes the whole position this many hours from now (checked every 5 minutes). Refused on accounts a strategy runs. | |
| trailingStopPct | No | Optional. FortFi keeps a stop this % behind the best price since the fill and only ever moves it toward the price (checked every 5 minutes). Needs the set_hyperliquid_managed_exit operation. Same as calling set_hyperliquid_managed_exit after the fill. | |
| trailStartProfitPct | No | Optional, with trailingStopPct. Trailing starts only once the price is this % past your entry price (price move, not leverage-adjusted). Until then your normal stop stays put. | |
| breakEvenAtProfitPct | No | Optional. Once the price is this % past your entry price, FortFi moves the stop to the entry price. | |
| acknowledgePriceImpact | No | Set true only after a HYPERLIQUID_PRICE_IMPACT_CONFIRM_REQUIRED error, to accept >=1% book impact on a market order. Prefer limitPrice or a smaller size. |