find-arbitrage-opps▌
hummingbot/skills · updated Apr 8, 2026
Find arbitrage opportunities across all Hummingbot-connected exchanges by comparing prices for a trading pair, accounting for fungible tokens (e.g., BTC = WBTC, USDT = USDC).
find-arbitrage-opps
Find arbitrage opportunities across all Hummingbot-connected exchanges by comparing prices for a trading pair, accounting for fungible tokens (e.g., BTC = WBTC, USDT = USDC).
Prerequisites
Hummingbot API must be running with exchange connectors configured:
bash <(curl -s https://raw.githubusercontent.com/hummingbot/skills/main/skills/lp-agent/scripts/check_prerequisites.sh)
DEX Support
By default the script queries CEX connectors via the Hummingbot API. Add --dex to also fetch prices from:
| DEX | Chain | Default Network |
|---|---|---|
| Jupiter | Solana | mainnet-beta |
| Uniswap | Ethereum | mainnet |
| PancakeSwap | Ethereum (BSC) | bsc |
DEX prices are fetched directly via the Hummingbot Gateway. Make sure Gateway is running on http://localhost:15888 (or set GATEWAY_URL).
⚠️ BTC markets are only available to Australian residents on some exchanges. A warning is printed automatically when BTC/WBTC/cbBTC is included in the search.
Workflow
Step 1: Define Token Mappings
User specifies the base and quote tokens, including fungible equivalents:
- Base tokens: BTC, WBTC, cbBTC (all represent Bitcoin)
- Quote tokens: USDT, USDC, USD (all represent USD)
Step 2: Find Arbitrage Opportunities
# Basic - CEX only
python scripts/find_arb_opps.py --base BTC --quote USDT
# Include fungible tokens
python scripts/find_arb_opps.py --base BTC,WBTC --quote USDT,USDC
# Include DEX prices (Jupiter + Uniswap via Gateway)
python scripts/find_arb_opps.py --base SOL --quote USDC --dex
python scripts/find_arb_opps.py --base ETH,WETH --quote USDT,USDC --dex
# Minimum spread filter
python scripts/find_arb_opps.py --base SOL --quote USDC --dex --min-spread 0.1
# Filter to specific CEX connectors
python scripts/find_arb_opps.py --base BTC --quote USDT --connectors binance,kraken,coinbase
Step 3: Analyze Results
The script outputs:
- Prices from each CEX and DEX source
- Best bid/ask across all sources
- Arbitrage spread (buy low, sell high)
- Recommended pairs for arbitrage
Script Options
python scripts/find_arb_opps.py --help
| Option | Description |
|---|---|
--base |
Base token(s), comma-separated (e.g., BTC,WBTC) |
--quote |
Quote token(s), comma-separated (e.g., USDT,USDC) |
--connectors |
Filter to specific CEX connectors (optional) |
--dex |
Include DEX prices via Gateway (Jupiter + Uniswap) |
--min-spread |
Minimum spread % to show (default: 0.0) |
--json |
Output as JSON |
Output Example
============================================================
SOL / USDC Arbitrage Scanner
DEX: Jupiter (Solana mainnet-beta), Uniswap (Ethereum mainnet)
============================================================
Lowest: binance $132.4500
Highest: jupiter (DEX) $132.8900
Spread: 0.332% ($0.4400)
Sources: 5 prices from 5 sources
Top Arbitrage Opportunities:
--------------------------------------------------------
1. Buy binance @ $132.4500
Sell jupiter (DEX) @ $132.8900
Profit: 0.332% ($0.4400)
Environment Variables
export HUMMINGBOT_API_URL=http://localhost:8000
export API_USER=admin
export API_PASS=admin
export GATEWAY_URL=http://localhost:15888 # for DEX prices
Scripts check for .env in: ./hummingbot-api/.env → ~/.hummingbot/.env → .env
Requirements
- Hummingbot API running (for CEX prices)
- Gateway running (for DEX prices with
--dexflag) - Exchange connectors configured with API keys
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★33 reviews- ★★★★★Dhruvi Jain· Dec 24, 2024
find-arbitrage-opps reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Luis Khan· Dec 24, 2024
I recommend find-arbitrage-opps for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Sofia Gupta· Dec 16, 2024
find-arbitrage-opps fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Kabir Malhotra· Dec 12, 2024
Registry listing for find-arbitrage-opps matched our evaluation — installs cleanly and behaves as described in the markdown.
- ★★★★★Sophia Park· Nov 19, 2024
Solid pick for teams standardizing on skills: find-arbitrage-opps is focused, and the summary matches what you get after install.
- ★★★★★Oshnikdeep· Nov 15, 2024
I recommend find-arbitrage-opps for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Noah Sharma· Nov 15, 2024
find-arbitrage-opps reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Mateo Park· Nov 7, 2024
find-arbitrage-opps is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Noah Reddy· Nov 3, 2024
Useful defaults in find-arbitrage-opps — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Mateo Patel· Oct 26, 2024
Keeps context tight: find-arbitrage-opps is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 33