Tools: Perps
Market data, positions, and perpetual futures trading on Hyperliquid and Jupiter Perps.
Perps tools support two providers: Hyperliquid (EVM address, mainnet and testnet) and Jupiter Perps (Solana address, mainnet only). Provider defaults to Hyperliquid when omitted. Write tools require policy approval.
get_market_data
Returns market metadata for the selected provider. Can return all markets or a single market.
Parameters
Prop
Type
Response
{
"provider": "hyperliquid",
"markets": [
{
"coin": "BTC",
"mark_px": "64250.00",
"funding_rate": "0.0001",
"open_interest": "150000000"
}
]
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid"
}{
"provider": "hyperliquid",
"market": "BTC"
}Notes
- If the Hyperliquid API is temporarily unavailable, Seashail may return a cached snapshot.
get_positions
Returns open position state for the selected provider and wallet.
Parameters
Prop
Type
Per-Venue Behavior
- Uses wallet's EVM address - If the selected wallet/account has no EVM address, the call fails - Works on mainnet and testnet
- Uses wallet's Solana address - Mainnet only (network mode must be mainnet)
Response
{
"provider": "hyperliquid",
"positions": [
{
"market": "BTC",
"side": "long",
"size": "0.5",
"entry_px": "63000.00",
"mark_px": "64250.00",
"unrealized_pnl": "625.00",
"leverage": 3
}
]
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0
}{
"provider": "jupiter_perps",
"wallet": "my-wallet",
"account_index": 0
}open_perp_position
Opens a perpetual futures position. Requires policy approval.
Parameters
Prop
Type
Per-Venue Behavior
- Supports market and limit orders - Supports size_units: "usd" or "asset" - Uses wallet's EVM address - Works on mainnet and testnet
- Supports market orders only - Supports size_units: "usd" only - Uses wallet's Solana address - Mainnet only (network mode must be mainnet)
Response
{
"provider": "hyperliquid",
"market": "BTC",
"side": "long",
"size": "100",
"size_units": "usd",
"leverage": 3,
"order_type": "market",
"signature": "0x...",
"status": "confirmed"
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"market": "BTC",
"side": "long",
"size": "100",
"size_units": "usd",
"leverage": 3,
"order_type": "market",
"slippage_bps": 50
}{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"market": "ETH",
"side": "short",
"size": "50",
"size_units": "usd",
"leverage": 2,
"order_type": "limit",
"limit_px": "2500"
}{
"provider": "jupiter_perps",
"wallet": "my-wallet",
"account_index": 0,
"market": "SOL",
"side": "long",
"size": "50",
"size_units": "usd",
"leverage": 5,
"order_type": "market",
"slippage_bps": 50
}Notes
- Requires policy approval — transactions may be auto-approved, require confirmation, or be blocked depending on your policy configuration and USD value.
- Jupiter Perps currently supports market orders only and size_units="usd" only.
close_perp_position
Closes a perpetual futures position. Requires policy approval.
Parameters
Prop
Type
Per-Venue Behavior
- Supports partial close (provide
size) or full close (omitsize) - Supports size_units: "usd" or "asset" - Uses wallet's EVM address
- Supports full close only (omit
size) - Ifsideis omitted, Seashail infers from open position - Uses wallet's Solana address - Mainnet only
Response
{
"provider": "hyperliquid",
"market": "BTC",
"side": "long",
"signature": "0x...",
"status": "confirmed"
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"market": "BTC",
"slippage_bps": 50
}{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"market": "ETH",
"size": "0.5",
"size_units": "asset",
"slippage_bps": 50
}{
"provider": "jupiter_perps",
"wallet": "my-wallet",
"account_index": 0,
"market": "SOL",
"slippage_bps": 50
}Notes
- Requires policy approval.
- Jupiter Perps currently supports closing the entire position only (omit
size). - If
sideis omitted for Jupiter Perps, Seashail will infer whether the open position is long or short (or error if ambiguous).
place_limit_order
Places a limit order on a perp venue (Hyperliquid only). Requires policy approval.
Parameters
Prop
Type
Response
{
"provider": "hyperliquid",
"market": "BTC",
"side": "short",
"size": "50",
"size_units": "usd",
"leverage": 2,
"limit_px": "50000",
"order_id": 123456,
"status": "placed"
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"market": "BTC",
"side": "short",
"size": "50",
"size_units": "usd",
"leverage": 2,
"limit_px": "50000"
}Notes
- This tool is only available on Hyperliquid.
- Requires policy approval.
modify_perp_order
Modifies an existing order (implemented as cancel + new order). Hyperliquid only. Requires policy approval.
Parameters
Prop
Type
Response
{
"provider": "hyperliquid",
"original_oid": 123456,
"new_order_id": 123457,
"market": "BTC",
"side": "short",
"size": "50",
"size_units": "usd",
"leverage": 2,
"limit_px": "51000",
"status": "modified"
}Response shape is representative; actual fields may vary.
Examples
{
"provider": "hyperliquid",
"wallet": "my-wallet",
"account_index": 0,
"oid": 123456,
"market": "BTC",
"side": "short",
"size": "50",
"size_units": "usd",
"leverage": 2,
"limit_px": "51000"
}Notes
- This tool is only available on Hyperliquid.
- The modification is implemented as a cancel of the original order followed by placement of a new order.
- Requires policy approval.