CircuitGet started

Open-source Hyperliquid trading bots on GitHub

Updated by the Circuit team

What is on GitHub

Most Hyperliquid bots on GitHub are built on one of three SDKs, or on a general bot 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 bot 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 bot for Hyperliquid and 15+ exchanges
enarjord/passivbot Python Unlicense 2,131 Perps bot 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 bot 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 put two values in examples/config.json: account_address, the public address of your main wallet, and secret_key, a private key. The README suggests generating an API wallet at app.hyperliquid.xyz/API and using its key as secret_key, while account_address stays the main wallet. The Info class reads account state, and 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. A bot that runs for months needs much more, covered below. 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 around the clock. Freqtrade's docs suggest a Linux cloud instance with at least 2 GB of RAM, 1 GB of disk and 2 vCPUs, and 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, plus 2 more named ones per sub-account, and 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 bot'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 and warn never to reuse an API wallet address, because once a deregistered wallet's nonce state is pruned, 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. Once over, 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, so a backtest needs data you recorded yourself. They also note Hyperliquid has no native market order, so ccxt sends a limit order up to 5% from the price.

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, which is a reason to pin dependencies and keep the main key off the server.

Worked example: the request budget

Say a bot 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 bot needs about $8,640 of volume a day to keep its pace, or it 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, and 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, and it matters more than the interface.

Model Who can move your funds Example
Bot-held wallet The bot 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 bot 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 a bot you run

With a bot-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, but whoever holds that key can still open, close and liquidate positions. For "hyperliquid bot reddit" and "hyperliquid bot telegram" searches, the same rule applies: a bot 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. A bot 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, sized by base units or USDC value, as market orders within 1% of the mid, limits with ioc, gtc or alo, or 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, rounds price and size to the market's precision, and 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 bots never see it. Circuit signs only under a permit you sign with your passkey, and a bot runs under the permit signed when it starts. You can export the key at any time.
  • Hosting. Circuit runs the bot on a schedule, on price, position or fill triggers, or continuously. You do not run a server.
  • Backtests. circuit backtest replays a bot on recorded Hyperliquid or Lighter perp markets with fees, funding and liquidation, so 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 bot guide walks through a first bot.

When DIY is the better choice

Run your own if you need latency Circuit's runtime does not target, such as quoting every few hundred milliseconds from a colocated server. 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, which Circuit does not.

If you want a strategy running on Hyperliquid this week without operating a server, start from a ready spec: copy a Hyperliquid trader, grid trade BTC or short overcrowded perps. See live HYPE bots on HYPE trading bots.

Test before you risk money

Every bot starts in paper trading: simulated funds on live markets, with no real money moving. Hyperliquid, Lighter 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, and 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 bot to real money when the results convince you.

Keys and permits

Bots run on a wallet you create in Circuit or import by private key. Circuit keeps the signing key in a hardware enclave, and bots never see it. A bot requests typed actions through Circuit's SDK, and Circuit signs only under the permit you sign with your passkey when you start the bot.

You can export the private key from Settings at any time. Pause, resume or stop any bot whenever you want. Stopping leaves your positions and resting orders in your account, and you close them from Terminal.

FAQ

Is there an official Hyperliquid Python SDK?

Yes. hyperliquid-dex/hyperliquid-python-sdk on GitHub, MIT licensed, installed 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. Bots use one so the main key stays off the server. An account gets 1 unnamed and up to 3 named API wallets, plus 2 named ones per sub-account, per Hyperliquid's docs.

Are Hyperliquid Telegram bots safe?

Depends on custody. Many Telegram bots create or import your wallet and keep its private key on their server, so a breach there can drain it. A bot that only holds an API wallet can trade but, per Freqtrade's notes, 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, and Freqtrade notes the API returns only the latest 5,000 candles. Circuit's circuit backtest replays a bot on recorded Hyperliquid perp markets with fees, funding and liquidation.

What is the best Hyperliquid trading bot on GitHub?

By stars, Freqtrade and Hummingbot lead, and 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 bot in TypeScript?

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

Bots you can run now

Start trading