Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Detect profitable arbitrage opportunities across CEX, DEX, and cross-chain markets in real-time. Use when scanning for price spreads, finding arbitrage paths, comparing exchange prices, or analyzing triangular arbitrage opportunities. Trigger with phrases like "find arbitrage", "scan for arb", "price spread", "exchange arbitrage", "triangular arb", "DEX price difference", or "cross-exchange opportunity".
.claude/skills/jeremylongshore-finding-arbitrage-opportunities/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -41% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -33% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -20% | 0% |
Detect and analyze arbitrage opportunities across cryptocurrency exchanges and DeFi protocols. Aggregates prices from CEX and DEX sources, calculates net profit after fees, and identifies direct, triangular, and cross-chain arbitrage paths.
httpx, rich, and networkx packagesbash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py scan ETH USDC
Shows current prices per exchange, spread %, estimated profit after fees, and recommended action.
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py scan ETH USDC \ --exchanges binance,coinbase,kraken,kucoin,okx
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py scan ETH USDC --dex-only
Compares Uniswap V3, SushiSwap, Curve, Balancer with gas cost estimates.
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py triangular binance --min-profit 0.5
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py cross-chain USDC \ --chains ethereum,polygon,arbitrum
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py monitor ETH USDC \ --threshold 0.5 --interval 5
bash python ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py scan ETH USDC --output json > opportunities.json
--detailed): All exchange prices, fee breakdown, slippage estimates, historical spread contextSee ${CLAUDE_SKILL_DIR}/references/implementation.md for exchange fee tables and output format examples.
| Error | Cause | Fix | |-------|-------|-----| | Rate limited | Too many API requests | Reduce polling frequency or add API key | | Stale prices | Data older than 10s | Flagged with warning; retry | | No spread | Efficient market pricing | Normal condition; try different pairs | | Insufficient liquidity | Trade exceeds order book depth | Reduce trade size |
Quick ETH/USDC spread scan - Find best buy/sell across all CEX exchanges:
bashpython ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py scan ETH USDC
Sample detection output:
ARB OPPORTUNITY: ETH/USDC
Buy: Binance @ $3,198.50 | Sell: Coinbase @ $3,214.20
Spread: 0.49% | Net Profit (after fees): 0.29% ($9.27 per ETH)
Risk: LOW | Confidence: HIGH | Window: ~30sTriangular arb on Binance - Discover circular paths with minimum 0.5% net profit:
bashpython ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py triangular binance --min-profit 0.5
Cross-chain USDC opportunities - Compare stablecoin prices across L1/L2 chains:
bashpython ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py cross-chain USDC --chains ethereum,polygon,arbitrum
Calculate exact profit - Detailed fee breakdown for a specific trade:
bashpython ${CLAUDE_SKILL_DIR}/scripts/arb_finder.py calc \ --buy-exchange binance --sell-exchange coinbase --pair ETH/USDC --amount 10 # 10 = trade size in ETH
${CLAUDE_SKILL_DIR}/references/implementation.md - Exchange fee tables, configuration, advanced arbitrage types, disclaimer| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 21,694 | 18,266 | -16% | 1 | 1 | 0% | 2,853 | 1,472 | -48% | 0 | 0 | — |
case-02 | fail→fail | 21,864 | 7,399 | -66% | 1 | 1 | 0% | 3,443 | 1,607 | -53% | 0 | 0 | — |
case-03 | fail→fail | 20,019 | 4,905 | -75% | 1 | 1 | 0% | 3,553 | 1,384 | -61% | 0 | 0 | — |
case-04 | fail→pass | 16,951 | 2,384 | -86% | 1 | 1 | 0% | 2,376 | 1,577 | -34% | 0 | 0 | — |
case-05 | fail→pass | 14,645 | 4,263 | -71% | 1 | 1 | 0% | 2,671 | 1,822 | -32% | 0 | 0 | — |
case-06 | fail→pass | 18,825 | 3,216 | -83% | 1 | 1 | 0% | 2,950 | 1,738 | -41% | 0 | 0 | — |
case-07 | fail→pass | 12,313 | 3,773 | -69% | 1 | 1 | 0% | 2,429 | 1,618 | -33% | 0 | 0 | — |
case-08 | fail→pass | 15,273 | 3,449 | -77% | 1 | 1 | 0% | 2,320 | 1,854 | -20% | 0 | 0 | — |
case-09 | fail→pass | 14,601 | 3,435 | -76% | 1 | 1 | 0% | 2,920 | 1,820 | -38% | 0 | 0 | — |
case-10 | fail→pass | 11,722 | 2,498 | -79% | 1 | 1 | 0% | 2,217 | 1,589 | -28% | 0 | 0 | — |
case-11 | fail→pass | 242,875 | 2,353 | -99% | 1 | 1 | 0% | 2,533 | 1,522 | -40% | 0 | 0 | — |
case-12 | fail→pass | 12,743 | 3,333 | -74% | 1 | 1 | 0% | 2,022 | 1,604 | -21% | 0 | 0 | — |
case-13 | fail→pass | 732,303 | 4,060 | -99% | 1 | 1 | 0% | 2,624 | 1,707 | -35% | 0 | 0 | — |
case-14 | fail→pass | 8,263 | 2,323 | -72% | 1 | 1 | 0% | 1,481 | 1,564 | +6% | 0 | 0 | — |
case-15 | fail→pass | 11,346 | 7,655 | -33% | 1 | 1 | 0% | 2,344 | 2,763 | +18% | 0 | 0 | — |
case-16 | fail→pass | 12,143 | 2,412 | -80% | 1 | 1 | 0% | 2,031 | 1,600 | -21% | 0 | 0 | — |
case-17 | fail→pass | 13,536 | 2,430 | -82% | 1 | 1 | 0% | 2,447 | 1,575 | -36% | 0 | 0 | — |
case-18 | fail→pass | 12,825 | 2,551 | -80% | 1 | 1 | 0% | 2,514 | 1,617 | -36% | 0 | 0 | — |
case-19 | pass→pass | 14,921 | 13,796 | -8% | 1 | 1 | 0% | 2,293 | 3,360 | +47% | 0 | 0 | — |
case-20 | fail→pass | 13,562 | 6,810 | -50% | 1 | 1 | 0% | 2,069 | 2,229 | +8% | 0 | 0 | — |
case-21 | pass→pass | 11,235 | 6,549 | -42% | 1 | 1 | 0% | 1,770 | 2,223 | +26% | 0 | 0 | — |
case-22 | pass→fail | 21,854 | 60,512 | +177% | 1 | 1 | 0% | 4,376 | 2,887 | -34% | 0 | 0 | — |
case-23 | pass→pass | 23,217 | 22,273 | -4% | 1 | 1 | 0% | 3,794 | 4,910 | +29% | 0 | 0 | — |
case-24 | pass→pass | 31,289 | 32,392 | +4% | 1 | 1 | 0% | 5,792 | 6,740 | +16% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 21 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +33 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.