A sandbox for Hyperliquid trading agents
Ironflow is the agent cloud for Hyperliquid. A sandbox is your own server next to Hyperliquid in Tokyo, with a terminal in your browser and Hyperliquid data inside. Describe a bot in plain English or write code, backtest it, then run it. No signup to start.
Free key14 days of history at 60 requests a minute. Without a key, the API reaches 24 hours back.
By requesting a key you agree to the Terms and API terms; see the Privacy Policy. We may email you when your key keeps hitting its limits; you can opt out at any time.
What is in a sandbox#
- A real shell. A Linux machine in Tokyo with Python,
vim,nano,tmuxandjq. Not a picture of a terminal. - Hyperliquid data. Hourly candles, every liquidation, hourly funding and open interest, and hourly taker flow, refreshed up to yesterday for the market you test.
- The
ironboxcommand. Writes bots from sentences, backtests them and runs them. - A paper account. Your own simulated Hyperliquid account with $10,000 and live prices. It speaks the Hyperliquid API, so the official SDK works by changing
base_url. - Paper only. The box reads Hyperliquid's API, but its firewall refuses the order endpoint, so nothing real is ever traded.
- A closed network. Besides Hyperliquid it reaches Ironflow's API, PyPI, npm, GitHub, Hugging Face and the Anthropic and OpenAI APIs.
- Its own machine. Every sandbox is a separate microVM.
Three ways in#
- Type an idea on ironflow.sh. The sandbox boots, writes the idea as
bot.yamland backtests it. - Boot an empty sandbox from /ironbox and start from the shell.
- From your agent. Over MCP, with a key,
create_ironboxonhttps://mcp.ironflow.sh/mcpmakes an Ironbox. Over REST, with no key, one call makes a paper account any Hyperliquid SDK can point at:
curl -X POST https://api.ironflow.sh/v1/ironboxAgents can read the facts they need in llms.txt and the exact steps in start.txt.
A session#
ironbox new 'buy $1k of BTC after longs lose $3M in an hour'
ironbox backtest bot.yaml
nano bot.yaml
ironbox backtest bot.yaml
ironbox run bot.yaml
ironbox ps
ironbox logs <name> -f
ironbox accountUse single quotes around the sentence. In double quotes the shell reads $3M as a variable and drops it.
run starts the bot on your paper account with live data. ps, logs and stop manage it like any process. account shows equity and open positions.
Plain English or Python#
A sentence becomes bot.yaml: a market, conditions on price, liquidations, funding, open interest, taker flow or volume, joined with and/or, plus a stop, a take profit, a time exit and a size cap. You can read and edit every line.
When a rule does not fit in YAML, write bot.py:
"""Buy when BTC is up 3% over 24 hours, close when it gives back 1.5% from entry."""
MARKET = "BTC"
MAX_USD = 2000
LOOKBACK_HOURS = 24
ENTRY_PCT = 3.0
EXIT_PCT = -1.5
closes = []
def on_event(e, ctx):
if e.kind != "candle":
return
closes.append(e.close)
if len(closes) <= LOOKBACK_HOURS:
return
change = (e.close / closes[-LOOKBACK_HOURS - 1] - 1) * 100
if not ctx.position and change >= ENTRY_PCT:
ctx.buy(usd=1000)
ctx.log(f"buy, 24h change {change:.2f}%")
elif ctx.position and (e.close / ctx.position.entry - 1) * 100 <= EXIT_PCT:
ctx.close()
ctx.log("close")e.kind is candle, liquidation, funding or open_interest, plus flow when the file asks for it. Code bots get the same backtest as YAML bots. This file ships in every sandbox as ~/examples/momentum.py. It lost $466.59 on 24 trades over 256 tested days, 1 November 2025 to 14 July 2026, and made $71.11 on 3 trades in the 110-day holdout. Good to know before it runs on anything.
What every backtest charges#
- 4.5 bps taker fee and the market's own slippage on each side, measured from 30 days of Hyperliquid trades (0.5 bps on BTC, 5 bps on a market with too few trades).
- Funding for every hour a position is open.
- Fills at a later price than the signal: the next bar, or a liquidation print at least 3 seconds later.
- If a bar hits both the stop and the take profit, the stop wins.
- The last 30% of days held back as a holdout, run from a fresh account.
- The same trades replayed at random times 1,000 times, so you can see whether timing mattered.
The data behind it#
The same history the Data API serves: every trade, fill and liquidation since May 2025, over REST, SQL, live streams, RPC and MCP, on one key. Live liquidations, the liquidation map, top traders and alerts to Discord, Slack or Telegram run on the same data.
What it costs#
- Paper sandbox: free, no signup.
- Free key: keeps your paper boxes, and the sandbox tests a full year. Set it in the shell with
export IRONFLOW_API_KEY=if_your_key. - Explorer: $49 for 30 days, with 5 paper boxes. Builder: $149, with 10. Paid in USDC.
- Dedicated node: your own Hyperliquid node in Tokyo, from $1,250 a month, is a separate product.
Plans: /pricing.
Questions#
Is it a real server?#
Yes. A Linux machine in Tokyo with a real shell, running only your work.
Can my AI agent use it?#
Yes. With a key it can create an Ironbox over MCP with create_ironbox. With no key, POST /v1/ironbox makes a paper account the Hyperliquid SDK can point at.
Do I need a key?#
No, to start. A free key keeps your paper boxes and lets the sandbox test a full year.
Can a sandbox place real orders?#
No. The sandbox firewall refuses Hyperliquid's order endpoint, so bots trade the paper account only.
Related guides#
- How to backtest a Hyperliquid strategy in plain English
- Hyperliquid paper trading
- Hyperliquid API endpoints: which one to use
- Ironbox docs
Test your trading idea before it costs you money. Start a sandbox on ironflow.sh
Past results do not predict future ones. Not financial advice.
Free key14 days of history at 60 requests a minute. Without a key, the API reaches 24 hours back.
By requesting a key you agree to the Terms and API terms; see the Privacy Policy. We may email you when your key keeps hitting its limits; you can opt out at any time.