{
  "library": "chromatic-attack-vector-library",
  "note": "Only monitored vectors run in the scorer. Documented vectors are versioned definitions awaiting the evidence named in evidenceRequirements; they never produce a classification.",
  "monitored": 4,
  "documented": 2,
  "vectors": [
    {
      "id": "recycled-stake-treasury-extraction",
      "version": "1.0.0",
      "status": "monitored",
      "name": "Recycled-stake treasury extraction",
      "category": "Economic governance attack",
      "description": "A proposer acquires the required stake, rapidly recovers and reuses it in the decision market, with wallet-funding and execution behavior providing supporting evidence.",
      "scopeNote": "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety.",
      "indicators": [
        {
          "id": "fresh-wallet",
          "label": "Fresh wallet with no prior history",
          "role": "Identity context"
        },
        {
          "id": "bridge-funding",
          "label": "Cross-chain / bridge funding",
          "role": "Funding context"
        },
        {
          "id": "exact-stake-trim",
          "label": "Accumulation trimmed to exact proposal-stake threshold",
          "role": "Eligibility acquisition"
        },
        {
          "id": "stake-recover-reuse",
          "label": "Stake recovered and reused in the decision market",
          "role": "Capital reuse"
        },
        {
          "id": "clustered-cadence",
          "label": "Clustered fixed-size cadence trades",
          "role": "Market execution"
        }
      ],
      "evidenceRequirements": [
        "Wallet history: first activity and prior onchain record",
        "Funding path: venues and source chains for each leg",
        "Stake accumulation and trim relative to the required threshold",
        "Stake recovery latency and decision-market reuse",
        "Trade execution series, or a published cadence summary"
      ],
      "sources": [
        {
          "label": "01Resolved — The Umbra treasury attack cost its attacker $4,623",
          "url": "https://01resolved.com/research/the-umbra-treasury-attack-cost-its-attacker-4-623/"
        }
      ],
      "caseStudies": [
        {
          "id": "umbra-treasury-attack-2026-08",
          "projectSlug": "umbra",
          "proposal": "8sysa3XPrvKPmUA4qoZCn9h4vp7Mb45Ynezg542nui8Q",
          "project": "Umbra",
          "title": "Umbra's Decision Market Rejected a $1.5M Treasury Attack",
          "publishedAt": "2026-08-05",
          "publishedLabel": "5 August 2026",
          "publisher": "01Resolved",
          "authors": [
            "James",
            "Drew"
          ],
          "sourceUrl": "https://01resolved.com/research/the-umbra-treasury-attack-cost-its-attacker-4-623/"
        }
      ]
    },
    {
      "id": "late-window-outcome-steering",
      "version": "1.0.0",
      "status": "monitored",
      "name": "Late-window TWAP outcome steering",
      "category": "Decision-market manipulation",
      "description": "A trader waits out most of the TWAP window, then pushes a marginal print across its threshold in the closing stretch — when the required move is fully known and defenders have the least accrual time left to trade the price back. Late trades carry the least time-weight, so the target is a market already near its threshold, not the TWAP itself. Late activity also has benign forms — organic close-out and activist pressure — so a detector must separate steering from ordinary end-of-window trading.",
      "scopeNote": "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety.",
      "indicators": [
        {
          "id": "late-weight-concentration",
          "label": "Aligned volume concentrated in the closing hours of the TWAP window",
          "role": "Timing"
        },
        {
          "id": "single-trade-fragility",
          "label": "Printed outcome crosses the threshold on one marginal trade",
          "role": "Fragility"
        },
        {
          "id": "thin-depth-move",
          "label": "Price move outsized against posted depth near the threshold",
          "role": "Liquidity"
        },
        {
          "id": "post-window-snap-back",
          "label": "Price snaps back once TWAP weight stops accruing",
          "role": "Reversal"
        },
        {
          "id": "spike-clears-configured-threshold",
          "label": "Intra-window spike alone would clear the configured threshold",
          "role": "Threshold pressure"
        }
      ],
      "evidenceRequirements": [
        "Indexed per-trade history with in-window timestamps",
        "TWAP window boundaries and per-trade accrued weight",
        "Depth series around the configured threshold",
        "Post-finalization price series for snap-back checks"
      ],
      "sources": [
        {
          "label": "01Resolved — research index (late-activity taxonomy and signal quality)",
          "url": "https://01resolved.com/research/"
        },
        {
          "label": "MetaDAO documentation (TWAP window mechanics)",
          "url": "https://docs.metadao.fi"
        }
      ],
      "caseStudies": []
    },
    {
      "id": "wash-volume-alignment-inflation",
      "version": "1.0.0",
      "status": "monitored",
      "name": "Wash-volume alignment inflation",
      "category": "Decision-market manipulation",
      "description": "Automated near-neutral flow inflates a market's apparent volume and economic alignment, dressing thin conviction up as broad support while contributing no real position either way. The same fingerprint matches benign arbitrage flow, which published analysis strips as routine; a detector must separate deliberate wash from ordinary arb before it can say anything.",
      "scopeNote": "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety.",
      "indicators": [
        {
          "id": "paired-branch-executions",
          "label": "Paired pass-market and fail-market executions from one wallet",
          "role": "Execution symmetry"
        },
        {
          "id": "fixed-size-cluster",
          "label": "Fixed-size trade clusters at machine cadence",
          "role": "Cadence"
        },
        {
          "id": "near-neutral-net",
          "label": "Near-neutral ending exposure despite high turnover",
          "role": "Exposure"
        },
        {
          "id": "arb-frequency-band",
          "label": "Per-wallet trade frequency in the arbitrage band",
          "role": "Frequency"
        },
        {
          "id": "stripped-tilt-shift",
          "label": "Net volume tilt moves materially once the flow is stripped",
          "role": "Alignment distortion"
        }
      ],
      "evidenceRequirements": [
        "Wallet-attributed trade history across both conditional markets",
        "Ending pass/fail exposure per wallet",
        "Per-wallet trade frequency over the market's lifetime",
        "Volume tilt recomputed with the suspect flow removed"
      ],
      "sources": [
        {
          "label": "01Resolved — research index (bot detection and strip-the-bot methodology)",
          "url": "https://01resolved.com/research/"
        },
        {
          "label": "01Resolved — platform (Decision Market Analysis Model)",
          "url": "https://www.01resolved.com/"
        }
      ],
      "caseStudies": []
    },
    {
      "id": "coordinated-multiwallet-stake-assembly",
      "version": "1.0.0",
      "status": "monitored",
      "name": "Coordinated multi-wallet stake assembly",
      "category": "Economic governance attack",
      "description": "An operator splits stake acquisition or market activity across coordinated wallets so no single address crosses the eligibility thresholds the protocol enforces or the attribution thresholds a reviewer watches. Coordination alone is not an attack — multi-wallet holders and coordinated defenders share parts of this shape — so the mechanism is the threshold evasion, not the wallet count.",
      "scopeNote": "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety.",
      "indicators": [
        {
          "id": "common-funding-source",
          "label": "Participating wallets funded from one upstream source",
          "role": "Funding context"
        },
        {
          "id": "synchronized-first-activity",
          "label": "Wallets first active inside a tight shared window",
          "role": "Identity context"
        },
        {
          "id": "split-threshold-assembly",
          "label": "Combined position crosses a stake threshold no single wallet crosses",
          "role": "Eligibility acquisition"
        },
        {
          "id": "shared-execution-fingerprint",
          "label": "Matching trade-size and cadence fingerprint across wallets",
          "role": "Market execution"
        },
        {
          "id": "synchronized-exit",
          "label": "Coordinated exit across the wallet set after resolution",
          "role": "Exit behavior"
        }
      ],
      "evidenceRequirements": [
        "Cross-wallet funding graph for the proposal window",
        "First-activity timestamps for each participating wallet",
        "Per-wallet positions measured against the stake requirement",
        "Per-wallet execution series for fingerprint comparison"
      ],
      "sources": [
        {
          "label": "01Resolved — Ownership Score, what the first experiment reveals",
          "url": "https://01resolved.com/research/ownership-score-what-the-first-experiment-reveals/"
        },
        {
          "label": "01Resolved — The Umbra treasury attack cost its attacker $4,623",
          "url": "https://01resolved.com/research/the-umbra-treasury-attack-cost-its-attacker-4-623/"
        }
      ],
      "caseStudies": []
    },
    {
      "id": "terminal-window-twap-capture",
      "version": "1.0.0",
      "status": "documented",
      "name": "Terminal-window TWAP capture",
      "category": "Decision-market manipulation",
      "description": "A governance rule resolves on a TWAP measured over only a short terminal slice of a much longer decision period, on pools that need only clear a published minimum-liquidity floor. The entire resolving window is the closing stretch: the capital needed to own the print is calculable in advance from the floor and the window length, and defenders have no earlier accrual to lean on. Distinct from late-window outcome steering, which targets the tail of a full-length TWAP window — here the rule itself confines every unit of resolving weight to the terminal window. Genuine late information arrival produces the same late repricing, so a detector must separate engineered capture from honest end-of-period discovery.",
      "scopeNote": "This vector is documented, not monitored: its detector has not shipped, so it never produces a classification. The definition records the mechanism and the evidence a detector would need first.",
      "indicators": [
        {
          "id": "terminal-only-weight",
          "label": "All resolving TWAP weight accrues in a terminal window that is a small fraction of the decision period",
          "role": "Window structure"
        },
        {
          "id": "floor-hugging-liquidity",
          "label": "Full-range depth sits at or barely above the published liquidity floor",
          "role": "Liquidity"
        },
        {
          "id": "quiet-then-capture",
          "label": "Markets stay quiet until the resolving window opens, then absorb concentrated aligned flow",
          "role": "Timing"
        },
        {
          "id": "in-window-inversion",
          "label": "Pass/fail ordering flips inside the resolving window after holding steady before it",
          "role": "Fragility"
        },
        {
          "id": "post-window-reversion",
          "label": "Prices revert once the terminal window closes and weight stops accruing",
          "role": "Reversal"
        }
      ],
      "evidenceRequirements": [
        "The ratified rule: resolving-window length, liquidity floor, and pass condition as published",
        "Pool depth series across the decision period, with full-range liquidity measured against the floor",
        "Per-trade history with timestamps covering pre-window and in-window activity",
        "Post-resolution price series for reversion checks"
      ],
      "sources": [
        {
          "label": "Kleros KIP-76 — Futarchy-Based Governance Rule for PNK Minting (Snapshot, kleros.eth)",
          "url": "https://snapshot.org/#/kleros.eth/proposal/0xa213179debfca1cb5b8f65ac9d641e6e4e8fb5df480196c909e9ae1ab548daa7"
        },
        {
          "label": "ethresear.ch — Futarchy is insecure without a trusted gatekeeper",
          "url": "https://ethresear.ch/t/futarchy-is-insecure-without-a-trusted-gatekeeper/25235"
        }
      ],
      "caseStudies": []
    },
    {
      "id": "advisory-signal-inflation",
      "version": "1.0.0",
      "status": "documented",
      "name": "Advisory-signal inflation",
      "category": "Governance-signal manipulation",
      "description": "Where a decision market is advisory — its price signal informs a vote or a bound delegate but executes nothing — moving the signal is cheap: no treasury settlement forces the manipulator to hold losing risk, and thin honest flow is the norm. An inflated print then travels as social proof through forums, delegates, and dashboards that cite the market as an endorsement. Honest participants also trade advisory markets at low volume, so a detector must separate manufactured endorsement from a thin but genuine signal.",
      "scopeNote": "This vector is documented, not monitored: its detector has not shipped, so it never produces a classification. The definition records the mechanism and the evidence a detector would need first.",
      "indicators": [
        {
          "id": "stakeless-directional-print",
          "label": "Directional prints arrive without exposure held through the signal read",
          "role": "Exposure"
        },
        {
          "id": "signal-scale-mismatch",
          "label": "Signal-moving flow is trivial against the decision's stated stakes",
          "role": "Capital sizing"
        },
        {
          "id": "read-timed-concentration",
          "label": "Aligned flow concentrates just before the signal is read or a bound delegate executes",
          "role": "Timing"
        },
        {
          "id": "venue-alignment-divergence",
          "label": "Market signal diverges from the venue's own vote and forum alignment",
          "role": "Cross-check"
        },
        {
          "id": "post-read-unwind",
          "label": "Positions unwind once the advisory signal has been consumed",
          "role": "Reversal"
        }
      ],
      "evidenceRequirements": [
        "The advisory rule as published: what reads the signal, when, and at what threshold",
        "Wallet-attributed trade history across both conditional markets",
        "Timestamps of signal reads or bound-delegate executions against the flow series",
        "Position series after the signal is consumed, for unwind checks"
      ],
      "sources": [
        {
          "label": "Gnosis forum — GIP-145 futarchy pilot discussion",
          "url": "https://forum.gnosis.io/t/11816"
        },
        {
          "label": "Gnosis forum — futarchist.eth, a delegate bound to the futarchy signal",
          "url": "https://forum.gnosis.io/t/12197"
        },
        {
          "label": "Optimism governance — Futarchy v1 preliminary findings",
          "url": "https://gov.optimism.io/t/futarchy-v1-preliminary-findings/10062"
        }
      ],
      "caseStudies": []
    }
  ]
}
