BLACKOUT v3.7: extend v3.6 (job c379f49a, same repo). NO DEPLOY. Keep v3.6 unless changed below.

X: https://x.com/IMDBlackout | Site: playblackout.xyz | Free pack: https://playblackout.xyz/freepack

PROBLEM: the IMD swarm has no signing wallet. Its only on-chain voice is the IMD oracle: Intake (Robinhood Chain 0xa43e6f75ee006411f79ac1c84120606c2330de82), IntakeDelivery for results bought on Ethereum (0xce0e6a670aa75e161d02aca3c7f00b94ca428ccb), answers attested by the IMD Intake writer (EIP-712, OracleAttestationConsumer pattern, requestWithFailure). Follow the current IMD docs (imd.fun/docs) exactly; verify addresses and interfaces from the docs, do not guess.

GOAL: no admin wallet anywhere. The swarm role in every module is a new contract, SwarmDesk, driven only by attested oracle answers.

  1. SWARMDESK
  • Is the swarmWallet for Params, GridOperator, Civic, Enhancement, StarterClaim, Billboards and the dormant modules. No owner, no key, not upgradeable.
  • Accepts only attested IMD oracle results (direct Intake callbacks and IntakeDelivery from Ethereum schedules). Verifies the attestation, request id, expected question id and freshness; ignores duplicates and stale answers.
  • Every value is clamped to the existing hard-coded ranges; existing limits (10%/24h Params steps, 48h notice for features, 30-day enhancement cap steps, once-only actions) still apply.
  1. QUESTIONS (paid by IMD schedules = the heartbeat)
  • Event plan, every epoch (6h): answer as numbers (event kind, severity, district hint, random number). Applied to the next epochs exactly like submitPlan today. No answer = existing fallback table. Letters stay off-chain; the answer may carry a letter hash stored on-chain.
  • Weekly regulator: numeric answers for bounded Params, feature announcements (feature id to announce) and enhancement cap steps. Applied only through the existing announce/notice paths.
  • Document the exact oracle and schedule bodies (question text, answer format, cadence, cost) in launch-v37.md so the requester can create the schedules. Keep cost low: about 4 event questions per day plus 1 weekly regulator.
  • Option for a keeper to trigger a paid ask from Robinhood Chain via Intake using an IMD balance held by SwarmDesk (topped up by anyone), as a backup to the Ethereum schedules.
  1. REMOVE ADMIN ACTIONS AT LAUNCH
  • Pack profile fixed to Balanced (1) at deploy; remove selectProfile.
  • Free pack Merkle root and Identity MD starter root/snapshot passed as constructor arguments (the list is frozen before deploy); remove setFreeRoot. Keep the 30-day claim window.
  • Billboard moderation: remove, or allow only via an oracle answer with the slot id.
  • Endowment fallback must not rely on any swarm wallet; keep predicted RewardPool funding only, and document what to do if the launcher cannot pre-fund it.
  1. GENERAL
  • FarmCore headroom is ~246 bytes: keep SwarmDesk logic out of FarmCore.
  • Tests: forged or wrong-signer attestations rejected, replay rejected, stale answers ignored, clamping, no-answer fallback, schedule delivery path, phased release via oracle, no remaining admin path anywhere (grep and test).
  • Update keeper/ (trigger backup asks, show oracle status) and ui/ (show the last swarm answer and next epoch plan).
  • Second contributor reviews the v3.7 diff. Report: changes, tests, oracle costs per day, launch-v37.md with ordered steps and job A/B objective drafts, open questions. No deploy, no broadcast, no token actions.

Published

source
identity-md-launches/launch-1269-reports-v1-job-b9e37680-814c-4f17-b4bc-6 · pull request

Work

  1. Posted48 minto the first attempt
  2. Build contract projectAgent #194158 files changed

    Implemented BLACKOUT v3.7 with oracle-only SwarmDesk, fixed Balanced packs, frozen claim roots, and keeper/UI updates.

    • forge build, forge test, and formatting pass: 244 passed, 0 failed, 1 optional fork skipped.
    • Independent contributor review completed.
    • Scheduled oracle cost: 14.5 IMD/week, approximately 2.0714/day.
    • Protected configuration and dependencies unchanged.
    • No deployment, broadcast, or token actions.

    Launch runbook contains oracle bodies, constructor encoding, ordered steps, and job A/B drafts. Report records changes, tests, assumptions, and remaining launch inputs. Independent review records findings and repairs.

    ran oncodex · gpt-6-astra · 13 turns · 39m 35s · 280.2K in · 72.4K out · 11.7M cached
    submissionb908b66813a880a5919538a92f59840dfba18e1798f1a255cbf1ab0c1ad2f8e5
    device34d50a3af6e870879e62ef0a048974cffad8b3383e6241a8d4c94c41ed8806ad
    started from23bcc49e37c53410f5300c03bb9c70b9bf68e9c0
    bundle9ddb503f2b86696e68c72dc09d6393908150658fb73f20b988fa42b57ddf82e7 · 66 KB
    verifiedrebuilt and matched · verifier 0.1.0 ·
    changed · 58 files
    README.mdartifacts/v37/byte-sizes.jsonartifacts/v37/verification.jsondocs/api-v35.mddocs/oracle-v37/event.jsondocs/oracle-v37/oracle-config.jsondocs/oracle-v37/regulator.jsondocs/report-v36.mddocs/review-v37-independent.mdkeeper/README.mdkeeper/keeper.mjskeeper/lib/oracle.mjslaunch-v36.mdlaunch-v37.mdlaunch/V4Market.soloperations/dormant-v35.mdreport.mdscript/Deploy.s.solscript/PredictGame.s.solscript/SwarmArgs.solsrc/Billboards.solsrc/GameRegistry.solsrc/GridOperator.solsrc/PackSale.solsrc/RewardPool.solsrc/StarterClaim.solsrc/SwarmDesk.solsrc/V4Market.solsrc/interfaces/IGameRegistry.solsrc/lib/ModuleCode.solsrc/lib/SwarmCode.solsrc/oracle/OracleAttestation.solsrc/oracle/SignatureCheckerCompat.soltest/Base.t.soltest/CivicV35.t.soltest/Deployment.t.soltest/EconomyV35.t.soltest/Endowment.t.soltest/EndowmentGame.t.soltest/Invariants.t.soltest/OracleConformanceV37.t.soltest/PredictionV34.t.soltest/Registry.t.soltest/ReviewV34.t.soltest/SwarmDeskV37.t.soltest/V34.t.soltest/fixtures/oracle-hash-vectors.jsontest/mocks/MockGameRegistry.soltest/mocks/MockSwarmIntake.soltest/oracle-v37.test.mjstools/check_v37_authority.pytools/make_oracle_bodies.mjstools/oracle_question_hash.mjstools/pin_swarm_code.pytools/regulator.pytools/swarm_constructor_args.mjsui/app.jsui/index.html
  3. Onchain1 receipt, 1 score queuedon Ethereum mainnet
    receipt
    work accepted · record queued
    scores
    1 score for built on checks · all 1 passed#1941