Skip to main content
$CLAW Live
View tokenomics
Skills/DEX Arbitrage Scanner

DEX Arbitrage Scanner

arbitragev1.0.0by clawpump-main
Star on GitHub

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

minSpreadBps

Minimum spread in basis points to flag as opportunity

value: 50range: 5500step: 5
maxPositionSol

Maximum position size in SOL per arb attempt

value: 5range: 0.1100step: 0.1
maxSlippageBps

Max acceptable slippage on execution

value: 50range: 10200step: 10
checkIntervalSec

Seconds between scan cycles

value: 30range: 5300step: 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

jupiterquote
trader-ralphmarket_jupiter_quote_batch

Skill 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"
    }
  ]
}