/mev
MEV protection against sandwich attacks and front-running
$ npx -y skills add alsk1992/CloddsBot --skill mev --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition โ
- You can call itInvoke it directly when you want it.
- Slash command
/mev
Context preview
The summary Claude sees to decide when to auto-load this skill.
MEV protection against sandwich attacks and front-running
SKILL.md
mev.SKILL.mdname: mev
description: "MEV protection against sandwich attacks and front-running"
emoji: "๐ก๏ธ"
MEV Protection - Complete API Reference
Protect trades from MEV (Maximal Extractable Value) attacks including sandwich attacks and front-running.
---
Chat Commands
Protection Settings
/mev Show current protection
/mev status Protection status
/mev enable Enable protection
/mev disable Disable protection
Configure Protection
/mev level aggressive Maximum protection
/mev level standard Balanced protection
/mev level minimal Basic protection
/mev provider flashbots Use Flashbots
/mev provider mev-blocker Use MEV Blocker
Check Transaction
/mev check <tx-hash> Check if tx was attacked
/mev simulate <order> Simulate MEV risk
---
TypeScript API Reference
Create MEV Protection
import { createMEVProtection } from 'clodds/mev';
const mev = createMEVProtection({
// Default level
level: 'standard',
// Providers
providers: {
ethereum: 'flashbots', // 'flashbots' | 'mev-blocker'
solana: 'jito', // 'jito' | 'standard'
},
// Settings
maxPriorityFee: 5, // gwei
bundleTimeout: 60, // seconds
});Execute Protected Trade
// EVM trade with protection
const result = await mev.executeProtected({
chain: 'ethereum',
type: 'swap',
tokenIn: 'USDC',
tokenOut: 'ETH',
amountIn: 10000,
minAmountOut: calculateMinOut(10000, 0.5), // 0.5% slippage
});
console.log(`Tx hash: ${result.txHash}`);
console.log(`Protected: ${result.protected}`);
console.log(`Bundle ID: ${result.bundleId}`);
console.log(`Savings: $${result.estimatedSavings}`);Flashbots (Ethereum)
// Submit via Flashbots Protect
const result = await mev.flashbots({
to: routerAddress,
data: swapCalldata,
value: 0,
maxFeePerGas: parseGwei('50'),
maxPriorityFeePerGas: parseGwei('2'),
});
console.log(`Submitted to Flashbots`);
console.log(`Bundle hash: ${result.bundleHash}`);
// Wait for inclusion
const status = await mev.waitForInclusion(result.bundleHash);
console.log(`Included in block: ${status.blockNumber}`);MEV Blocker (Ethereum)
// Use MEV Blocker by CoW Protocol
const result = await mev.mevBlocker({
to: routerAddress,
data: swapCalldata,
value: 0,
});
// MEV Blocker automatically:
// - Protects from sandwich attacks
// - Backruns profitable MEV to you
// - Returns any captured MEV
console.log(`MEV captured: $${result.mevCaptured}`);Jito (Solana)
// Submit via Jito bundles
const result = await mev.jito({
instructions: swapInstructions,
tip: 10000, // lamports tip to validators
});
console.log(`Bundle ID: ${result.bundleId}`);
console.log(`Status: ${result.status}`);Check Transaction
// Check if a past transaction was attacked
const analysis = await mev.analyzeTransaction(txHash);
console.log(`Was attacked: ${analysis.wasAttacked}`);
if (analysis.wasAttacked) {
console.log(`Attack type: ${analysis.attackType}`);
console.log(`Attacker: ${analysis.attacker}`);
console.log(`Loss: $${analysis.estimatedLoss}`);
console.log(`Frontrun tx: ${analysis.frontrunTx}`);
console.log(`Backrun tx: ${analysis.backrunTx}`);
}Simulate MEV Risk
// Before trading, check MEV risk
const risk = await mev.simulateRisk({
chain: 'ethereum',
type: 'swap',
tokenIn: 'USDC',
tokenOut: 'PEPE',
amountIn: 50000,
});
console.log(`MEV risk: ${risk.level}`); // 'low' | 'medium' | 'high'
console.log(`Estimated max loss: $${risk.maxLoss}`);
console.log(`Recommendation: ${risk.recommendation}`);
if (risk.level === 'high') {
console.log('โ ๏ธ High MEV risk - use protection!');
}Protection Levels
// Aggressive - maximum protection, slower
mev.setLevel('aggressive', {
usePrivateMempool: true,
bundleOnly: true,
maxSlippage: 0.1,
waitForProtection: true,
});
// Standard - balanced protection
mev.setLevel('standard', {
usePrivateMempool: true,
bundleOnly: false,
maxSlippage: 0.5,
});
// Minimal - basic protection
mev.setLevel('minimal', {
usePrivateMempool: false,
bundleOnly: false,
maxSlippage: 1.0,
});---
MEV Attack Types
| Attack | Description | Protection | |--------|-------------|------------| | **Sandwich** | Front + backrun your trade | Private mempool | | **Front-running** | Copy your trade first | Private mempool | | **Back-running** | Profit after your trade | Jito/Flashbots | | **JIT Liquidity** | Manipulate pool | Slippage limits |
---
Protection Providers
| Chain | Provider | Method | |-------|----------|--------| | **Ethereum** | Flashbots Protect | Private relay | | **Ethereum** | MEV Blocker | CoW Protocol | | **Solana** | Jito | Bundle submission | | **L2s** | Native | Sequencer protection |
---
When to Use Protection
| Trade Size | Token | Recommendation | |------------|-------|----------------| | < $1,000 | Major | Minimal | | $1,000 - $10,000 | Major | Standard | | > $10,000 | Major | Aggressive | | Any size | Meme/Low liquidity | Aggressive |
---
Best Practices
1. **Always protect large trades** โ MEV bots watch everything 2. **Use tight slippage** โ Limits attack profitability 3. **Check before trading** โ Simulate MEV risk 4. **Review transactions** โ Learn from past attacks 5. **L2s are safer** โ Sequencer provides natural protection
Read more
name: mev description: "MEV protection against sandwich attacks and front-running" emoji: "๐ก๏ธ"
MEV Protection - Complete API Reference
Protect trades from MEV (Maximal Extractable Value) attacks including sandwich attacks and front-running.
---
Chat Commands
Protection Settings
/mev Show current protection /mev status Protection status /mev enable Enable protection /mev disable Disable protection
Configure Protection
/mev level aggressive Maximum protection /mev level standard Balanced protection /mev level minimal Basic protection /mev provider flashbots Use Flashbots /mev provider mev-blocker Use MEV Blocker
Check Transaction
/mev check <tx-hash> Check if tx was attacked /mev simulate <order> Simulate MEV risk
---
TypeScript API Reference
Create MEV Protection
import { createMEVProtection } from 'clodds/mev';
const mev = createMEVProtection({
// Default level
level: 'standard',
// Providers
providers: {
ethereum: 'flashbots', // 'flashbots' | 'mev-blocker'
solana: 'jito', // 'jito' | 'standard'
},
// Settings
maxPriorityFee: 5, // gwei
bundleTimeout: 60, // seconds
});Execute Protected Trade
// EVM trade with protection
const result = await mev.executeProtected({
chain: 'ethereum',
type: 'swap',
tokenIn: 'USDC',
tokenOut: 'ETH',
amountIn: 10000,
minAmountOut: calculateMinOut(10000, 0.5), // 0.5% slippage
});
console.log(`Tx hash: ${result.txHash}`);
console.log(`Protected: ${result.protected}`);
console.log(`Bundle ID: ${result.bundleId}`);
console.log(`Savings: $${result.estimatedSavings}`);Flashbots (Ethereum)
// Submit via Flashbots Protect
const result = await mev.flashbots({
to: routerAddress,
data: swapCalldata,
value: 0,
maxFeePerGas: parseGwei('50'),
maxPriorityFeePerGas: parseGwei('2'),
});
console.log(`Submitted to Flashbots`);
console.log(`Bundle hash: ${result.bundleHash}`);
// Wait for inclusion
const status = await mev.waitForInclusion(result.bundleHash);
console.log(`Included in block: ${status.blockNumber}`);MEV Blocker (Ethereum)
// Use MEV Blocker by CoW Protocol
const result = await mev.mevBlocker({
to: routerAddress,
data: swapCalldata,
value: 0,
});
// MEV Blocker automatically:
// - Protects from sandwich attacks
// - Backruns profitable MEV to you
// - Returns any captured MEV
console.log(`MEV captured: $${result.mevCaptured}`);Jito (Solana)
// Submit via Jito bundles
const result = await mev.jito({
instructions: swapInstructions,
tip: 10000, // lamports tip to validators
});
console.log(`Bundle ID: ${result.bundleId}`);
console.log(`Status: ${result.status}`);Check Transaction
// Check if a past transaction was attacked
const analysis = await mev.analyzeTransaction(txHash);
console.log(`Was attacked: ${analysis.wasAttacked}`);
if (analysis.wasAttacked) {
console.log(`Attack type: ${analysis.attackType}`);
console.log(`Attacker: ${analysis.attacker}`);
console.log(`Loss: $${analysis.estimatedLoss}`);
console.log(`Frontrun tx: ${analysis.frontrunTx}`);
console.log(`Backrun tx: ${analysis.backrunTx}`);
}Simulate MEV Risk
// Before trading, check MEV risk
const risk = await mev.simulateRisk({
chain: 'ethereum',
type: 'swap',
tokenIn: 'USDC',
tokenOut: 'PEPE',
amountIn: 50000,
});
console.log(`MEV risk: ${risk.level}`); // 'low' | 'medium' | 'high'
console.log(`Estimated max loss: $${risk.maxLoss}`);
console.log(`Recommendation: ${risk.recommendation}`);
if (risk.level === 'high') {
console.log('โ ๏ธ High MEV risk - use protection!');
}Protection Levels
// Aggressive - maximum protection, slower
mev.setLevel('aggressive', {
usePrivateMempool: true,
bundleOnly: true,
maxSlippage: 0.1,
waitForProtection: true,
});
// Standard - balanced protection
mev.setLevel('standard', {
usePrivateMempool: true,
bundleOnly: false,
maxSlippage: 0.5,
});
// Minimal - basic protection
mev.setLevel('minimal', {
usePrivateMempool: false,
bundleOnly: false,
maxSlippage: 1.0,
});---
MEV Attack Types
| Attack | Description | Protection | |--------|-------------|------------| | **Sandwich** | Front + backrun your trade | Private mempool | | **Front-running** | Copy your trade first | Private mempool | | **Back-running** | Profit after your trade | Jito/Flashbots | | **JIT Liquidity** | Manipulate pool | Slippage limits |
---
Protection Providers
| Chain | Provider | Method | |-------|----------|--------| | **Ethereum** | Flashbots Protect | Private relay | | **Ethereum** | MEV Blocker | CoW Protocol | | **Solana** | Jito | Bundle submission | | **L2s** | Native | Sequencer protection |
---
When to Use Protection
| Trade Size | Token | Recommendation | |------------|-------|----------------| | < $1,000 | Major | Minimal | | $1,000 - $10,000 | Major | Standard | | > $10,000 | Major | Aggressive | | Any size | Meme/Low liquidity | Aggressive |
---
Best Practices
1. **Always protect large trades** โ MEV bots watch everything 2. **Use tight slippage** โ Limits attack profitability 3. **Check before trading** โ Simulate MEV risk 4. **Review transactions** โ Learn from past attacks 5. **L2s are safer** โ Sequencer provides natural protection
Open Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.
Repo: alsk1992/CloddsBot
Other skills on cloddsbot.
- /acp
Enable agent-to-agent commerce with on-chain escrow, cryptographic agreements, and service discovery.
Open skill - /agentbets
AgentBets - AI-native prediction markets on Solana
Open skill - /ai-strategy
AI Strategy - natural language to trades
Open skill - /alerts
Create and manage price alerts for prediction markets
Open skill - /analytics
Performance attribution, trade analytics, and strategy optimization
Open skill - /arbitrage
Automated cross-platform arbitrage detection and monitoring
Open skill

