Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when creating, validating, backtesting, deploying, sizing, or troubleshooting Aerodrome/Base spot trading strategies through the Superior Trade API, especially Freqtrade configs using exchange.name "aerodrome", AERO/USDC or CHECK/USDC pairs, AMM market swaps, wallet/gas balance checks, no-orderbook pricing, or Aerodrome live deployment safety.
.claude/skills/superior-trade-aerodrome/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 74% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 110% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 99% | 0% |
Use this skill only for Aerodrome trading on Base through Superior Trade. Aerodrome is spot-only AMM swap execution: no futures, no margin, no shorting, no leverage, no sub-accounts, and no order book.
https://api.superior.tradex-api-key: $SUPERIOR_TRADE_API_KEYhttps://mainnet.base.orgWhen behavior is unclear, inspect these local sources before answering:
https://api.superior.tradeexchange.name: "aerodrome".AERO/USDC and CHECK/USDC. Never use :USDC.trading_mode, or set it to "spot" only.margin_mode, leverage, short entries, or futures fields.entry_pricing.use_order_book: false and exit_pricing.use_order_book: false.self.dp.orderbook(), fetch_order_book, fetch_l2_order_book, or order-book depth checks in strategy code.stake_amount. Avoid "unlimited" unless the user explicitly accepts balance exhaustion risk.https://mainnet.base.org for exchange.ccxt_config.options.rpcUrl unless the user explicitly provides another Base RPC.Aerodrome live trading depends heavily on the Base wallet balances because every order is an on-chain swap.
Before live deployment or when troubleshooting zero trades:
AERO/USDC.stake_amount * max_open_trades below free quote balance and leave room for AMM slippage, token fees, and gas. Prefer 70-90% of available quote balance, lower for small wallets.Important distinction: Aerodrome uses Base wallet balances directly for on-chain swaps. Do not apply external exchange account rules here.
Hard-code these Aerodrome/Base market definitions when configuring exchange.ccxt_config.options.markets:
| Symbol | Base address | Base decimals | Quote address | Quote decimals | Pool address | Stable | | --- | --- | ---: | --- | ---: | --- | --- | | AERO/USDC | 0x940181a94A35A4569E4529A3CDfB74e38FD98631 | 18 | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 | 6 | 0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d | false | | CHECK/USDC | 0x9126236476eFBA9Ad8aB77855c60eB5BF37586Eb | 18 | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 | 6 | 0x6a4BeFa1337865071E27c62dc9d7E3bCa253cE0f | false |
Backtesting data is available for both supported pairs on 5m, 15m, 1h, 4h, and 1d.
Start from this shape and only change pair_whitelist, timeframe, stake, and strategy parameters. Keep the hard-coded supported markets and no-orderbook fields.
json{ "exchange": { "name": "aerodrome", "pair_whitelist": ["AERO/USDC"], "ccxt_config": { "options": { "rpcUrl": "https://mainnet.base.org", "markets": [ { "symbol": "AERO/USDC", "baseAddress": "0x940181a94A35A4569E4529A3CDfB74e38FD98631", "baseDecimals": 18, "quoteAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "quoteDecimals": 6, "poolAddress": "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d", "stable": false }, { "symbol": "CHECK/USDC", "baseAddress": "0x9126236476eFBA9Ad8aB77855c60eB5BF37586Eb", "baseDecimals": 18, "quoteAddress": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "quoteDecimals": 6, "poolAddress": "0x6a4BeFa1337865071E27c62dc9d7E3bCa253cE0f", "stable": false } ] } } }, "stake_currency": "USDC", "stake_amount": 10, "max_open_trades": 1, "timeframe": "5m", "stoploss": -0.1, "minimal_roi": { "0": 0.05 }, "order_types": { "entry": "market", "exit": "market", "force_entry": "market", "force_exit": "market", "emergency_exit": "market", "stoploss": "market", "stoploss_on_exchange": false }, "entry_pricing": { "price_side": "other", "use_order_book": false }, "exit_pricing": { "price_side": "other", "use_order_book": false }, "pairlists": [{ "method": "StaticPairList" }] }
Notes:
stake_currency must appear in the configured markets. For AERO/USDC, use USDC.trading_min_order_amount only when the strategy needs an explicit minimum; the API pads Aerodrome configs to 1 when omitted.dry_run, initial_state, api_server, walletAddress, privateKey, wallet_address, or private_key.ccxt_async_config is usually unnecessary for Aerodrome authoring unless current API tests show otherwise.GET https://api.superior.trade/v2/backtesting-data/aerodrome?pair=AERO/USDC&timeframe=5m.POST https://api.superior.trade/v2/backtesting using { "config": {}, "code": "...", "timerange": { "start": "YYYY-MM-DD", "end": "YYYY-MM-DD" } }.PUT https://api.superior.trade/v2/backtesting/{id}/status and { "action": "start" }.GET https://api.superior.trade/v2/backtesting/{id}/status until completed or failed.GET https://api.superior.trade/v2/backtesting/{id} and inspect result_url for full metrics.Do not offer live deployment after a zero-trade backtest unless the user explicitly wants to debug live behavior.
POST https://api.superior.trade/v2/deployment using Aerodrome config and strategy code.POST https://api.superior.trade/v2/deployment/{id}/credentials with {"exchange":"aerodrome"}.api/src/routes/credentials-v2.ts, api/src/routes/deployment.ts, and OpenAPI before proceeding. Do not ask the user for private keys unless the live API explicitly requires that legacy flow.PATCH https://api.superior.trade/v2/deployment/{id}/status and { "action": "start" }.GET https://api.superior.trade/v2/deployment/{id}/status and GET https://api.superior.trade/v2/deployment/{id}/logs.PATCH https://api.superior.trade/v2/deployment/{id}/status and { "action": "stop" }.margin_mode, leverage, shorting, or :USDC pair suffix.entry_pricing.use_order_book and exit_pricing.use_order_book are false.stake_amount is numeric and fits wallet balances with gas/slippage buffer.Use this confirmation format:
textDeployment Summary: - Exchange: aerodrome on Base - Trading mode: spot only - Pair: [pair] - Stake amount: [amount] [stake_currency] per trade - Max open trades: [n] - Stoploss: [percentage] - Order execution: AMM market swaps, no orderbook - Wallet balance checked: [yes/no, source] - Base ETH gas checked: [yes/no, source] This will trade with real funds. Proceed? (yes/no)
Load on demand.
| Read | When | | --- | --- | | references/api.md | You need endpoint shapes or a complete AERO/USDC backtest payload. | | references/strategy-template.md | You are writing or adapting the strategy code. | | references/troubleshooting.md | A swap failed, gas is short, or a deployment trades zero times. |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 22,763 | 16,729 | -27% | 1 | 1 | 0% | 3,641 | 5,492 | +51% | 0 | 0 | — |
case-02 | fail→pass | 30,175 | 16,571 | -45% | 1 | 1 | 0% | 4,618 | 6,923 | +50% | 0 | 0 | — |
case-03 | fail→fail | 12,201 | 19,957 | +64% | 1 | 1 | 0% | 1,881 | 4,385 | +133% | 0 | 0 | — |
case-04 | fail→pass | 20,629 | 10,196 | -51% | 1 | 1 | 0% | 3,033 | 5,271 | +74% | 0 | 0 | — |
case-05 | pass→pass | 10,297 | 4,995 | -51% | 1 | 1 | 0% | 1,409 | 3,518 | +150% | 0 | 0 | — |
case-06 | fail→pass | 20,569 | 5,648 | -73% | 1 | 1 | 0% | 1,895 | 3,988 | +110% | 0 | 0 | — |
case-07 | pass→pass | 8,578 | 3,357 | -61% | 1 | 1 | 0% | 1,381 | 3,448 | +150% | 0 | 0 | — |
case-08 | fail→pass | 14,523 | 10,472 | -28% | 1 | 1 | 0% | 2,117 | 4,214 | +99% | 0 | 0 | — |
case-09 | fail→pass | 16,460 | 8,494 | -48% | 1 | 1 | 0% | 2,763 | 4,061 | +47% | 0 | 0 | — |
case-10 | pass→pass | 15,111 | 5,444 | -64% | 1 | 1 | 0% | 1,922 | 3,520 | +83% | 0 | 0 | — |
case-11 | pass→pass | 13,790 | 7,220 | -48% | 1 | 1 | 0% | 1,708 | 3,795 | +122% | 0 | 0 | — |
case-12 | pass→pass | 13,891 | 8,362 | -40% | 1 | 1 | 0% | 2,049 | 4,223 | +106% | 0 | 0 | — |
case-13 | pass→pass | 13,509 | 6,007 | -56% | 1 | 1 | 0% | 2,550 | 3,790 | +49% | 0 | 0 | — |
case-14 | fail→pass | 11,422 | 2,623 | -77% | 1 | 1 | 0% | 1,938 | 3,285 | +70% | 0 | 0 | — |
case-15 | fail→pass | 10,719 | 4,440 | -59% | 1 | 1 | 0% | 1,503 | 3,466 | +131% | 0 | 0 | — |
case-16 | pass→pass | 11,502 | 3,270 | -72% | 1 | 1 | 0% | 1,599 | 3,422 | +114% | 0 | 0 | — |
case-17 | pass→pass | 21,143 | 7,087 | -66% | 1 | 1 | 0% | 2,901 | 3,788 | +31% | 0 | 0 | — |
case-18 | fail→pass | 8,308 | 9,863 | +19% | 1 | 1 | 0% | 1,271 | 4,733 | +272% | 0 | 0 | — |
case-19 | fail→pass | 16,417 | 10,438 | -36% | 1 | 1 | 0% | 2,442 | 4,704 | +93% | 0 | 0 | — |
case-20 | fail→pass | 87,676 | 5,322 | -94% | 1 | 1 | 0% | 2,994 | 3,480 | +16% | 0 | 0 | — |
case-21 | pass→pass | 22,663 | 17,350 | -23% | 1 | 1 | 0% | 4,585 | 5,935 | +29% | 0 | 0 | — |
case-22 | pass→pass | 18,503 | 10,290 | -44% | 1 | 1 | 0% | 2,402 | 4,633 | +93% | 0 | 0 | — |
case-23 | pass→pass | 16,345 | 13,161 | -19% | 1 | 1 | 0% | 3,009 | 4,934 | +64% | 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. 23 cases were attempted. The headline lift of +48 percentage points is the difference between those two pass rates over the 23 comparable cases.
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.