Bot Titles
POL-FLASH-ARB-V1Performance So Far
POL-FLASH-ARB-V114-Day Profitability Sprint · Next 3 Moves
POL-FLASH-ARB-V1- 01STRATEGIC PIVOT — repurpose the FlashArb contract (0x9159…603A) for Polygon Aave V3 liquidations. The V2/V3 router + Aave V3 flash plumbing is already deployed and working; only the trigger logic changes.WhyPolygon Aave has larger collateral pools and ~5× less liquidator bot density than Base Aave. The proven Base/BSC liquidation pattern (watchlist + forecaster + executor + Aave flash) ports directly. Two-DEX arb on Polygon is dead (saturated by professional searchers); liquidations remain extractable. Same contract, different signal source. If this pivot doesn't produce a first fire in 14 days, the strategic call is clear.Success criterionBy 2026-06-04: Polygon Aave watchlist + forecaster + executor deployed; ≥1 callStatic-pass candidate logged OR a documented "no Polygon Aave HF<1.0 crossed in window" verdict. Either result is decisive.Effort4-6 days (mirror BASE-AAVE-LIQ daemons; reuse FlashArb contract's flash interface).
- 02Renew Polygon RPC access — current Alchemy/QuickNode key returns 401. Provision a fresh key OR run a local Polygon node. Without RPC, every move on this slot is dead.WhyForensic 2026-05-14 confirmed: polygon-rpc.com returns "API key disabled, tenant disabled." Every fire attempt would fail at the executor layer regardless of strategy. This is a precondition for #1 and #3 — without it the bot can't even read state, let alone broadcast.Success criterionBy 2026-05-24: Polygon RPC restored, dashboard balance probes succeed for FlashArb contract (0x9159…603A) and operator wallet (0xEc5Df194).Effort1 hour (provision new Alchemy/QuickNode tier).
- 03FORMAL DECOMMISSION DECISION POINT 2026-06-04. If move #1 (pivot to Polygon Aave) has not produced ≥1 callStatic-pass candidate by then, retire the bot from the flagship row, mark the slot as PERMANENT-DECOM in the Bot Fleet Summary, and reassign the Polygon flagship slot to either (a) PLS-TRI-ARB-V1 promotion to flagship row #5, or (b) the Polygon Aave executor as a NEW bot under a new id (POL-AAVE-LIQ-V1) — not as a revival of POL-FLASH-ARB.Why0 lifetime fires across 60+ days is decisive — the strategy as encoded has no path. Continued flagship status is a credibility liability for the dashboard. Either pivot in 14 days or formally retire; "keeps running but produces nothing" is the worst state to leave it in.Success criterionBy 2026-06-04: bot is either (a) firing as POL-AAVE-LIQ under a fresh strategy id, or (b) marked DECOMMISSIONED on the fleet grid alongside PLS-EMP-SCAN and PLS-PLSX-GRIND.Effort~1 hour (registry edit + Bot Fleet Summary update).
Future Performance Expectations · 7d / 30d / 90d
POL-FLASH-ARB-V1| Window | Net USD | Fires | Tier / state | Shape · what has to happen |
|---|---|---|---|---|
| 7d | $0 | 0 | Strategic decision pending | No code change expected. RPC keys provisioned (Move 2) is the only feasible 7-day action. Decommission DECISION = 2026-06-04. If pivot committed: design work begins for POL-AAVE-LIQ-V1 (new bot id, FlashArb contract repurposed). |
| 30d | Path A: $0 (retired) · Path B: $0-$50 (POL-AAVE-LIQ-V1 first fires) | 0 / 0-3 | Decided | Path A: formally decommissioned, flagship slot reassigned. Path B: POL-AAVE-LIQ-V1 ships, first fires accumulating at BSC-VENUS-LIQ-style pace. Polygon Aave has larger collateral pools and ~5× less bot density than Base Aave, so opportunity surface is real if the build lands. |
| 90d | Path A: $0 · Path B: $300-$1,500 | 0 / 10-40 | Decided · executed | Path A unchanged. Path B: POL-AAVE-LIQ-V1 at steady state. Comparable economics to BSC-VENUS-LIQ but lower competitor density should produce slightly better per-fire net. |
Recent Fire Attempts
POL-FLASH-ARB-V1Token Reverters (24h)
POL-FLASH-ARB-V1Biggest Block
POL-FLASH-ARB-V1Fleet status 2026-05-21: RUNNING · IDLE BY DESIGN. (Re-verified live 2026-05-25.) flash-arb tmux alive, heartbeating fresh (scans 12/window, simAttempts 0). Lifetime 0 on-chain fires. Bot is correctly refusing every signal — the scanner-quoted display spreads collapse to negative round-trips under on-chain validation, exactly as the 2026-04 forensic predicted. CONCLUSION's "kill it" verdict still stands on strategy grounds; runtime status no longer is the issue.
Live data (2026-05-21): polygon-cross-dex-scanner heartbeating normally (polygon_cross_dex 0min). Lifetime ~1.15M signals / 545K alerts captured. Recent display-spread samples remain 1-2% display range — but display, not realized.
Three sub-blocks:
• Strategic call still open. STOPPED_REASONS still labels this UNPROFITABLE. Bot runs but produces zero EV. Either retire the slot or invest in the scanner-side decimals/address fix that's blocking every quote.
• Schema gap, if pointing at polygon-cross-dex-spreads. That ndjson only emits buyReserve0/sellReserve0; the orchestrator needs both reserves for a clean V2 round-trip calc. Either extend the scanner schema or compute the missing leg via on-chain getReserves before sim.
• Router coverage. Scanner finds most spread through QuickSwap V2 + ApeSwap V2 routes; the FlashArb contract at 0x9159…603A only hardcodes Uniswap V3 + Sushi V2 + Balancer V2 + Aave V3 flash. Adding QuickSwap V2 and ApeSwap V2 to V2_ROUTERS unlocks the actual signal source.
Trade log "2 entries" are signal captures from 2026-03-23. Capital path: Aave V3 flash → V2/V3 swap pair → repay+keep, gas via Polygon validator pool at 2× priority multiplier. Bot's actionable surface exists (1.15M lifetime alerts) but every on-chain quote returns net-negative, so the EV gap is real, not operational.
Fantasy
POL-FLASH-ARB-V1If we had a private Polygon relayer (Marlin Block or fastlane.xyz) bundling our flash-arb tx into the validator's priority queue, the 2× priority-gas trick becomes obsolete and we win the race deterministically against public-mempool MEV bots. Marlin and fastlane.xyz both run on Polygon today; both have public APIs. Hours of integration work to swap the existing wallet.sendTransaction for a relayer submission. The payoff in a competitive arb chain isn't modest — Polygon's short block time (~2s) means inclusion order is everything; bots that submit privately routinely beat 2-3× public-priority bidders for arb opportunities measured in the $0.10-$2 range. Could make a marginal strategy (current MIN_PROFIT_USD = $0.03) sustainably profitable.
Suggestions for Improvement
POL-FLASH-ARB-V1- 01CRITICALFix or replace the upstream scanner before restart. Forensic finding 2026-05-14: pre-shutdown tmux log shows hundreds of [QUOTE] lines, every one negative. Display spread 0.5-0.6% → on-chain -0.4 to -1.0% round-trip. WETH/USDC + WMATIC/USDC consistently at -94 to -100% (clear decimals or pool-address mismatch). Restarting the orchestrator without fixing this resumes the zero-fire pattern. Either: (a) debug the scanner that writes dex-arb-signals.ndjson, (b) write a quote-validated successor, or (c) repoint orchestrator at polygon-cross-dex-spreads.ndjson. UPDATE 2026-05-14 assessment: option (c) is NOT a clean drop-in — that source is also stale (last write 2026-05-04), and 95%+ of its spreads route through factories the orchestrator doesn't support (quickV2 + apeswap; orchestrator only has SushiV2). Its 77% pass-rate at >=50bps would be promising IF (i) the scanner is restarted, (ii) QuickSwap V2 + ApeSwap V2 are added to V2_ROUTERS, and (iii) the schema is extended to include both reserves (today only buyReserve0/sellReserve0 are populated). Multi-day rebuild, not one-line repoint.
- 02CRITICALStrategic decision: keep or kill. STOPPED_REASONS tags this UNPROFITABLE; the 2026-04-16 shutdown was likely deliberate after the operator saw the [QUOTE] pattern. Before investing scanner-debug effort, decide: is Polygon flash-arb still worth flagship status, or should it retire and free the slot? The pattern of negative-EV signals suggests either (i) Polygon mempool MEV is too crowded for these size tiers, or (ii) the scanner is using a stale price feed. Both are fixable but require commitment.
- 03HIGHStrategic call: keep or kill. The Polygon Flash Arb is tagged UNPROFITABLE in this file's STOPPED_REASONS table. 0 lifetime on-chain fires; only signal-captures in trade log. Before investing RPC + scanner restart effort, decide: is Polygon worth flagship status, or should it be retired and the slot opened for a different chain? Memory shows Polygon hasn't been touched since 2026-04-16 — operator may have already silently de-prioritized.
- 04HIGHWire the trade log into LIVENESS_PROBES (similar to BASE-AAVE-LIQ fix). Today the dashboard cannot show real fire counts because tradeLog path isn't in the probe table. ~1 line of config; only meaningful once the bot is alive again.
Conclusion
POL-FLASH-ARB-V1Verdict: a flagship in name only. 0 lifetime fires, alive but idle by design — strategy has no measurable edge today. The orchestrator was restarted 2026-05-15 and has been heartbeating ever since (~12 scans/window). Every [QUOTE] line prints negative profit: display spread 0.5-0.6%, on-chain round-trip -0.4 to -1.0%. The bot is correctly refusing to fire. Restarting the daemon was the easy part; the strategic gap is unchanged.
Failure mode #1 — the upstream scanner is selling false spreads. WETH/USDC + WMATIC/USDC consistently posted -94% to -100% on-chain — that's a decimals/address mismatch in the quote generator, not a real spread. Restarting the orchestrator without rewriting that scanner repeats the loss pattern. The proposed pivot to polygon-cross-dex-spreads is also stale (last write 2026-05-04) and uses factories the orchestrator doesn't even support.
Failure mode #2 — the strategic premise has decayed. Polygon's flash-arb opportunity surface in May 2026 is heavily searched. Our $0.03 min-profit floor + 2× priority-gas trick was competitive in 2023; against today's professional searchers it is amateur hour. Even with a fixed scanner, the residual edge is sub-$5/day.
Failure mode #3 — operator time cost. RPC keys expired; scanner rebuild = multi-day rework; private-relayer integration = another multi-day work. To make this bot remotely viable we are talking 1-2 weeks of build for a strategy whose ceiling is low.
Fixable? Technically yes; economically no. Kill it. Retire the flagship slot, free the Polygon brand for a different chain or a different strategy (e.g. Polygon Aave liquidations, which have larger collateral and less bot density). The STOPPED_REASONS table already says UNPROFITABLE — the dashboard should match the truth.
Active Tests & Monitors
POL-FLASH-ARB-V1| Test / Monitor | Started | Key Metric | Decision Criteria |
|---|---|---|---|
| Bot status | 2026-05-15 (relaunch) | tmux flash-arb + bot-heartbeat-polygon_flash_arb.ndjson freshness | Live + heartbeating fresh. 0 fires lifetime — bot is correctly refusing every quote because on-chain round-trip is negative. Idle by design, not by crash. |
| Signal source freshness | 2026-05-15 | mtime of logs/dex-arb-signals.ndjson + heartbeat scans/window | Scanner pipeline alive (~12 scans/heartbeat window). Issue is signal QUALITY, not quantity — display spreads collapse on quote. |
| Trade log | 2026-03-23 → frozen | logs/flash-arb-trades.ndjson line count | 2 entries (2026-03-23). Neither has outcome/txHash/profit_usd — they are signal-capture snapshots, NOT executed trades. 0 lifetime on-chain fires. |
| On-chain quote vs display spread | 2026-05-15 | [QUOTE] line pattern in orchestrator log: display% vs round-trip net% | CURRENT: display 0.5-0.6% → on-chain -0.4 to -1.0%. WETH/USDC + WMATIC/USDC consistently -94% to -100% (decimals/address mismatch in quote generator). Same pattern as pre-shutdown; strategy gap, not infra gap. |
| Polygon competitor density | observed continuously | [COMPETITOR] / [BUMP] entries in orchestrator log | Inert until a quote actually clears the round-trip floor and the bot fires. |
| Contract owner check | 2026-03-25 (deploy) | [OK] Contract owner verified line on each restart | Owner = operator wallet 0xEc5Df194 (shared across chains). No on-chain action since deploy. |
Compromises
POL-FLASH-ARB-V1| Decision | Aggressive ← | Current Position | → Conservative | Notes |
|---|---|---|---|---|
| Bot status (RUNNING · IDLE BY DESIGN) | Reinvest in Polygon · debug quote source | Retire · accept negative-EV verdict | flash-arb tmux alive, heartbeating fresh (scans 12/window). 0 fires lifetime — every quote returns net-negative round-trip. STOPPED_REASONS still tags UNPROFITABLE. Strategic decision pending; status is no longer "stopped." | |
| MIN_SPREAD_PCT (0.25%) | Permissive · catch micro arbs | Strict · only fat spreads | Lowered from 0.40%. With preValidateArb providing on-chain safety net, micro-spreads can fire profitably if gas costs are low. Polygon's ~$0.05 gas + 0.05% Aave fee means break-even is roughly 0.10-0.15%; 0.25% is 60-150% margin. | |
| MIN_PROFIT_USD ($0.03) | Catch dust profits | Only meaningful trades | Lowered 2026-04-20 from $0.10 → $0.03 to capture marginal trades. $0.03 still > realized gas (~$0.01-0.02/tx). Each accepted trade is a non-negative gain by construction. Aggressive but defensible. | |
| FLASH_AMOUNTS_USD = [$100, $50] | Tiny size · safe | Big size · price impact | Reduced from [$500, $250, $100] to keep slippage manageable on thin Polygon pools. $100 max is conservative; raise if profit gates pass consistently and liquidity supports it. | |
| PRIORITY_GAS_MULTIPLIER (2.0×) | Default fee · cheap | Aggressive bid · win race | 2× median priority. Polygon validator pool ranks by priority fee. Costs ~$0.01 extra per tx. Push to 3× if losing races; drop to 1.5× if mempool thinned. | |
| Quote surface (4 DEXes) | Few sources · simple, fast | Many sources · max coverage | Quotes from Uniswap V3 + QuickSwap V3 (Algebra) + SushiSwap V2 + Balancer V2 Vault. Swaap was removed (empty pools). Adding Curve / Velodrome / Retro adds quoting cost but more arb candidates. | |
| Execution surface (V2/V3 routers only) | Same as quote · all execute | Subset · contract constraint | FlashArb contract dispatches only Uniswap V3 ISwapRouter shape + V2 router. Balancer pool-ID and Algebra-V3 ABIs aren't supported; their opportunities log to validation-only. Contract upgrade unlocks ~30% more pair coverage. | |
| Borrow assets (3 stables) | One token · simple | Many · max coverage | USDC.e + USDT + USDC. Aave V3 charges 0.05% flat fee per flash; choice between stables doesn't affect cost — picks based on which asset is on each leg of the round-trip. | |
| Aggressive priority | Conservative bid | Always 2× | Adds $0.01 per tx. On a $0.03 min-profit floor, that's 33% gas burden — acceptable for landing rate but tight if landing rate is poor. | |
| Polygon RPC stack (expired keys) | Self-hosted node · no quota | Free public RPCs · rate-limited | Currently 401 on polygon-rpc.com ("API key disabled, tenant disabled"). drpc.org + publicnode + others likely similar. Mid-term: get an Alchemy/QuickNode key. Long-term: run an own Polygon node if volume justifies. | |
| Rate limit (MAX_TRADES_PER_HOUR = 10) | Strict cap | Uncapped | Inert today (0 fires). Was set as standard fleet cap. | |
| Capital sourcing (Aave flash) | Self-funded pool | Always flash | Contract holds no balance — every trade flash-borrows + 0.05% fee. Same pattern as Base + BSC liquidation bots. |
Parameters
POL-FLASH-ARB-V1| Parameter | Value | Reasoning | Potential Adjustment(s) |
|---|---|---|---|
| MIN_SPREAD_PCT | 0.25% | Lowered from 0.40%. With on-chain preValidateArb safety check, micro-spreads can still be profitable. Break-even is roughly 0.10-0.15% on Polygon. | Tighten back to 0.40% if landing rate drops or sim-revert pollution increases. Loosen to 0.15% only after 20+ clean fires. |
| MIN_PROFIT_USD | $0.03 | Lowered 2026-04-20 from $0.10. Still > realized gas (~$0.01-0.02 on Polygon). Aggressive but every accepted trade is a guaranteed non-negative gain. | Raise to $0.10-$0.25 once landings prove the bot is winning races and capital is being recycled. |
| FLASH_AMOUNTS_USD | [$100, $50] | Reduced from [$500, $250, $100]. Smaller sizes mean less price impact on thin Polygon pools. | Raise to [$250, $100] after liquidity-depth data confirms top pairs can absorb $250 without > 0.1% slippage. |
| AAVE_FEE_PCT | 0.05% | Aave V3 flash-loan fee (fixed by protocol). Subtracted from expected gross to compute minProfit. | Not tunable. |
| GAS_ESTIMATE_USD | $0.05 | Static estimate used in profit gates. Polygon gas is volatile (10-50 gwei base + priority). | Replace with a live oracle (gasNow / Blocknative) once landings warrant the fidelity. $0.05 is conservative — real costs run $0.01-0.03 typically. |
| PRIORITY_GAS_MULTIPLIER | 2.0× | Multiplier on maxPriorityFeePerGas. Polygon validator pool ranks by priority. Costs ~$0.01 extra per tx. | Raise to 3× if losing races. Drop to 1.5× if mempool thinned. |
| MAX_TRADES_PER_HOUR | 10 | Standard fleet cap. Inert today (0 fires). | Raise to 25-50 if bot revives and demand justifies. Drop to 5 for safer ramp. |
| SIGNAL_MAX_AGE_MS | 30000 | Reject signals older than 30s. Polygon blocks ~2s — 30s spans ~15 blocks of state drift. | Tighten to 10-15s once landings prove pipeline is fast. Loose value today reflects signal scarcity. |
| POLL_INTERVAL_MS | 5000 | Orchestrator tails dex-arb-signals.ndjson every 5s. | Lower to 2s for tighter signal-to-fire latency if upstream scanner cadence increases. |
| BORROW_ASSETS | USDC.e / USDT / USDC | 3 stables. Aave fee is asset-independent; choice depends on which token is on each leg of the round-trip. | Add WMATIC or WETH for non-stable arbs once contract supports more router shapes. |
| RPC_FAIL_THRESHOLD | 5 (consecutive) | After 5 consecutive RPC failures, rotate to next in POLYGON_RPCS list. | No tuning — rotation list itself is what matters. Currently every entry returns 401. |
| V3_QUOTER_MAP | UniswapV3 + QuickSwap | Uniswap V3 quoter at 0xb273…5AB6, QuickSwap (Algebra) quoter at 0xa15F…FC89. Algebra returns (amountOut, fee) tuple — different shape than Uniswap. | Add more V3 routers (Retro, Apeswap if they're still alive on Polygon). |
| FlashArb contract | 0x9159125640F1AC1EA0Fddb8a11bdde3a22E5603A | Deployed 2026-03-25. Aave V3 PoolAddressesProvider implicit. Owner = operator wallet 0xEc5Df194. | Redeploy needed to add Balancer V2 + Swaap execution support (today they're quote-only — see Compromises). |
| Circuit breaker | Inherited from lib/circuit-breaker | Strategy = polygon_flash_arb. Standard 3-loss / 1h halt. | No tuning needed today (0 fires). |
Revisions
POL-FLASH-ARB-V1| Revision | Summary |
|---|---|
| V1 (launch) | 2026-03-25 — FlashArb deployed on Polygon at 0x9159…603A. Aave V3 flash-loan + V2/V3 swap pair + repay. Hardcoded UniV3 + SushiV2 router shapes; Balancer V2 quote-only. |
| V1.1 | 2026-04-20 — MIN_PROFIT_USD lowered $0.10 → $0.03 to capture marginal trades. |
| V1.2 | 2026-04-16 → 2026-05-15 — Daemon dormant. Forensic of pre-shutdown logs showed every [QUOTE] line negative-EV; STOPPED_REASONS tagged UNPROFITABLE. |
| V1.3 (CURRENT) current | 2026-05-15 — Daemon relaunched. Heartbeating fresh, 0 fires — bot is correctly refusing every quote because on-chain round-trip remains negative. Strategic call pending: retire or invest in scanner quote-quality fix. |