Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Liberfi Perpetuals

v1.1.0

Query and trade perpetual futures through LiberFi's unified perpetuals API (openapi-server → perpetuals-server, Hyperliquid in MVP): list coins and markets,...

0· 74· 2 versions· 1 current· 1 all-time· Updated 9h ago· MIT-0

LiberFi Perpetuals

Perpetuals data and signed order relay flow via LiberFi OpenAPI (/v1/perpetuals/…perpetuals-server).

Pre-flight

See bootstrap.md for CLI install and lfi ping.

  • Read endpoints (coins, markets, orderbook, …): no auth.
  • User-scoped reads (positions, orders, fills): pass the wallet address in the CLI argument (0x).
  • Order writes (order-prepare / order-submit, cancel variants): require a user wallet to sign typed data; agents must not fabricate signatures.
  • Deposit (recommended deposit-place): requires authentication (lfi status then lfi login key) — the server's TEE wallet signs and broadcasts on the user's behalf. The atomic deposit-quote / deposit-submit escape hatches do not require auth but the caller is then responsible for signing the SOL tx and broadcasting it themselves.

Skill routing

User intentSkill
Spot swap, bridge, gas sendliberfi-swap
Trending spot tokens, new listingsliberfi-market
Polymarket / Kalshiliberfi-predict
Spot token audit, DEX pools for a tokenliberfi-token
Perp markets, HL-style orderbook, perp positionsliberfi-perpetuals
Funding the perp account (Solana → Hyperliquid via Relay), checking deposit lifecycleliberfi-perpetuals
Spot wallet holdings on a chain (not perp account)liberfi-portfolio

CLI index

CommandDescription
lfi perpetuals coinsList tradable perp coins
lfi perpetuals marketsMarket snapshots (--symbols optional)
lfi perpetuals market <symbol>Single market
lfi perpetuals orderbook <symbol>L2 book (--max-level)
lfi perpetuals trades <symbol>Recent trades (--limit)
lfi perpetuals klines <symbol>Candles (--interval required)
lfi perpetuals positions <address>Positions + margin summary
lfi perpetuals orders <address>Open orders
lfi perpetuals fills <address>Fill history
lfi perpetuals order-prepareBuild typed data for place order
lfi perpetuals order-submit --body '<json>'Submit signed place order
lfi perpetuals cancel-prepareBuild typed data for cancel
lfi perpetuals cancel-submit --body '<json>'Submit signed cancel
lfi perpetuals deposit-place --gross-lamports <n>Recommended: TEE one-click Solana → Hyperliquid deposit (server quotes, signs, broadcasts, submits). Auth required.
lfi perpetuals deposit-quote --user-solana-address <a> --hyperliquid-recipient <a> --gross-lamports <n>Escape hatch step 1: returns unsigned SOL tx + breakdown. Caller signs + broadcasts within ~30s, then calls deposit-submit.
lfi perpetuals deposit-submit --body '<json>'Escape hatch step 2: record the broadcasted SOL tx hash. Idempotent on solanaTxHash.
lfi perpetuals deposit-status <intentId> [--refresh]Read deposit lifecycle. --refresh bypasses any server-side cache (server-reserved knob; today both endpoints behave identically).

Common flags: --provider <name> (e.g. hyperliquid), global --json.

Funding / Deposit (Solana → Hyperliquid via Relay)

The deposit pipeline moves SOL from the user's Solana wallet to the user's Hyperliquid perp account via the Relay bridge service. The recommended path is the one-click TEE auto-flow:

  1. Authenticate (only first time): lfi status --json; if not logged in, lfi login key --role AGENT --name "<agent>" --json.
  2. Confirm intent with the user (amount in SOL, recipient if non-default).
  3. Place: lfi perpetuals deposit-place --gross-lamports <lamports> --json
    • lamports = SOL × 1_000_000_000 (1 SOL = 1e9 lamports).
    • --hyperliquid-recipient is optional — defaults to the user's TEE EVM address (lfi whoami evmAddress), which is what 99% of users want.
  4. Capture the returned intentId and solanaTxHash.
  5. Poll: lfi perpetuals deposit-status <intentId> --json until status is settled (typical: 30–120 s).

Server returns status: "broadcasted" immediately after step 3; the reconciliation loop progresses through relay_waiting → relay_pending → settled (or failed_* states). On failure consult the statusHistory[] and lastError fields for the recoverable / non- recoverable distinction.

For the atomic escape-hatch flow (when the user controls their own SOL private key outside the TEE, or recovering from a partial failure where the SOL tx has been broadcasted but submit did not succeed), see reference/deposit-flow.md.

Typical flows

Market overview

  1. lfi perpetuals markets --json
  2. Present symbol, mark price, funding where present.

Depth + tape

  1. lfi perpetuals orderbook BTC --json
  2. lfi perpetuals trades BTC --limit 20 --json

Positions for a known wallet

  1. lfi perpetuals positions 0xYourAddr --json

Place order (human-in-the-loop)

  1. lfi perpetuals order-prepare --user-address 0x… --symbol BTC --side long --order-type limit --amount 0.01 --price 95000 --json
  2. User signs returned typedData with their wallet (e.g. MetaMask eth_signTypedData_v4).
  3. Build SignedAction: action, nonce, signature (0x), optional vaultAddress from prepare response.
  4. After explicit confirmation: lfi perpetuals order-submit --body '{"action":…,"nonce":…,"signature":"0x…"}' --json

API path reminder

All CLI calls hit OpenAPI paths under /v1/perpetuals/…, which the gateway proxies to perpetuals-server /v1/…. Configure the gateway with UPSTREAM_PERPETUALS_SERVICE_BASE_URL (default local example: http://localhost:8083 — avoid colliding with openapi :8080 and prediction :8082; run perpetuals-server with SERVER_PORT=8083 when colocated).

Version tags

latestvk97ekg83zkhemw7a3qktw0n7tx85q54a