Autonomous perp-trading agents on Hyperliquid, with limits the model cannot override.
Docs · Quickstart · Risk engine · Roadmap
An LLM agent reads live BTC and ETH prices from Hyperliquid, checks its account, then opens or closes isolated-margin perps. Every order passes a deterministic risk engine. Every thought, action and refusal is written to a hash-chained journal anyone can verify.
┌────────────┐ 5 tools ┌──────────────┐ clamp / deny ┌────────────┐
tick → │ Claude │ ─────────▶ │ risk engine │ ─────────────▶ │ venue │ → Hyperliquid
│ (agent) │ ◀───────── │ (pure code) │ │ live/paper │
└─────┬──────┘ verdicts └──────────────┘ └────────────┘
└──────────── every step ──▶ hash-chained journal (JSONL)
Most trading-agent demos give a model an exchange key and hope. perpad inverts that. The model has five tools and no way to withdraw, transfer, change limits or use cross margin. The only path to an order runs through code that reads live exchange limits. If the model asks for 100x on a 40x market it gets 40x or a refusal, and the refusal is journaled.
git clone https://github.com/nirholas/perpad && cd perpad
npm install && npm run build
export ANTHROPIC_API_KEY=sk-ant-...
node dist/cli.js run examples/btc-eth.json --once
node dist/cli.js verify journal/tidewatcher.jsonlPaper mode uses real Hyperliquid prices with simulated fills, the 0.045% taker fee and isolated liquidation. Going live needs HL_PRIVATE_KEY (a Hyperliquid API wallet, which can trade but not withdraw), HL_ACCOUNT_ADDRESS, and both --live --i-understand-real-funds. Try "testnet": true first.
| Hard limits | Allowed markets, max leverage clamped to the live exchange cap (BTC 40x, ETH 25x today), margin per trade, open positions, daily-loss kill switch |
| Journal | SHA-256 chained JSONL. perpad verify pinpoints the first edited or missing entry |
| Venues | HyperliquidVenue (real, @nktkas/hyperliquid) and PaperVenue behind one interface |
| MCP server | Read-only: get_markets, check_risk, read_journal. Holds no key |
| Fee math | Integer micro-unit 30/70 split, $15 sweep minimum, buyback / compound / payout routing |
| Agent discovery | llms.txt, llms-full.txt, A2A agent card, MCP metadata, AGENTS.md |
import { Agent, Journal, PaperVenue, HyperliquidPrices } from "perpad";
const venue = new PaperVenue(new HyperliquidPrices(), 1000);
await new Agent(config, venue, new Journal("journal/a.jsonl")).tick();import { evaluate } from "perpad";
evaluate(
{ coin: "BTC", side: "long", leverage: 100, marginUsd: 900 },
{ openCoins: [], withdrawableUsd: 1000, dailyPnlUsd: 0, exchangeMaxLeverage: { BTC: 40 } },
{ markets: ["BTC"], maxLeverage: 50, marginPerTradeUsd: 100, maxOpenPositions: 1 },
); // { allowed: true, adjusted: { leverage: 40, marginUsd: 100 } }{ "mcpServers": { "perpad": { "command": "npx", "args": ["-y", "github:nirholas/perpad", "mcp", "journal/agent.jsonl"] } } }v0.1 ships the trading core, journal, paper and live venues, MCP server and fee math, covered by 21 tests including a live Hyperliquid read. The Solana leg (claim pump.fun creator fees, swap, bridge, deposit to Hyperliquid), coin launch flow, buybacks and journal anchoring are on the roadmap. They are not shipped and nothing here pretends otherwise.
Leveraged perps can lose all margin quickly. This is software, not financial advice, and makes no profit claims. Read the security model and SECURITY.md. Independent project, not affiliated with Hyperliquid, pump.fun or Anthropic.
PRs welcome. See CONTRIBUTING.md. Questions and ideas go to Discussions.
npm test # 21 tests, includes a live read-only Hyperliquid call
npm run typecheck
npm run site:build # regenerates docs/ (GitHub Pages)MIT © nirholas
If perpad saves you time, star it on GitHub. Stars are how other developers and AI agents find the repositories worth trusting, and they cost you one click.
Know someone who would use it? Post on X · Share on Bluesky · Share on LinkedIn · Submit to Hacker News · Share on Reddit
Coding agents and LLM tooling can read this repo directly: AGENTS.md, llms.txt, llms-full.txt. Point an agent at https://github.com/nirholas/perpad and it has the context it needs.
- All repositories by nirholas: the full catalog, grouped by topic
- three.ws: the platform for 3D AI agents with Solana wallets, a skill marketplace and x402 payments
- Questions or ideas: open an issue or start a discussion