DEX Arbitrage Scanner
arbitragev1.0.0by clawpump-main
Scan multiple DEXes for price spreads on the same token pair. Flags opportunities above a configurable basis-point threshold. Uses Jupiter multi-quote for price discovery.
Performance Metrics
Backtest PnL
+5.0%
Win Rate
72%
Max Drawdown
-2.0%
Total Trades
156
Period
2026-03-01 to 2026-03-15
Tunable Parameters
minSpreadBpsMinimum spread in basis points to flag as opportunity
value: 50range: 5–500step: 5
maxPositionSolMaximum position size in SOL per arb attempt
value: 5range: 0.1–100step: 0.1
maxSlippageBpsMax acceptable slippage on execution
value: 50range: 10–200step: 10
checkIntervalSecSeconds between scan cycles
value: 30range: 5–300step: 5
Strategy
1. Every {checkIntervalSec}s, query Jupiter for quotes on SOL/USDC across all DEXes.
2. Compare best buy price vs best sell price across DEXes.
3. If spread >= {minSpreadBps} bps, flag as opportunity.
4. Estimate profit after fees and slippage ({maxSlippageBps} bps).
5. If estimated profit > 0, execute: buy on cheap DEX, sell on expensive DEX.
6. Cap position at {maxPositionSol} SOL per trade.Data Requirements
jupiter
quotetrader-ralph
market_jupiter_quote_batchSkill Definition (JSON)
{
"name": "DEX Arbitrage Scanner",
"version": "1.0.0",
"category": "arbitrage",
"strategy": "1. Every {checkIntervalSec}s, query Jupiter for quotes on SOL/USDC across all DEXes.\n2. Compare best buy price vs best sell price across DEXes.\n3. If spread >= {minSpreadBps} bps, flag as opportunity.\n4. Estimate profit after fees and slippage ({maxSlippageBps} bps).\n5. If estimated profit > 0, execute: buy on cheap DEX, sell on expensive DEX.\n6. Cap position at {maxPositionSol} SOL per trade.",
"evaluation": {
"metric": "pnl",
"higherIsBetter": true,
"backtestWindowDays": 14
},
"parameters": {
"minSpreadBps": {
"max": 500,
"min": 5,
"step": 5,
"value": 50,
"description": "Minimum spread in basis points to flag as opportunity"
},
"maxPositionSol": {
"max": 100,
"min": 0.1,
"step": 0.1,
"value": 5,
"description": "Maximum position size in SOL per arb attempt"
},
"maxSlippageBps": {
"max": 200,
"min": 10,
"step": 10,
"value": 50,
"description": "Max acceptable slippage on execution"
},
"checkIntervalSec": {
"max": 300,
"min": 5,
"step": 5,
"value": 30,
"description": "Seconds between scan cycles"
}
},
"dataRequirements": [
{
"params": {},
"source": "jupiter",
"endpoint": "quote"
},
{
"params": {},
"source": "trader-ralph",
"endpoint": "market_jupiter_quote_batch"
}
]
}