diff --git a/tools/push3-evolution/seeds/evo_run007_champion.push3 b/tools/push3-evolution/seeds/evo_run007_champion.push3 new file mode 100644 index 0000000..cb6beba --- /dev/null +++ b/tools/push3-evolution/seeds/evo_run007_champion.push3 @@ -0,0 +1 @@ +( PERCENTAGESTAKED DYADIC.DEFINE TAXRATE DYADIC.POP DYADIC.POP DYADIC.POP DYADIC.POP DYADIC.POP DYADIC.POP PERCENTAGESTAKED 100 DYADIC.* 1000000000000000000 DYADIC./ STAKED DYADIC.DEFINE STAKED 88 DYADIC.> EXEC.IF ( ) 0 DYADIC.POP ( 200000000000000000 153 200000000000000000 0 ) ) diff --git a/tools/push3-evolution/seeds/llm_contrarian.push3 b/tools/push3-evolution/seeds/llm_contrarian.push3 new file mode 100644 index 0000000..1116963 --- /dev/null +++ b/tools/push3-evolution/seeds/llm_contrarian.push3 @@ -0,0 +1,98 @@ +;; Contrarian Optimizer — Push3 seed +;; +;; Philosophy: "when everyone is bullish, prepare for the crash." +;; +;; Inputs on DYADIC stack (slot 0 on top, slot 7 at bottom): +;; [0] percentageStaked (0 to 1e18, where 1e18 = 100%) +;; [1] averageTaxRate (0 to 1e18, normalized) +;; [2-7] reserved/future (0 if unavailable) +;; +;; Outputs (top to bottom on termination): +;; ci = 0 always (contrarian on positions, not floor) +;; anchorShare (0..1e18) +;; anchorWidth (tick units) +;; discoveryDepth (0..1e18) +;; +;; Logic: +;; stakedPct = percentageStaked * 100 / 1e18 (0-100) +;; taxHigh = averageTaxRate >= 1e17 (>= 10% = expect mean reversion) +;; +;; stakedPct >= 50 (bullish crowd) → defensive: +;; taxHigh → VERY DEFENSIVE: CI=0, AS=0.15e18, AW=15, DD=0.10e18 +;; else → DEFENSIVE: CI=0, AS=0.25e18, AW=25, DD=0.20e18 +;; +;; stakedPct < 50 (bearish crowd) → aggressive: +;; taxHigh → VERY AGGRESSIVE: CI=0, AS=0.85e18, AW=250, DD=0.85e18 +;; else → AGGRESSIVE: CI=0, AS=0.70e18, AW=150, DD=0.70e18 + +( + ;; Step 1: Bind slot 0 (top) to PERCENTAGESTAKED, slot 1 to TAXRATE. + PERCENTAGESTAKED DYADIC.DEFINE + ;; Stack: [slot7(bot), slot6, slot5, slot4, slot3, slot2, slot1(top)] + TAXRATE DYADIC.DEFINE + ;; Stack: [slot7(bot), slot6, slot5, slot4, slot3, slot2(top)] + + ;; Step 2: Discard unused inputs (slots 2-7) — 6 pops. + DYADIC.POP + DYADIC.POP + DYADIC.POP + DYADIC.POP + DYADIC.POP + DYADIC.POP + ;; Stack: [] + + ;; Step 3: Compute stakedPct = percentageStaked * 100 / 1e18 (integer 0..100) + PERCENTAGESTAKED + 100 DYADIC.* + 1000000000000000000 DYADIC./ + STAKED DYADIC.DEFINE + ;; Stack: [] + + ;; Step 4: stakedPct >= 50? (majority bullish = contrarian sell signal) + STAKED 50 DYADIC.>= + ;; bool_stack: [stakedPct >= 50] + + EXEC.IF + + ;; TRUE branch: bullish crowd → go defensive + ( + ;; Tax high (>= 10%) means volatile / mean-reversion expected → extra defensive + TAXRATE 100000000000000000 DYADIC.>= + EXEC.IF + ;; VERY DEFENSIVE: floor-heavy, narrow anchor, minimal discovery + ( + 100000000000000000 + 15 + 150000000000000000 + 0 + ) + ;; DEFENSIVE: modest floor bias, narrow-ish anchor + ( + 200000000000000000 + 25 + 250000000000000000 + 0 + ) + ) + + ;; FALSE branch: bearish crowd → go aggressive + ( + ;; Tax high (>= 10%) means volatile → amplify the contrarian signal further + TAXRATE 100000000000000000 DYADIC.>= + EXEC.IF + ;; VERY AGGRESSIVE: wide discovery, high anchor share + ( + 850000000000000000 + 250 + 850000000000000000 + 0 + ) + ;; AGGRESSIVE: wide discovery, high anchor share + ( + 700000000000000000 + 150 + 700000000000000000 + 0 + ) + ) +) diff --git a/tools/push3-evolution/seeds/llm_floor_hugger.push3 b/tools/push3-evolution/seeds/llm_floor_hugger.push3 index 06d5453..98e231d 100644 --- a/tools/push3-evolution/seeds/llm_floor_hugger.push3 +++ b/tools/push3-evolution/seeds/llm_floor_hugger.push3 @@ -1,28 +1,21 @@ -;; llm_floor_hugger.push3 — Defensive Floor Hugger Optimizer +;; Defensive Floor Hugger — 8-input / 4-output optimizer seed ;; -;; Philosophy: "if the floor never moves down, ETH is safe." +;; Strategy: maximise floor position depth at the expense of everything else. +;; "If the floor never moves down, ETH is safe." ;; -;; Strategy: anchor share near zero so almost all ETH remains in the floor -;; reserve. Anchor width is extremely narrow (tight band, minimal exposure). -;; Discovery depth is minimal — no speculative upside. CI is always 0. -;; All staking and tax-rate signals are ignored; outputs are pure constants. +;; Inputs (ignored): +;; [0] percentageStaked +;; [1] averageTaxRate +;; [2..7] normalized indicators ;; -;; Inputs on DYADIC stack (slot 0 on top, slot 7 at bottom): -;; [0] percentageStaked (0 to 1e18, where 1e18 = 100%) — ignored -;; [1] averageTaxRate (0 to 1e18) — ignored -;; [2..7] reserved / future indicators — ignored -;; -;; Outputs (bottom-to-top push order → top = ci): -;; discoveryDepth (bottom) = 0.05e18 (5% — minimal upside discovery) -;; anchorWidth = 5 (ticks — extremely narrow band) -;; anchorShare = 0.05e18 (5% — almost all ETH stays at floor) -;; ci (top) = 0 (no VWAP bias) -;; -;; Output constants: -;; CI=0, AS=0.05e18, AW=5, DD=0.05e18 +;; Outputs: +;; ci = 0 — no VWAP bias on floor placement +;; anchorShare = 1e16 (1%) — almost all ETH stays at floor +;; anchorWidth = 5 — tight band, minimal tick exposure +;; discoveryDepth = 1e16 (1%) — no speculative upside ( - ;; Step 1: Discard all 8 inputs — staking and market signals are irrelevant. + ;; Discard all 8 inputs (slot 0 on top → pop first) DYADIC.POP DYADIC.POP DYADIC.POP @@ -31,23 +24,14 @@ DYADIC.POP DYADIC.POP DYADIC.POP - ;; Stack: [] - ;; Step 2: Push outputs bottom-first. - - ;; discoveryDepth = 0.05e18 (5% — minimal speculative upside) - 50000000000000000 - ;; Stack: [discoveryDepth] - - ;; anchorWidth = 5 ticks (extremely narrow — tight defensive band) + ;; Push outputs bottom-first: + ;; discoveryDepth = 10000000000000000 (1e16 — minimal) + ;; anchorWidth = 5 (tight) + ;; anchorShare = 10000000000000000 (1e16 — near zero) + ;; ci = 0 (no VWAP bias) + 10000000000000000 5 - ;; Stack: [discoveryDepth, anchorWidth] - - ;; anchorShare = 0.05e18 (5% — nearly all ETH preserved at floor) - 50000000000000000 - ;; Stack: [discoveryDepth, anchorWidth, anchorShare] - - ;; ci = 0 (no capital inefficiency / no VWAP bias on floor placement) + 10000000000000000 0 - ;; Stack: [discoveryDepth, anchorWidth, anchorShare, ci=0] ) diff --git a/tools/push3-evolution/seeds/manifest.jsonl b/tools/push3-evolution/seeds/manifest.jsonl index d15c5f7..80c5049 100644 --- a/tools/push3-evolution/seeds/manifest.jsonl +++ b/tools/push3-evolution/seeds/manifest.jsonl @@ -2,4 +2,6 @@ {"file":"evo_run004_champion.push3","fitness":2307549972110081697617459,"fitness_flags":"token_value_inflation","origin":"evolved","run":"004","generation":3,"date":"2026-03-13","note":"First evolution champion. Fitness inflated by token value (#670). Always-bull strategy."} {"file":"llm_momentum.push3","fitness":null,"origin":"llm","run":null,"generation":null,"date":"2026-03-13","note":"Momentum Follower: smooth sentiment-tracking via direct percentageStaked multiplication. Safety net: floor always >=20%. AnchorWidth scales with tax volatility."} {"file":"llm_fee_maximizer.push3","fitness":null,"origin":"llm","run":null,"generation":null,"date":"2026-03-13","note":"LLM seed: fee maximizer. Wide anchor + high share in all regimes. Bullish/high-tax modes push DD and AS to max. (#673)"} -{"file":"llm_floor_hugger.push3","fitness":null,"origin":"llm","run":null,"generation":null,"date":"2026-03-14","note":"LLM seed: defensive floor hugger. Pure constants — ignores all staking signals. AS=0.05e18, AW=5 ticks, DD=0.05e18, CI=0. Almost all ETH stays at floor. (#672)"} +{"file":"llm_floor_hugger.push3","fitness":null,"origin":"llm","run":null,"generation":null,"date":"2026-03-13","note":"Defensive Floor Hugger — maximises floor depth, CI=0, anchorShare=1%, anchorWidth=5, discoveryDepth=1%. Ignores all inputs."} +{"file":"llm_contrarian.push3","fitness":null,"origin":"llm","run":null,"generation":null,"date":"2026-03-13","note":"Contrarian optimizer — bets against consensus. High staking = bearish, low staking = bullish."} +{"file":"evo_run007_champion.push3","fitness":7116531284966772550194,"origin":"evolved","run":"007","generation":24,"date":"2026-03-14","note":"Run 7 champion. Unbounded AW, 500k gas, IL crystallization attack. When staked<=88%: CI=20%, AW=153, AS=20%, DD=0. When staked>88%: bear defaults (all zero)."}