Your only job is to produce one trade decision for a user on PaperTrade, a perp exchange on HyperEVM that executes and liquidates at the Hyperliquid BTC mid price ((best bid + best ask) / 2). The goal is to make the user money on this trade and the highest gains you can.

Trade constraints (fixed, do not change them)

  • Instrument: BTC-USD perpetual.
  • Direction: you must choose exactly one of "long" or "short".
  • Leverage: you must choose an integer between 750 and 1000 inclusive.
  • The position is closed at take-profit or by liquidation. Ideally the trade plays out within 30 minutes or less.
  • There is no stop-loss other than liquidation. Treat liquidation as the stop.
  • Take profit is expressed as the move in the BTC PRICE in your favor, in basis points (1 bp = 0.01%), not the return on margin.
  • Don't just pick smallest leverage or short take-profit because it is safest. optimize for big gains as well.

PaperTrade execution mechanics (read carefully, they drive target sizing)

Entry and exit both fill at the Hyperliquid BBO mid. There is no spread, no slippage, no funding, and no fee on notional.

Liquidation ("bust"). The position is hard-liquidated when the mid crosses the bust price, and the full isolated margin is forfeited. The bust trigger is about 4.8 bp CLOSER to entry

than the zero-equity distance (10000 / leverage bp), so:

  bust distance (bp) ≈ 10000 / leverage − 4.8

  1000x →  5.2 bp

   900x →  6.3 bp

   800x →  7.7 bp

   700x →  9.5 bp

   600x → 11.9 bp

   500x → 15.2 bp

Asymmetric impact haircut on wins. Losses are never charged anything extra. Winning closes go through three steps: (1) a 0.2 bp deadband is subtracted from the move, (2) the raw gain

is multiplied by a scale factor that is small for tiny moves and approaches 0.90 for big moves, (3) a 2% win fee is taken. Formula with BTC's current parameters:

  scale = 0.90 / (1 + 1/(move × 15000) + 100000/(1e6 × move × 814.598))

  move  = |exit − entry| / entry, after the 0.2 bp deadband

The haircut depends only on move size, not position size. Net share of the raw gain the trader keeps, and the resulting return on margin:

  move    keep   return on margin @500x   @1000x

   3 bp   49%        7%                   15%

   5 bp   61%       15%                   30%

   8 bp   69%       28%                   55%

  10 bp   72%       36%                   72%

  15 bp   77%       58%                  116%

  20 bp   80%       80%                  159%

  30 bp   82%      124%                  247%

  50 bp   85%      212%                  423%

Implication: very small take-profits are heavily taxed, so the target needs to be large enough to clear the haircut while still being reachable before an adverse move of the bust

distance becomes likely. Higher leverage multiplies gains but shrinks the survivable adverse move. Weigh these together.

How to decide

The decision is entirely yours. Pull the market data described below, and if you can look up anything else that helps (current news, scheduled macro events, liquidation heatmaps, other

exchanges' order flow, anything you consider useful), do so and factor it in. Be decisive: you must return a direction. Express doubt through the confidence field and through your

choice of leverage and target, not by refusing.

Fetching the market data

Hyperliquid has a free public API with no authentication. Every request is an HTTP POST to:

  https://api.hyperliquid.xyz/info

with header Content-Type: application/json and a JSON body. Timestamps are Unix milliseconds. Fetch at least the following. Use the current time for endTime and work backwards for

startTime.

  1. Candles (fetch all three intervals): {"type":"candleSnapshot","req":{"coin":"BTC","interval":"1m","startTime":<now - 60 min>,"endTime":}}

    {"type":"candleSnapshot","req":{"coin":"BTC","interval":"5m","startTime":<now - 6 h>,"endTime":}}

    {"type":"candleSnapshot","req":{"coin":"BTC","interval":"15m","startTime":<now - 24 h>,"endTime":}}

    Response is an array of candle objects: t = open time ms, T = close time ms, o/h/l/c = open/high/low/close as strings, v = volume in BTC, n = number of trades. Oldest first.

  2. Current market context: {"type":"metaAndAssetCtxs"}

    Response is [meta, ctxs]. Find the index of the entry with name "BTC" in meta.universe, then read ctxs[thatIndex]. Useful fields: markPx, oraclePx, premium, funding (hourly rate,

positive means longs pay shorts), openInterest (in BTC), dayNtlVlm (24h notional volume USD), prevDayPx.

  1. Order book: {"type":"l2Book","coin":"BTC","nSigFigs":5}

    Response has levels[0] = bids and levels[1] = asks, each an array of {px, sz, n}, best price first. Best bid is levels[0][0].px, best ask is levels[1][0].px. mid = (best bid + best

ask) / 2. This mid is exactly the price PaperTrade will fill and liquidate at.

Other useful queries if you want them: {"type":"fundingHistory","coin":"BTC","startTime":} for recent funding, {"type":"recentTrades","coin":"BTC"} for the latest prints. Rate

limit is generous (1200 weight per minute); these calls are weight 2 to 20 each.

Metrics

Look up any additional data and calculate any metric that could help your decision. Work in basis points of price so results compare directly with the bust distance and

take-profit. Some that are likely useful:

  • How often recent 1m windows moved against a position by more than the bust distance before moving the take-profit distance in its favor
  • Per-candle adverse excursion (high − open, open − low) on 1m and 5m vs. the bust distance
  • Realized volatility per minute over the last 15/30/60 minutes and whether it is expanding or contracting
  • Distance from session VWAP and from 1m/5m EMAs
  • Rate of change and EMA slope on 1m and 5m; agreement across 1m/5m/15m
  • Cumulative volume delta and average trade size from recentTrades
  • Book imbalance within 10 bp of mid; resting liquidity between entry and take-profit or bust
  • markPx vs. oraclePx premium and current funding
  • Open interest change vs. price change
  • Position within the 24h range; distance to prior-day high/low/close and recent swing points
  • Time of day (US open, funding settlement) and scheduled macro releases in the next hour

Output

Return ONLY a single JSON object, no markdown fences, no commentary before or after. Use exactly these keys and types:

For IMD file-output jobs, write this JSON to artifacts/report.md (output "report"), not just the final chat reply.

{

"direction": "long" | "short",

"leverage": <integer 750-1000>,

"take_profit_bp": <number, favorable price move in basis points, e.g. 14 means 0.14%>,

"take_profit_price": <number, the BTC price at which to close, consistent with direction and take_profit_bp from entry_mid>,

"bust_distance_bp": <number, 10000/leverage - 4.8>,

"bust_price_estimate": <number, entry_mid moved bust_distance_bp against the position>,

"expected_net_return_on_margin_pct": <number, after haircut and win fee, if take profit hits>,

"confidence": <number 0.0-1.0>,

"regime": "trending_up" | "trending_down" | "ranging" | "volatile_choppy",

"key_levels": { "support": <number>, "resistance": <number> },

"entry_mid": <number, the live mid price you based the trade on>,

"data_time_utc": "<ISO 8601 timestamp of when you fetched the data>",

"reasoning": "<2-4 sentences, plain text, the main evidence for the direction and why this leverage and target fit current volatility, the bust distance, and the haircut>",

"risks": "<1-2 sentences, what would most likely cause liquidation>"

}

Use JSON numbers. entry_mid = (bid+ask)/2 from live l2Book; take_profit_price = entry_mid × (1 ± take_profit_bp/10000), + for long and − for short.

Published · Report

Direction
long
Leverage
750
Take profit bp
15
Take profit price
81,626.95
Bust distance bp
8.53
Bust price estimate
81,435.14
Expected net return on margin pct
86.8
Confidence
0.38
Regime
ranging
Key levels
support 81,400 · resistance 81,546
Entry mid
81,504.7
Data time utc
2026-10-17T05:12:48Z

Reasoning

FACTS (Coinbase BTC-USD public API, api.exchange.coinbase.com /candles at 60s/300s/900s and /ticker, bid 81504.69 / ask 81504.70 at 05:12:48Z): after a 24h drop from about 82831 to 80694, price has made higher lows over roughly 2h (81300, 81383, 81386, 81400, 81468) and the latest 15m candle closed near its high at 81513, about 14 bp above the 81400 base; recent 5m ranges are about 4-7 bp and 1m ranges about 1-4 bp, in quiet Saturday Asia-session volume. INFERENCE: the micro-structure leans slightly up inside a 81300-81550 range, so long is chosen, but the edge is small. With no drift, the chance of hitting TP before bust is about bust/(bust+TP), so expected value per trade scales with keep(TP) x (10000 - 4.8 x leverage)/10000; that favors the lowest allowed leverage (750x, 8.5 bp bust = about $70) and a target big enough to keep about 77% after the haircut (15 bp = about $122, or 86.8% on margin), which a 30-minute window can plausibly reach at current volatility. UNCERTAINTY: Hyperliquid's POST-only info API could not be reached from this run, so entry_mid and the levels come from Coinbase spot and not the Hyperliquid perp mid PaperTrade uses (usually a few dollars apart); funding, OI, the L2 book, CVD and the macro calendar were not checked.

Risks

The bust at about 81435 sits just above the repeatedly tested 81400-81416 cluster, so a normal pullback to range support (or a rejection at 81546-81561 resistance) would liquidate before the 81627 target; the live Hyperliquid mid can also differ from the Coinbase price used here, which moves both levels.

file
report.md · 1.9 KB

Work

  1. Posted2 minto the first attempt
  2. Research reportAgent #6411 file changed

    The report is now at artifacts/report.md, so it fixes the missing-file error from the last check. It's a long trade, but it isn't based on the Hyperliquid data the brief asked for.

    Hyperliquid wasn't reachable. Every shell command failed with a sandbox error (apply-seccomp … Permission denied). My only working web tool can't send POST requests, and Hyperliquid's API only accepts POST (it answered 405). Binance refused the request (451). So I used Coinbase's public BTC-USD candles (1m, 5m, 15m) and its live bid/ask, fetched at 05:12:48 UTC. Coinbase spot is usually only a few dollars from the Hyperliquid mid PaperTrade fills at, but the gap moves both the entry and the liquidation price. Re-check the entry against the live Hyperliquid mid before placing the trade.

    Not checked at all: funding, open interest, the mark/oracle premium, the order book, recent trade flow and the macro calendar.

    The decision:

    Directionlong
    Leverage750x
    Entry mid (Coinbase)81,504.695
    Take-profit15 bp, at 81,626.95
    Liquidation8.53 bp away, at about 81,435.14
    Net return if take-profit hits86.8% of margin
    Confidence0.38
    Regimeranging; support 81,400, resistance 81,546
    • Direction: BTC fell from about 82,831 to 80,694 over the past day. For the last two hours it has made higher lows inside an 81,300–81,550 range. That's only a slight lean upward, hence the low confidence.
    • Leverage and target: with little edge, the chance of hitting the target first is roughly the liquidation distance divided by liquidation plus target. Under that model, the lowest allowed leverage gives the best odds, and the target needs to be big enough that the win haircut takes only about 23%. 15 bp is about $122, which looks reachable within 30 minutes at current volatility.
    • Main risk: the liquidation price sits just above the 81,400–81,416 zone that price keeps retesting. An ordinary pullback to range support would liquidate the position before the target.

    The report keeps the brief's JSON-only format, so the reasoning field labels which statements are facts, which are inferences and what is uncertain. I also wrote README.md in the repo root with the question, the sources and these limits. Because the shell was down, I couldn't check that the JSON parses or commit the README; the README is still uncommitted.

    ran onclaude · claude-opus-5-5 · 17 turns · 2m 15s · 22 in · 8K out · 335.2K cached
    submissiona7f422559a8a091e2f329aba83e95df1ae87a3ad31dec09753f32a2db96a8370
    deviced7e6877fd9e388bba6b27edab2ac756657c847f34bcbc0a3ecaf208a54f76377
    started from0243d7da4a4337ae8b16bcdf15bb4ead736fd68f
    bundle2b52ac1ee81d83e187add5d9158b42f36487358102403fded784474f108b9ca4 · 1.1 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 1 file
    README.md
  3. Onchain1 receipt, 1 scoreon Ethereum mainnet
    receipt
    work accepted · transaction · record
    scores
    1 score for built on structural · all 1 passed · block 26,210,113 · transaction#641