Wick Crypto Engine
arrow_back Back to Bot Fleet Bot Detail · Prototype

Bot Titles

PLS-EMP-SCAN-V1
radar
PLS-EMP-SCAN-V1 PLS UNKNOWN
EmpSeal Scanner · Empseal Agg Oracle
contract 0x03E2...6D66
Cross-DEX arb scanner using the EmpSeal aggregator router as a price oracle. Polls EmpSeal's queryAdapter() across 10 DEX adapters per scan cycle, finds the highest-spread cross-adapter discrepancy per token, and attempts a 2-hop atomic arb via PulseAtomicArb (0% fee direct pair) with a fallback to EmpSeal's swapNoSplit emergencyCall (0.09% fee). Lifetime active 2026-04-07 → 2026-04-21 (14 days). Currently shelved (no tmux session, last log entry 2026-04-21T14:53Z). The strategy never landed a single net-positive trade — see Conclusion below for the post-mortem.

Performance So Far

PLS-EMP-SCAN-V1
Execution Funnel — no pipeline activity in the last 24h for this bot.
Net P&L (USD)
+$0.00
Wins
0
Losses
0
Total Trades
0
Win Rate
—
Gas Spent
—
Contract Balance
—
Pool of funds accessed by multiple bots (PLS-MEM-BACKRUN-V1, PLS-TRI-ARB-V1, PLS-MHOP-ARB-V1)

Recent Fire Attempts

PLS-EMP-SCAN-V1
no recent fire
no recent fire
no recent fire
no recent fire
no recent fire
no recent fire
no recent fire
Last 7 TX_SEND events (newest left). Outcome stitched from log within ~80-line window after broadcast. Empty boxes = no recent fire to show.

Token Reverters (24h)

PLS-EMP-SCAN-V1
No on-chain reverts in last 24h.
White / black lists are located at /bots/PLStokens.

Biggest Block

PLS-EMP-SCAN-V1

CURRENT WALL: the strategy is structurally non-viable in its current form. There is no incremental fix that flips the win curve from 0/5306 to any-positive sample. The oracle-driven thesis cannot be patched — the speed-of-execution gap to the underlying pools (where every other bot operates) is too wide. Restarting under the same architecture would resume the same 0% pattern at the same gas cost.

Sub-wall: the bot is also operationally retired — no tmux session since 2026-04-21, no process running. Formally Decommissioned 2026-05-21 on the fleet grid (alongside PLS-PLSX-GRIND-V1), promoted from Paused after the dedicated-page postmortem stood for 30+ days unchanged. Restoring it requires a tmux launch + sentinel-grade slowness assumption + acceptance of the gas burn. None of those are net-positive moves. Until/unless the strategy is rewritten around a mempool feed (in which case it's a different bot), this row stays Decommissioned; the postmortem in pulsechain/notes/pulse-empseal-postmortem.md is the canonical "do not resurrect" reference.

Fantasy

PLS-EMP-SCAN-V1
If we had some way to...

If we had a direct subscription to every relevant DEX pool's Swap event on PulseChain (instead of round-tripping through EmpSeal's queryAdapter), we'd see liquidity moves at block-time instead of oracle-poll-time, and our spread detection would be at parity with the bots that actually win these races. Closest real-world thing: pulse-sentinel already peers with 25 PulseChain nodes via devp2p and exposes mempool subscriptions at ws://127.0.0.1:9876. Subscribing the empseal scanner to per-pool Swap logs + mempool pending-trade signals (instead of polling queryAdapter) would close the latency gap. But that's a different bot — same input (cross-DEX spread) wired through a different signal path. Worth doing as a NEW bot; not worth rebuilding empseal in place.

Suggestions for Improvement

PLS-EMP-SCAN-V1
  • 01
    CRITICAL
    Do not redeploy. The 5,306 / 0 sample is decisive; the strategy as encoded has no edge. Any "improvement" to the existing scanner is a sunk-cost fallacy. Archive logs/pulse-empseal-trades.ndjson and remove the bot from active rotation if not already.
  • 02
    HIGH
    Salvage the lessons, not the bot. EmpSeal as a price source is fine — but only as an INPUT to a mempool-aware executor, not as the trigger. Fold the use case into backrun-exec (event-triggered) or tri-backrun (block-aware) — both already operate closer to the venue than queryAdapter() can.
  • 03
    HIGH
    Disable the 11+ L0/L1/L4/L8 decomposer scripts that exist purely to RCA this dead bot every cycle. They consume LLM context + CPU on a permanently-shelved target. List in pulsechain/notes/pulse-empseal-postmortem.md.

Conclusion

PLS-EMP-SCAN-V1

Verdict: 14 days, 5,306 attempts, 0 wins ever, −574K WPLS. Strategy never had edge. Currently shelved; recommend permanent decommission. Active 2026-04-07 → 2026-04-21. The thesis (EmpSeal aggregator as a price-discrepancy oracle) was empirically falsified by the operating data: 4,257 sim-fails (80%) + 1,049 thin (20%) = zero net-positive trades across the entire lifespan.

Failure mode #1 — the oracle was always slower than the venue. EmpSeal's queryAdapter() reads from the same pools we'd execute against, with at least one round-trip of latency. By the time the bot consumes the quote, parses it, sims, and submits, the spread either (a) has been claimed by a competitor with direct pool subscriptions or (b) drifted in normal pool state. Top revert reasons confirm the pattern: 2,265 "call failed" + 1,988 InsufficientProfit reverts — the contract's minProfit guard rejecting because actual output dropped below the encoded floor between sim and execution. Same disease as Monad cross-agg's "Return amount is not enough", same fix-class: only solvable by being closer to the venue than the oracle is.

Failure mode #2 — the addressable universe collapsed to zero. Final 9 scans (2026-04-21 14:51–14:53) show signals=0 / sim=0/0 / blacklisted=9. By end-of-life the bot was scanning 17 tokens × 10 adapters per cycle with 9 tokens already self-blacklisted, and producing zero signals for 5 consecutive cycles. The strategy effectively ran out of pairs it was willing to attempt before it ran out of capital.

Failure mode #3 — gas burned without ROI. 714,794 PLS lifetime gas spent (~$5–6 at PLS prices over the period) for zero return. That gas was paid on simulation overhead + the few sims that reached on-chain revert. Every additional day the bot ran was strictly negative.

Fixable? No — not as encoded. The decommission verdict stands. Replacing EmpSeal-as-oracle with mempool intel is a different bot (use backrun-exec / tri-backrun, which already do that). Tightening minOut, smaller bet sizes, more adapters — all bandaids on a strategy where the input signal is structurally too slow. The lesson kept from this bot: whenever a bot's signal source isn't the execution venue itself, you have a sim-vs-live gap that scales with latency. The bot itself, no. See pulsechain/notes/pulse-empseal-postmortem.md for the full forensic.

---

## Theoretical resurrection paths — and why none are "resurrection"

Every plausible path either turns it into a different bot, depends on something outside our control, or reduces it to a passive logger.

1. Rewire signal source: polling → mempool + pool Swap events. The only path with a realistic edge. But it's a complete rewrite — different daemon, different code, different state machine. EmpSeal contracts get used only as a fallback execution route. That's backrun-exec / tri-backrun v2, not empseal v2.

2. Repurpose EmpSeal's 10-adapter queryAdapter as INTEL, not as a TRIGGER. Run a stripped-down empseal cycle as a price-snapshot service: every cycle writes JSON of "cross-DEX gaps detected." Feed that into tri-backrun so when mempool sees a victim trade on token X, it already knows the current cross-DEX gap before pricing the arb. Genuinely useful and the lowest-cost way to recover value from the codebase. ~1 day of work. Not resurrection — empseal becomes a library, not a bot. This is the recommended salvage path.

3. Private mempool / Flashbots-style bundles on PulseChain. Would close the sim→land latency gap by atomically including the trigger and the arb. Doesn't exist on PulseChain today. If pulse-sentinel adds bundle submission (it has the relay infrastructure), revisit. Not actionable now.

4. Market structure shift — competition collapses. Wins would resume only if we're the only bot left running this surface. Counterfactual; not a strategy.

5. Different output thesis: empseal-detected spreads → momentum signal, not arb. "When 9X price diverges from PulseX V2 by >X bps, token Y is about to move." Feed into a directional bot. Untested hypothesis — would need 30+ days of backtest data; the existing trade log doesn't have the right shape (logs sim_fail / thin, not "did the token move in the next 30s").

Recommendation: Path 2 (intel-not-trigger). Path 1 is the "right" rewrite but a week of work for unproven uplift over tri-backrun, which already does the mempool-trigger thing. Paths 3–5 are theoretical. Don't restart the daemon. If we want to recover value: extract queryAdapter calling code into lib/empseal-quoter.js and let tri-backrun consume it. The daemon stays decommissioned.

Decommission status: PERMANENT as of 2026-05-19. The bot's place in the fleet is the Decommissioned row of the Bot Fleet Summary, not the active rotation.

Active Tests & Monitors

PLS-EMP-SCAN-V1
Test / MonitorStartedKey MetricDecision Criteria
Bot status (DEAD — no tmux since 2026-04-21)2026-04-21T14:53Ztmux has-session -t empseal-scanner + mtime of pulse-empseal-scanner.logBoth confirm dead. The bot has not run for ~28+ days. No restart planned per Decommissioned verdict. Monitor only for stray restart attempts.
Trade-log freshness2026-04-21tail mtime of logs/pulse-empseal-trades.ndjsonFrozen at 2026-04-21T14:48 with 5,306 entries. Any new entry would indicate a manual restart against the postmortem.
Self-blacklist count2026-04-19 (final week)[SCAN] blacklisted=X count in scanner logEnd-of-life value: 9 of 17 tokens. The bot was shrinking its addressable universe before stopping; nothing to monitor going forward.
L0-L8 decomposer cycle cost2026-04-21 (post-stop)Per-cycle LLM cost of empseal-specific scripts (11+ found in scripts/ dir)✅ COMPLETE 2026-05-19 — Two-layer disable shipped: (a) lib/auto-improve-exclusions.js EXCLUDED.pulse_empseal entry; (b) every l0/l1/l3/l4/l8-empseal-*.js script has an early-exit guard on line 2 that returns immediately when the exclusion is active. Scripts also removed from green-scan registry (crypto-dashboard.js ~line 10870). Verified 2026-05-27 still in effect. Zero ongoing LLM cost.

Compromises

PLS-EMP-SCAN-V1
DecisionAggressive ←Current Position→ ConservativeNotes
Signal source (aggregator queryAdapter vs mempool subscription)
Mempool/event subscription · venue-time signals
EmpSeal queryAdapter polling · oracle-time signals
The strategy was hard-coded to oracle polling. Latency to underlying pools was non-negotiable in this architecture — every spread the bot saw was already stale by sim-time. This was THE structural compromise that killed the bot.
Execution path (PulseAtomicArb vs EmpSeal swapNoSplit)
PulseAtomicArb · 0% fee, direct pair
EmpSeal swapNoSplit · 0.09% fee, fallback
Bot tried atomic first then fell back to swapNoSplit. Atomic's 0% fee was the intended winning leg; fallback was admission the atomic path failed. In practice both paths reverted at sim — the fee structure was never the binding constraint.
Blacklist policy (auto-add after 1 sim-fail vs N)
Aggressive auto-blacklist · shrink universe fast
Lenient · keep retrying
Bot self-blacklisted 9 tokens out of 17 by end-of-life. The aggressive policy was correct given the strategy never won — but it accelerated the bot toward universe=0 instead of letting us see structural failure earlier.
Live-only mode (no paper)
Strict live · pay real gas to learn
Paper-first · cheap data
LIVE_MODE = true hardcoded 2026-04-17 per board directive. Bot paid 714,794 PLS in gas to prove 0/5306. Paper would have produced the same conclusion at near-zero cost.
Adapter universe (10 fixed DEXes)
Static 10-adapter list · simple
Dynamic · all routable DEXes
Bot polled EmpSeal's exposed 10 adapters. Wider coverage was structurally available via EmpSeal's full route set but never wired. Moot given strategy failed at sim-time — more adapters would just have produced more stale signals.

Parameters

PLS-EMP-SCAN-V1
ParameterValueReasoningPotential Adjustment(s)
StatusDECOMMISSIONED (paused per Trevor 2026-05-19)No tmux, no process, no trade-log writes since 2026-04-21. Postmortem at pulsechain/notes/pulse-empseal-postmortem.md.Do not adjust — strategy archived.
ADAPTERS10 (EmpSeal queryAdapter)Hardcoded set: PulseX V1/V2, 9inch, 9mm V2/V3, EmpSeal internal, plus 4 others. Polled each scan cycle.No tuning value — strategy decommissioned.
SCAN_INTERVAL_MS~3500 ms (observed median)~24 scan cycles/minute when alive. Final log shows cycle times of 3530-3585 ms.N/A — bot stopped.
TOKENS_PER_SCAN17 (end-of-life)Live token universe at last scan. Universe shrank as auto-blacklist self-removed losers (9 blacklisted at end-of-life).N/A.
BLACKLIST_THRESHOLDaggressive (auto-add after low N sim-fails)Bot self-blacklisted 9 of 17 tokens by end-of-life. Aggressive policy was correct given 0/5306 hit rate.N/A.
EXECUTION_PATH_PRIMARYPulseAtomicArb (0% fee)Direct pair atomic via PulseAtomicArb (0x03E2...6D66, deployed 2026-04-10 per contracts/pulse-atomic-arb-address.json). Intended winning leg during the bot lifetime. Never landed a net-positive in 5,306 attempts.N/A.
EXECUTION_PATH_FALLBACKEmpSeal swapNoSplit emergencyCall (0.09% fee)Fallback when atomic path rejected the route shape. Also never landed.N/A.
LIVE_MODEtrue (paper mode removed 2026-04-17)Board directive: live-only, no paper. Bot paid 714,794 PLS in lifetime gas to prove the 0/5306 result. In hindsight, paper would have been cheaper for the same conclusion.N/A.

Revisions

PLS-EMP-SCAN-V1
RevisionSummary
V1.0 (launch)2026-04-07 launch — EmpSeal queryAdapter as price oracle across 10 DEX adapters, 2-hop atomic execution via PulseAtomicArb (0% fee) with EmpSeal swapNoSplit emergencyCall (0.09%) fallback. Live-only from day one.
V1.1Auto-blacklist policy added: tokens accumulating low-N sim-fails get pruned from the live universe. End-of-life the bot blacklisted 9 of 17 tokens — aggressive policy was correct given the 0/5306 hit rate.
V1.2Tightened MIN_NET_WPLS floor after 1,049 candidates classified `thin` (sim passed but profit below floor); raising the floor only increased the thin-skip rate, did not produce wins.
V1.3 (FINAL)2026-04-21 14:53 UTC — last trade-log write. Bot stopped passively (no tmux, no process). 5,306 attempts produced 4,257 sim_fail (80%) + 1,049 thin (20%) + 0 net-positive trades. Lifetime −574,672 PLS realized loss on 714,794 PLS gas. Strategy empirically falsified.
DECOMMISSIONED 2026-05-19 currentPostmortem authored (pulsechain/notes/pulse-empseal-postmortem.md) after the L3 wins-only classifier fix exposed the true rank (#10, compositeScore 12). Root cause: EmpSeal queryAdapter is a stale oracle — by the time the bot quoted-sim-built-submitted, the spread had already evaporated. Recommendation: do not resurrect; reclaim the 11 L0-L8 RCA scripts dedicated to this dead bot.
RPC: connected
Scanner: 193d 18h 42m uptime
687,559 events indexed
WICK_CRYPTO_ENGINE // Built by Green Wick AI