Circuit

Open-source Hyperliquid trading agents on GitHub

Updated by the Circuit team

What is on GitHub

Most Hyperliquid agents on GitHub are built on one of three SDKs or on a general agent framework with a Hyperliquid connector. Star counts below are from GitHub on October 17, 2026.

Repository Language License Stars What it is
freqtrade/freqtrade Python GPL-3.0 55,483 General crypto agent with Hyperliquid spot and futures support
hummingbot/hummingbot Python Apache-2.0 20,496 Market making framework with Hyperliquid spot and perp connectors
Drakkar-Software/OctoBot Python GPL-3.0 6,803 Grid, DCA and TradingView agent for Hyperliquid and 15+ exchanges
enarjord/passivbot Python Unlicense 2,131 Perps agent for Hyperliquid, Bybit, Bitget, OKX and others
hyperliquid-dex/hyperliquid-python-sdk Python MIT 1,852 Official Python SDK
hyperliquid-dex/hyperliquid-rust-sdk Rust MIT 471 Official Rust SDK
nktkas/hyperliquid TypeScript MIT 452 Community TypeScript SDK for Node, Deno, Bun and browsers
chainstacklabs/hyperliquid-trading-bot Python Apache-2.0 84 Extensible grid agent from Chainstack, testnet first

Stars measure attention. They say nothing about whether a strategy makes money. GitHub search for "hyperliquid bot" also returns many repositories with keyword-stuffed descriptions and no license. Read the code before you give any of them a key.

The official Python SDK

Hyperliquid maintains hyperliquid-python-sdk. You install it with pip install hyperliquid-python-sdk. Then you put two values in examples/config.json. account_address is the public address of your main wallet. secret_key is a private key. The README suggests generating an API wallet at app.hyperliquid.xyz/API and using its key as secret_key. account_address stays the main wallet. The Info class reads account state. The examples folder has scripts for orders, take-profit and stop-loss, sub-accounts, transfers, vaults and withdrawals.

That is enough to send an order. An agent that runs for months needs much more. The next section covers it. The same applies to the Rust SDK and to nktkas/hyperliquid in TypeScript.

What running one yourself involves

A server that never sleeps. Hyperliquid trades 24/7. Freqtrade's docs suggest a Linux cloud instance with at least 2 GB of RAM, 1 GB of disk and 2 vCPUs. They suggest Docker for installs. You patch it, restart it after crashes and keep its clock in sync.

API wallets. An API wallet, also called an agent wallet, is a key your main account approves to sign for it. Per Hyperliquid's docs an account can have 1 unnamed and up to 3 named API wallets. Each sub-account adds 2 more named ones. A named wallet can carry an expiry at most 180 days out. Freqtrade's Hyperliquid notes say an API wallet key cannot withdraw funds and warn against storing your main wallet key on the agent's server.

Nonces. Hyperliquid stores the 100 highest nonces per signer. Each new action needs a nonce above the smallest of those and inside a window from 2 days before to 1 day after the block time. Its docs recommend one API wallet per trading process. They warn never to reuse an API wallet address. Once a deregistered wallet's nonce state is pruned its old signed actions can be replayed.

Rate limits. REST requests share 1,200 weight per minute per IP. Each address also starts with a buffer of 10,000 requests and earns 1 more for each 1 USDC it trades. Over that limit it gets 1 request every 10 seconds. Open orders default to a cap of 1,000.

Market data. Freqtrade's notes say Hyperliquid's API returns only the most recent 5,000 candles and offers no download of older history. A backtest needs data you recorded yourself. They also note Hyperliquid has no native market order. ccxt sends a limit order up to 5% from the price instead.

Monitoring and supply chain. You need alerts for a dead process, a rejected order, a position near liquidation and a stuck nonce. Freqtrade's docs also warn about supply-chain attacks such as poisoned pip packages. Pin dependencies and keep the main key off the server.

Worked example: the request budget

Say an agent sends one order or cancel every 10 seconds. That is 6 a minute and 8,640 a day.

Day Requests sent so far Allowed with zero volume Volume needed to keep pace
1 8,640 10,000 $0
2 17,280 10,000 $7,280 traded in total
7 60,480 10,000 $50,480 traded in total

After the first day the agent needs about $8,640 of volume a day to keep its pace. Without it the agent drops to one request every 10 seconds. A market maker that quotes every second burns its buffer in under 3 hours. Hyperliquid's docs recommend batching orders and cancels about every 0.1 seconds. A batch of up to 39 orders costs the same IP weight as a single order.

Telegram bots and their custody tradeoffs

Telegram trading bots are popular on Hyperliquid and Solana because you trade from a chat with no setup. Custody works in one of three ways. It matters more than the interface.

Model Who can move your funds Example
Agent-held wallet The agent operator's server holds the private key Banana Gun creates or imports wallets by private key. Its docs say a deleted wallet "is permanently removed from the server"
API wallet The operator holds a key that can trade your account A hosted agent you approve as a Hyperliquid API wallet
Self-hosted with Telegram control Only your own server Freqtrade and Hummingbot's Condor both offer a Telegram interface to an agent you run

With an agent-held wallet, the operator's security is your security. Banana Gun's own docs say that sharing a private key "is the same as handing over your wallet and all your funds". An API wallet is narrower. Whoever holds that key can still open, close and liquidate positions. The same rule applies to agents found by searching "hyperliquid bot reddit" and "hyperliquid bot telegram". An agent that asks for your main wallet's private key or seed phrase gets full control of the wallet.

How Circuit compares

Circuit is a hosted alternative to running the SDK yourself. An agent is a TypeScript run function. You write it with the Circuit CLI and SDK or describe it and the Builder writes it.

  • Orders. agent.hyperliquid.orders.create takes perpOpen, perpReduce, spotBuy and spotSell. Size is in base units or USDC value. Orders go out as market orders within 1% of the mid, as limits with ioc, gtc or alo, or as take-profit and stop-loss triggers. HIP-3 markets use their dex-prefixed symbols. See the Hyperliquid SDK reference.
  • Rounding and sizing. The engine reads the mid and rounds price and size to the market's precision. It rejects a limit order worth less than 10 quote units before sending it. Orders never resubmit automatically.
  • Keys. Circuit keeps the signing key in a hardware enclave and agents never see it. Nothing is signed without a permit you sign with your passkey. An agent runs under the permit signed when it starts. You can export the key at any time.
  • Hosting. Circuit runs the agent on a schedule, on price, position or fill triggers, or continuously. You do not run a server.
  • Backtests. circuit backtest replays an agent on recorded Hyperliquid, Lighter or Lighter Robinhood perp markets with fees, funding and liquidation. You do not need your own candle archive. Spot orders are not backtested.
  • Paper trading. circuit run --paper and paper sessions in the app fill against the live order book with Hyperliquid's fees, funding and liquidation rules.
  • Fees. Circuit charges no builder fee and no fees today.
DIY with the Python SDK Circuit
Language Python, Rust or TypeScript TypeScript
Server Yours Circuit's
Key On your server Hardware enclave, exportable
History for backtests Record your own Recorded Hyperliquid perp markets
Paper trading Build it, or use Hyperliquid testnet Live order book
Venues Hyperliquid, or any you integrate Hyperliquid, Polymarket, Lighter, Papertrade, Kraken, swaps
Cost Server plus your time No Circuit fees today

The TypeScript agent guide walks through a first agent.

When DIY is the better choice

Run your own if you need latency Circuit's runtime does not target. Quoting every few hundred milliseconds from a colocated server is one case. Run your own if your strategy depends on Python libraries such as pandas and scikit-learn or on a venue Circuit does not support. Freqtrade and Hummingbot also have years of production use and large communities. Circuit does not.

Ready specs get a strategy running on Hyperliquid this week without a server: copy a Hyperliquid trader, grid trade BTC or short overcrowded perps. See live HYPE agents on HYPE trading agents.

Test before you risk money

Agents start in paper trading by default. That means simulated funds on live markets and no real money moving. Papertrade agents and agents that start from an open position start only with real money. Hyperliquid, Lighter, Lighter Robinhood and Kraken orders fill against the live order book and one-minute bars with each venue's fees, funding and liquidation rules. Polymarket orders fill against the live book. Redemptions pay the market's real resolution. Swaps fill at the live executable quote and pay their network fee from about $10 of simulated gas. Paper sessions stay private and never count toward the leaderboard. Switch the same agent to real money when the results convince you.

Keys and permits

Agents run on a wallet you create in Circuit or import by private key. Circuit keeps the signing key in a hardware enclave. Agents never see it. An agent requests typed actions through Circuit's SDK. Nothing is signed without the permit you sign with your passkey when you start the agent.

You can export the private key from Settings at any time. You can pause, resume or stop an agent at any time. Stopping leaves your positions and resting orders in your account. You ask Circuit to close them.

FAQ

Is there an official Hyperliquid Python SDK?

Yes. It is hyperliquid-dex/hyperliquid-python-sdk on GitHub. It is MIT licensed and installs with pip install hyperliquid-python-sdk. Hyperliquid also publishes an official Rust SDK. The most used TypeScript SDK is the community project nktkas/hyperliquid.

What is a Hyperliquid API wallet?

A separate key your main account approves to sign actions for it. Agents use one so the main key stays off the server. Per Hyperliquid's docs an account gets 1 unnamed and up to 3 named API wallets. Each sub-account adds 2 named ones.

Are Hyperliquid Telegram bots safe?

Depends on custody. Many Telegram bots create or import your wallet and keep its private key on their server. A breach there can drain it. Per Freqtrade's notes an agent that only holds an API wallet can trade and cannot withdraw. Never paste a main wallet key or seed phrase into a chat.

Can I backtest a Hyperliquid strategy?

Freqtrade and Hummingbot backtest on data you supply. Freqtrade notes the API returns only the latest 5,000 candles. Circuit's circuit backtest replays an agent on recorded Hyperliquid perp markets with fees, funding and liquidation.

What is the best Hyperliquid trading agent on GitHub?

Freqtrade and Hummingbot lead by stars. Both support Hyperliquid. OctoBot and passivbot are also popular. For your own code, start from the official Python SDK. Read any repository's code and license before you give it a key.

Can I write a Hyperliquid agent in TypeScript?

Yes. Use the community nktkas/hyperliquid SDK or Circuit's SDK. Circuit's SDK also handles hosting, keys and backtests. See build a Hyperliquid trading agent in TypeScript.

Build it on Circuit

Circuit writes the agent and backtests it. Paper trade it before you fund it.

Build your agent