Automated summary
Detects and analyzes cryptocurrency arbitrage opportunities, including price spreads across CEXs, DEXs, and chains, with net-profit estimates after fees.
Strengths
- Aggregates prices from multiple exchanges and DeFi protocols for quick spread comparison.
- Finds triangular arbitrage paths and cross-chain opportunities including bridge fees.
- Produces detailed profit calculations covering trading fees, withdrawal fees, and breakeven spread.
- Supports real-time monitoring with alerts when spreads exceed a chosen threshold.
Limitations
- Relies on external API availability and latency; displayed prices may no longer be executable.
- The skill analyzes opportunities but does not place orders or guarantee trade execution.
- Gas costs, bridge fees, and API rate limits may vary or be only approximate.
Use this skill when you need to compare exchange prices or scan for crypto spreads and arbitrage paths with net-profit estimates.
Do not use it when you need automated trade execution, guaranteed profit, or financial advice.
Security analysis
SafeThe skill is a read-only arbitrage scanner: it fetches public price data, computes spreads and fees, and prints/saves results. No file deletion, secret exfiltration, piped remote scripts, or safety-disabling content is present. The only notable observations are the expected network/API-key usage and a mismatch between the documented `python ...` commands and the narrowly scoped Bash allowlist — neither of which constitutes meaningful execution risk.
- •Declared Bash scope is narrow (Bash(crypto:arbitrage-*)) and no destructive, exfiltration, or obfuscated commands appear; all actions are read-only price queries and profit calculations.
- •Handles optional exchange API keys via environment variables but only describes exporting them locally; no instruction sends them to any third-party endpoint.
- •Performs outbound network calls to public price APIs (CoinGecko, CEX/DEX endpoints), which is expected and legitimate for this task.
- •Minor inconsistency: the documented invocations use `python {baseDir}/scripts/arb_finder.py ...`, which does not obviously match the `crypto:arbitrage-*` Bash allowlist prefix, so execution may be blocked or require broader permissions than declared.
Examples
Find arbitrage opportunities for ETH/USDC across Binance, Coinbase, Kraken, KuCoin, and OKX, and show the net profit after fees.Scan DEX prices for ETH/USDC on Uniswap V3, SushiSwap, Curve, and Balancer, including estimated gas costs.Monitor the ETH/USDC spread every 5 seconds and alert me when the net opportunity exceeds 0.5%.name: finding-arbitrage-opportunities description: | 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".
allowed-tools: Read, Write, Edit, Grep, Glob, Bash(crypto:arbitrage-*) version: 1.0.0 author: Jeremy Longshore jeremy@intentsolutions.io license: MIT
Finding Arbitrage Opportunities
Overview
This skill detects and analyzes arbitrage opportunities across cryptocurrency exchanges and DeFi protocols. It aggregates prices from multiple sources, calculates net profit after fees and costs, and identifies both direct and triangular arbitrage paths.
Prerequisites
Before using this skill, ensure you have:
- Python 3.9+ with
httpx,rich, andnetworkxpackages - Internet access for API calls (no API keys required for basic use)
- Optional: Exchange API keys for real-time order book access
- Understanding of arbitrage concepts and trading fees
Instructions
Step 1: Configure Data Sources
Configure your price sources in {baseDir}/config/settings.yaml:
# Primary data sources
data_sources:
coingecko:
enabled: true
base_url: "https://api.coingecko.com/api/v3"
rate_limit: 10 # calls per minute (free tier)
exchanges:
- binance
- coinbase
- kraken
- kucoin
- okx
Or use environment variables for API keys:
export BINANCE_API_KEY="your-key"
export COINBASE_API_KEY="your-key"
Step 2: Quick Spread Scan
Scan for arbitrage opportunities on a specific pair:
python {baseDir}/scripts/arb_finder.py scan ETH USDC
This shows:
- Current prices on each exchange
- Spread percentage
- Estimated profit after fees
- Recommended action
Step 3: Multi-Exchange Comparison
Compare prices across specific exchanges:
python {baseDir}/scripts/arb_finder.py scan ETH USDC \
--exchanges binance,coinbase,kraken,kucoin,okx
Output includes: | Exchange | Bid | Ask | Spread | Net Profit | |----------|-----|-----|--------|------------| | Binance | 2541.20 | 2541.50 | 0.01% | - | | Coinbase | 2543.80 | 2544.10 | 0.01% | +$2.30 |
Step 4: DEX Price Comparison
Scan decentralized exchanges for arbitrage:
python {baseDir}/scripts/arb_finder.py scan ETH USDC --dex-only
Compares:
- Uniswap V3
- SushiSwap
- Curve
- Balancer
Includes gas cost estimates for on-chain execution.
Step 5: Triangular Arbitrage Discovery
Find profitable circular paths within an exchange:
python {baseDir}/scripts/arb_finder.py triangular binance --min-profit 0.5
Example output:
Path: ETH → BTC → USDT → ETH
Gross: +0.82%
Fees: -0.30% (3 × 0.10%)
─────────────────────────────
Net: +0.52%
Step 6: Cross-Chain Opportunities
Compare prices across different blockchains:
python {baseDir}/scripts/arb_finder.py cross-chain USDC \
--chains ethereum,polygon,arbitrum
Shows:
- Price on each chain
- Bridge fees and times
- Net profit after bridging
Step 7: Real-Time Monitoring
Continuously monitor for opportunities:
python {baseDir}/scripts/arb_finder.py monitor ETH USDC \
--threshold 0.5 \
--interval 5
Alerts when spread exceeds threshold:
[ALERT] ETH/USDC spread 0.62% (Binance → Coinbase)
Buy: $2,541.20 | Sell: $2,556.98
Net Profit: +$12.34 (after fees)
Step 8: Profit Calculator
Calculate exact profit for a trade:
python {baseDir}/scripts/arb_finder.py calc \
--buy-exchange binance \
--sell-exchange coinbase \
--pair ETH/USDC \
--amount 10
Shows detailed breakdown:
- Gross profit
- Trading fees (both exchanges)
- Withdrawal fees
- Net profit
- Breakeven spread
Step 9: JSON Export
Export opportunities for bot integration:
python {baseDir}/scripts/arb_finder.py scan ETH USDC --output json > opportunities.json
Output
The scanner provides:
Quick Mode (default):
- Best opportunity with profit estimate
- Buy/sell recommendation
- Risk level indicator
Detailed Mode (--detailed):
- All exchange prices
- Fee breakdown
- Slippage estimates
- Historical spread context
Monitor Mode:
- Real-time updates
- Threshold alerts
- Trend indicators
Supported Exchanges
Centralized Exchanges (CEX)
| Exchange | Maker Fee | Taker Fee | Withdrawal | |----------|-----------|-----------|------------| | Binance | 0.10% | 0.10% | Variable | | Coinbase | 0.40% | 0.60% | Variable | | Kraken | 0.16% | 0.26% | Variable | | KuCoin | 0.10% | 0.10% | Variable | | OKX | 0.08% | 0.10% | Variable |
Decentralized Exchanges (DEX)
| DEX | Fee Range | Gas (ETH) | Chains | |-----|-----------|-----------|--------| | Uniswap V3 | 0.01-1% | ~150k | ETH, Polygon, Arbitrum | | SushiSwap | 0.30% | ~150k | Multi-chain | | Curve | 0.04% | ~200k | ETH, Polygon, Arbitrum | | Balancer | 0.01-10% | ~180k | ETH, Polygon, Arbitrum |
Error Handling
See {baseDir}/references/errors.md for comprehensive error handling.
Common issues:
- Rate Limited: Reduce polling frequency or use API key
- Stale Prices: Data older than 10s flagged with warning
- No Spread: All exchanges at similar prices (efficient market)
- Insufficient Liquidity: Trade size exceeds order book depth
Examples
See {baseDir}/references/examples.md for detailed examples including:
- ETH/USDC CEX arbitrage scan
- DEX triangular arbitrage discovery
- Cross-chain USDC opportunity
- Automated monitoring setup
Educational Disclaimer
FOR EDUCATIONAL PURPOSES ONLY
Arbitrage trading involves significant risks:
- Opportunities may disappear before execution
- Price data may be delayed or inaccurate
- Fees can exceed profits on small trades
- Market conditions change rapidly
This tool provides analysis only. Do not trade without understanding the risks.
Resources
- CoinGecko API - Free price data
- CCXT Library - Unified exchange API
- Uniswap Subgraph - DEX data
- Gas Tracker - Ethereum gas prices
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/finding-arbitrage-opportunities-mm5t8cgy/download' --output '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md.part' && mv '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md.part' '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Read, Write, Edit, Grep, Glob, Bash(crypto:arbitrage-*)
Original excerpt: Prerequisites
Before using this skill, ensure you have:
- Python 3.9+ with
httpx,rich, andnetworkxpackages - Internet access for API calls (no API keys required for basic use)
- Optional: Exchange API keys for real-time order book access
- Understanding of arbitrage concepts and trading fees
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md' && test -s '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/finding-arbitrage-opportunities' && cp -R '.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy' '.claude/skills/finding-arbitrage-opportunities'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/finding-arbitrage-opportunities-mm5t8cgy'openskills read 'finding-arbitrage-opportunities-mm5t8cgy'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/finding-arbitrage-opportunities-mm5t8cgy/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Create Interactive Maps with kepler.gl
Data & AI
Create interactive map visualizations and export standalone HTML using the keplergl Python package. Use to plot geospatial data from DataFrames, GeoJSON, or CSV.
Agent-Driven Parameter Optimization
Data & AI
Guide for optimizing configurable systems with a measurable objective, using bounded trials and evidence-based recommendations.
ICP Visitor Outreach
Data & AI
Identify signed-up users matching the ideal customer profile but stalled, and draft personalized outreach to re-engage them.