Seashail

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 (omit size) - Supports size_units: "usd" or "asset" - Uses wallet's EVM address
  • Supports full close only (omit size) - If side is 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 side is 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


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.

On this page