@prefix chr: <https://chromatic.run/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://chromatic.run/ontology> a owl:Ontology ;
  owl:versionInfo "1.8.0" ;
  owl:versionIRI <https://chromatic.run/ontology/1.8.0> ;
  owl:priorVersion <https://chromatic.run/ontology/1.7.0> ;
  owl:incompatibleWith <https://chromatic.run/ontology/1.0.0> ;
  owl:incompatibleWith <https://chromatic.run/ontology/1.1.0> ;
  rdfs:label "Chromatic product ontology" ;
  rdfs:comment "Generated from the registries in src/ by npm run ontology. Edit the source, not this file. Findings stay in their lane: the forbidden concepts below are named and made unsatisfiable rather than left as policy." ;
  rdfs:comment "Version IRIs identify a release; they are not documents. Only the current version is served, at /ontology/chromatic.ttl. A release listed as owl:incompatibleWith added axioms that can make a document the older version accepted contradictory here — no vocabulary was removed." .

# ── Classes ──────────────────────────────────────────────────────────

chr:ColorTeam a owl:Class ;
  rdfs:comment "The bounded review roster. Closed and pairwise distinct: exactly the enumerated teams, so a seventh lane asserted distinct from these six is a contradiction rather than merely an unlisted name." ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:team-pink chr:team-red chr:team-blue chr:team-yellow chr:team-purple chr:team-white ) ] .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:team-pink chr:team-red chr:team-blue chr:team-yellow chr:team-purple chr:team-white ) .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:roster-1-0-0 chr:roster-1-0-1 chr:roster-1-0-2 chr:roster-1-0-3 chr:roster-1-0-4 ) .

chr:ColorTeamRoster a owl:Class ;
  rdfs:comment "One released set of team contracts, versioned as a whole and pinned by a digest. It exists because a per-team contract version cannot describe the roster: adding, retiring, or renaming a team moves no surviving team's version, so a finding stamped only with its own team's version cannot say which roster it belonged to. A stored finding names its roster through filedUnderRoster and stays re-readable after the contracts have moved on." .

chr:Finding a owl:Class ;
  owl:disjointUnionOf ( chr:PinkTeamFinding chr:RedTeamFinding chr:BlueTeamFinding chr:YellowTeamFinding chr:PurpleTeamFinding chr:WhiteTeamFinding ) ;
  owl:disjointWith chr:AttackVector ;
  rdfs:comment "One lane's answer for one record. Findings stay in their lane; the roster never folds them into a composite score." .

chr:PinkTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the Pink Team lane (evidence qualification)." .

chr:RedTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the Red Team lane (attack testing)." .

chr:BlueTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the Blue Team lane (market watch)." .

chr:YellowTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the Yellow Team lane (playbook building)." .

chr:PurpleTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the Purple Team lane (learning loop)." .

chr:WhiteTeamFinding a owl:Class ;
  rdfs:subClassOf chr:Finding ;
  rdfs:comment "A finding produced in the White Team lane (claim control)." .

chr:AttackVector a owl:Class ;
  rdfs:subClassOf [ a owl:Restriction ; owl:onProperty chr:exploitsComponent ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ;
  rdfs:comment "A versioned economic attack mechanism. A vector describes a reusable mechanism, never an incident." .

chr:MonitoredVector a owl:Class ;
  rdfs:subClassOf chr:AttackVector ;
  rdfs:subClassOf [ a owl:Restriction ; owl:onProperty chr:hasDetector ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ;
  owl:disjointWith chr:DocumentedVector ;
  rdfs:comment "Detector shipped: the vector runs in the scorer." .

chr:DocumentedVector a owl:Class ;
  rdfs:subClassOf chr:AttackVector ;
  rdfs:subClassOf [ a owl:Restriction ; owl:onProperty chr:hasDetector ; owl:maxCardinality "0"^^xsd:nonNegativeInteger ] ;
  rdfs:comment "Detector pending: a documented vector is never assessed and never classifies." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:recycled-stake-treasury-extraction chr:late-window-outcome-steering chr:wash-volume-alignment-inflation chr:coordinated-multiwallet-stake-assembly chr:terminal-window-twap-capture chr:advisory-signal-inflation chr:resistance-contingent-delivery chr:conditional-holder-exit-supply-failure chr:proposal-convexity-selection chr:countertrade-adverse-selection-deterrence chr:fail-branch-sabotage ) .

chr:Indicator a owl:Class ;
  rdfs:comment "One evidence signal inside one vector. Indicator counts are never added across vectors." .

chr:Detector a owl:Class ;
  rdfs:comment "The shipped evaluation of one monitored vector's indicators over a qualified evidence packet." .

chr:MethodologySource a owl:Class ;
  rdfs:comment "Published research a definition cites." .

chr:CaseStudy a owl:Class ;
  rdfs:comment "A published incident kept as provenance. The check travels forward; the case's conclusion does not." .

chr:Classification a owl:Class ;
  owl:disjointUnionOf ( chr:MatchState chr:WithheldState ) ;
  rdfs:comment "What the scorer may emit for one vector on one record." .

chr:MatchState a owl:Class ;
  rdfs:subClassOf chr:Classification ;
  owl:disjointWith chr:WithheldState ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:state-high-risk chr:state-elevated chr:state-watch chr:state-no-match ) ] ;
  rdfs:comment "Complete-evidence match states for one monitored vector. LOW is not a member of either partition: it is a named rejected token disjoint from Classification. NO-MATCH means this vector did not match; it is never a claim the proposal is safe." .

chr:WithheldState a owl:Class ;
  rdfs:subClassOf chr:Classification ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:state-unscored chr:state-unknown chr:state-stale chr:state-under-review ) ] ;
  rdfs:comment "Withheld states for incomplete evidence. Missing inputs land here and never grade." .

chr:RejectedClassificationState a owl:Class ;
  owl:disjointWith chr:Classification ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:state-low ) ] ;
  rdfs:comment "A known token the product explicitly rejects as a classification. LOW cannot be asserted as a finding state without contradiction." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:state-high-risk chr:state-elevated chr:state-watch chr:state-no-match chr:state-unscored chr:state-unknown chr:state-stale chr:state-under-review chr:state-low ) .

chr:CovenantCheck a owl:Class ;
  rdfs:comment "A versioned check anchored to published launch-covenant terms. A covenant review is never a proposal classification." .

chr:CovenantTermState a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:covenant-term-present chr:covenant-term-absent chr:covenant-term-unknown ) ] ;
  rdfs:comment "Tri-state, fail closed: an unknown term stays unknown and never rounds to present; a known violation is absent even when a paired term is unknown." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:covenant-term-present chr:covenant-term-absent chr:covenant-term-unknown ) .

chr:LaunchCovenant a owl:Class ;
  rdfs:comment "A published launch covenant whose terms the checks evaluate." .

chr:Instrument a owl:Class ;
  rdfs:comment "A lane observation instrument. Its output is an observation under stated assumptions, never a classification." .

chr:GovernanceMechanism a owl:Class .

chr:MarketBasedGovernance a owl:Class ;
  rdfs:subClassOf chr:GovernanceMechanism .

chr:VotingGovernance a owl:Class ;
  rdfs:subClassOf chr:GovernanceMechanism ;
  owl:disjointWith chr:MarketBasedGovernance .

chr:Futarchy a owl:Class ;
  rdfs:subClassOf chr:MarketBasedGovernance ;
  rdfs:comment "Hansonian futarchy: a voted welfare metric, conditional markets per decision branch, and a published decision rule." .

chr:FutarchyImplementation a owl:Class ;
  rdfs:comment "A named venue implementing the mechanism, typed by execution binding." .

chr:MechanismComponent a owl:Class ;
  rdfs:comment "One component of the mechanism — the unit of attack-surface bookkeeping. Coverage counts detectors in this library; an uncovered component is undefended in the library's terms, never a claim the component is safe." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:component-welfare-metric chr:component-conditional-market-pair chr:component-twap-oracle chr:component-decision-rule chr:component-full-window-twap-rule chr:component-terminal-window-twap-rule chr:component-stake-requirement chr:component-alignment-signal chr:component-execution-binding chr:component-gatekeeper-role chr:component-proposal-specification chr:component-delivery-enforcement chr:component-corrective-participation-access chr:component-branch-independence chr:component-causal-assumption-transparency ) .

chr:ExecutionMode a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:execution-binding chr:execution-advisory ) ] .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:execution-binding chr:execution-advisory ) .

chr:OnchainConstruct a owl:Class ;
  rdfs:comment "A decoded onchain structure bridged to the abstract component it realizes." .

chr:McpServer a owl:Class ;
  rdfs:comment "The read-only MCP endpoint over the registries and the shipped scorer. Its free tools serve only already-public objects; a metered tool serves the lane packet, priced per pull over x402." .

chr:McpTool a owl:Class ;
  rdfs:comment "One read-only tool — a model-controlled query over the registries. Payloads carry lane, contract version, and withheld status; no field exists for a composite score." .

chr:McpResource a owl:Class ;
  rdfs:comment "One versioned registry document served as an MCP resource, identified by the URL it actually publishes at. Documents are resources; the queries over them are tools." .

chr:ObservationSeries a owl:Class ;
  owl:disjointUnionOf ( chr:PublishedSeries chr:CrossCheckSeries ) ;
  rdfs:comment "One measured series on the append-only observation tape, keyed (chain, venue, market, series, ts). The tape records every reading; the rollup decides which readings are published, and a row naming a disproven derivation is recorded but never published or measured against." .

chr:PublishedSeries a owl:Class ;
  rdfs:subClassOf chr:ObservationSeries ;
  rdfs:comment "A series rendered on a public surface as our own measurement, against baselines the tape itself holds." .

chr:CrossCheckSeries a owl:Class ;
  rdfs:subClassOf chr:ObservationSeries ;
  owl:disjointWith chr:PublishedSeries ;
  rdfs:comment "A recorded claim — a provider's own figure or a raw input — kept to verify a published series against and never rendered as ours. The disjointness is the 24h-column rule as logic: someone else's measurement, against a baseline we cannot name, cannot also be a series we publish." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:series-price-usd chr:series-market-cap-usd chr:series-fdv-usd chr:series-volume-24h-usd chr:series-provider-change-24h-pct chr:series-circulating-supply chr:series-total-supply chr:series-tracked-protocol-count chr:series-live-protocol-count chr:series-cited-treasury-usd chr:series-quoted-market-cap-usd chr:series-ownership-coin-count chr:series-ownership-coin-market-cap-usd chr:series-ownership-coin-fdv-usd chr:series-dao-vault-usd chr:series-pending-market-count chr:series-funded-draft-count chr:series-program-proposal-count chr:series-dao-vault-balance-usd chr:series-pass-twap chr:series-fail-twap chr:series-pass-spot chr:series-fail-spot chr:series-pass-base-reserve chr:series-pass-quote-reserve chr:series-fail-base-reserve chr:series-fail-quote-reserve ) .

chr:CoverageLane a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:lane-price chr:lane-caps chr:lane-fdv chr:lane-treasury chr:lane-counts chr:lane-vaults chr:lane-proposals chr:lane-windows ) ] ;
  rdfs:comment "A chart-bearing group of series that answer one question together; the lane is as deep as its shallowest member. Closed enumeration: the depth readout, the rollup, and the charts bind on exactly these lanes." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:lane-price chr:lane-caps chr:lane-fdv chr:lane-treasury chr:lane-counts chr:lane-vaults chr:lane-proposals chr:lane-windows ) .

chr:ProvenanceMethod a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:method-live-collection chr:method-chain-replay chr:method-dated-source chr:method-derived-step ) ] ;
  rdfs:comment "How rows come to exist, ordered by what the claim rests on: live collection, exact chain replay, a source's own dated readings, or a derived step over dated events. Only live collection earns unmarked depth; everything else is borrowed reach and says so." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:method-live-collection chr:method-chain-replay chr:method-dated-source chr:method-derived-step ) .

chr:DisprovenDerivation a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:disproven-implied-supply chr:disproven-live-count-status-history chr:disproven-zklsol-contract-lookup ) ] ;
  rdfs:comment "A derivation a measurement closed. The tape keeps every row that names one — the record is the point — and the rollup publishes none of them, as a value, as history, or as a baseline. Closed enumeration, each member carrying the measurement that closed it; an entry scoped to a series or a market disproves only those readings, because a source that resolved the wrong asset for one member is not thereby wrong for the members it resolved correctly." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:disproven-implied-supply chr:disproven-live-count-status-history chr:disproven-zklsol-contract-lookup ) .

chr:UnavailableMeasure a owl:Class ;
  owl:equivalentClass [ a owl:Class ; owl:oneOf ( chr:unavailable-effective-spread chr:unavailable-post-fill-markout chr:unavailable-depth-imbalance chr:unavailable-trade-based-spread-estimators chr:unavailable-longshot-spread-premium chr:unavailable-self-counterparty-wash chr:unavailable-information-leakage-score ) ] ;
  rdfs:comment "A measure this venue cannot supply the inputs for, recorded rather than omitted. Most are book-dependent: these are constant-product conditional pools with no bid, ask, queue, or maker inventory, so an effective spread or a depth imbalance would be a number with no referent. One is timestamp-dependent: an information-leakage score needs the moment the public learned, and every timestamp a proposal account carries is a moment the market learned. Each member names the input it would need and the honest local substitute, so a consumer can tell a refusal from an oversight." .

[] a owl:AllDifferent ;
  owl:distinctMembers ( chr:unavailable-effective-spread chr:unavailable-post-fill-markout chr:unavailable-depth-imbalance chr:unavailable-trade-based-spread-estimators chr:unavailable-longshot-spread-premium chr:unavailable-self-counterparty-wash chr:unavailable-information-leakage-score ) .

chr:CompositeProposalRiskScore a owl:Class ;
  owl:equivalentClass owl:Nothing ;
  rdfs:comment "Deliberately unsatisfiable. No composite proposal-risk score exists anywhere in the product: naming the forbidden concept makes asserting an instance a contradiction rather than a policy violation." .

chr:SafetyRating a owl:Class ;
  owl:equivalentClass owl:Nothing ;
  rdfs:comment "Deliberately unsatisfiable. A vector no-match is never a safety rating, and nothing here ships green." .

chr:ActionType a owl:Class ;
  owl:equivalentClass owl:Nothing ;
  rdfs:comment "Deliberately unsatisfiable. An action type is the schema of a change a user can make to the objects — the kinetic half of an ontology of this shape. This desk has no kinetic half: every tool is read-only, every document is generated from a registry, and nothing here writes back to the systems it describes. Naming the concept and emptying it states that boundary as logic rather than leaving it as an unmentioned absence a reader has to notice." .

# ── Object properties ────────────────────────────────────────────────

chr:hasIndicator a owl:ObjectProperty ;
  rdfs:domain chr:AttackVector ;
  rdfs:range chr:Indicator ;
  rdfs:comment "A vector's indicators. Their explicit position preserves registry order; counts stay scoped to one vector." .

chr:hasDetector a owl:ObjectProperty ;
  rdfs:domain chr:MonitoredVector ;
  rdfs:range chr:Detector ;
  rdfs:comment "Only monitored vectors carry a shipped detector; DocumentedVector is restricted to zero." .

chr:hasCaseStudy a owl:ObjectProperty ;
  rdfs:domain chr:AttackVector ;
  rdfs:range chr:CaseStudy ;
  rdfs:comment "Published incidents are provenance beneath a vector; the incident never becomes the detector's name." .

chr:hasMethodologySource a owl:ObjectProperty ;
  rdfs:range chr:MethodologySource ;
  rdfs:comment "The published research a definition is codified from." .

chr:exploitsComponent a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:AttackVector ;
  rdfs:range chr:MechanismComponent ;
  rdfs:comment "Definitional: the one mechanism component a vector abuses. This edge describes mechanisms and never attaches to a finding, so mechanism-level judgments cannot leak into per-proposal results." .

chr:presupposesExecution a owl:ObjectProperty ;
  rdfs:domain chr:AttackVector ;
  rdfs:range chr:ExecutionMode ;
  rdfs:comment "The execution binding a vector's payoff presupposes; absent when the mechanism works under either." .

chr:codifiedBy a owl:ObjectProperty ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "The Yellow Team codifies playbooks and covenant checks from published research." .

chr:runBy a owl:ObjectProperty ;
  rdfs:domain chr:MonitoredVector ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "The Red Team runs monitored playbooks; documented vectors are never run." .

chr:scopedToVector a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:Finding ;
  rdfs:range chr:MonitoredVector ;
  rdfs:comment "Functional with monitored range: every classification is scoped to exactly one monitored vector. This is the axiom form of the no-composite rule. The vector individuals are declared pairwise distinct, so scoping one finding to two vectors is a contradiction rather than a silent identification of the two." .

chr:hasClassification a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:Finding ;
  rdfs:range chr:Classification ;
  rdfs:comment "The one state a finding carries. Range Classification, which is the disjoint union of the match and withheld partitions — so LOW, a RejectedClassificationState disjoint from Classification, cannot be a finding's state without contradiction. Functional: a finding has one state, never a spread." .

chr:checksCovenant a owl:ObjectProperty ;
  rdfs:domain chr:CovenantCheck ;
  rdfs:range chr:LaunchCovenant ;
  rdfs:comment "The published launch covenant a versioned check is anchored to." .

chr:rosterMember a owl:ObjectProperty ;
  rdfs:domain chr:ColorTeamRoster ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "The teams a roster release contains. Membership is what a per-team contract version cannot express: adding or retiring a team moves no existing team's version, so without this edge two different rosters are indistinguishable from their teams alone." .

chr:filedUnderRoster a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:Finding ;
  rdfs:range chr:ColorTeamRoster ;
  rdfs:comment "The roster release a finding was filed under. Functional: a finding is the answer of one roster at one moment, never a reading blended across releases. This is what makes a stored finding re-readable after the contracts it ran under have moved on." .

chr:instrumentOf a owl:ObjectProperty ;
  rdfs:domain chr:Instrument ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "The lane an observation instrument belongs to; its output is never a classification." .

chr:unavailableTo a owl:ObjectProperty ;
  rdfs:domain chr:UnavailableMeasure ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "A measure the lane refuses because this venue cannot supply what it presupposes — a quoted book, a maker's inventory, a public-announcement time. Recorded rather than omitted, so a consumer can tell a refusal from an oversight, and each entry names both the missing input and the honest local substitute." .

chr:variantOf a owl:ObjectProperty ;
  rdfs:domain chr:MechanismComponent ;
  rdfs:range chr:MechanismComponent ;
  rdfs:comment "A rule variant specializes its parent component." .

chr:hasComponent a owl:ObjectProperty ;
  rdfs:domain chr:Futarchy ;
  rdfs:range chr:MechanismComponent ;
  rdfs:comment "A root component in the registry-derived mechanism taxonomy. Rule variants attach to their root with variantOf." .

chr:implements a owl:ObjectProperty ;
  rdfs:domain chr:FutarchyImplementation ;
  rdfs:range chr:Futarchy ;
  rdfs:comment "A named venue implementing the mechanism." .

chr:executesAs a owl:ObjectProperty ;
  rdfs:domain chr:FutarchyImplementation ;
  rdfs:range chr:ExecutionMode ;
  rdfs:comment "Whether the implementation's markets execute onchain or advise." .

chr:usesRule a owl:ObjectProperty ;
  rdfs:domain chr:FutarchyImplementation ;
  rdfs:range chr:MechanismComponent ;
  rdfs:comment "The decision-rule variant the implementation's published rule uses, when published." .

chr:realizesComponent a owl:ObjectProperty ;
  rdfs:domain chr:OnchainConstruct ;
  rdfs:range chr:MechanismComponent ;
  rdfs:comment "Bridges a decoded onchain construct to the abstract mechanism component it realizes." .

chr:offersTool a owl:ObjectProperty ;
  rdfs:domain chr:McpServer ;
  rdfs:range chr:McpTool ;
  rdfs:comment "The read-only tool registry the endpoint serves." .

chr:servesLane a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:McpTool ;
  rdfs:range chr:ColorTeam ;
  rdfs:comment "The roster lane a lane tool reads out; inventory tools carry no lane." .

chr:servesResource a owl:ObjectProperty ;
  rdfs:domain chr:McpServer ;
  rdfs:range chr:McpResource ;
  rdfs:comment "A versioned registry document the endpoint serves as an MCP resource. Documents are resources; the queries over them are tools." .

chr:inCoverageLane a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:ObservationSeries ;
  rdfs:range chr:CoverageLane ;
  rdfs:comment "The chart-bearing lane a series answers within. Lanes are cut at the granularity the consuming charts bind at, because a lane grouped wider than its charts is how one stale point once read as a month of depth. A series outside every lane is a table cell or a cross-check, never a chart." .

chr:crossChecks a owl:ObjectProperty, owl:FunctionalProperty ;
  rdfs:domain chr:CrossCheckSeries ;
  rdfs:range chr:PublishedSeries ;
  rdfs:comment "The published series a recorded claim exists to verify. The edge points from the claim to our measurement, never the reverse: the provider's figure is compared against ours and is not an input to it." .

# ── Datatype properties ──────────────────────────────────────────────

chr:accent a owl:DatatypeProperty .
chr:assumption a owl:DatatypeProperty .
chr:boundaryRule a owl:DatatypeProperty .
chr:bucketCount a owl:DatatypeProperty .
chr:category a owl:DatatypeProperty .
chr:consumers a owl:DatatypeProperty .
chr:contractHandoff a owl:DatatypeProperty .
chr:contractInputs a owl:DatatypeProperty .
chr:contractOutputs a owl:DatatypeProperty .
chr:definition a owl:DatatypeProperty .
chr:description a owl:DatatypeProperty .
chr:detail a owl:DatatypeProperty .
chr:discipline a owl:DatatypeProperty .
chr:endpoint a owl:DatatypeProperty .
chr:episodic a owl:DatatypeProperty .
chr:heading a owl:DatatypeProperty .
chr:investorReserveCapPct a owl:DatatypeProperty .
chr:localSubstitute a owl:DatatypeProperty .
chr:member a owl:DatatypeProperty .
chr:methodSource a owl:DatatypeProperty .
chr:mimeType a owl:DatatypeProperty .
chr:minimumTrades a owl:DatatypeProperty .
chr:mission a owl:DatatypeProperty .
chr:note a owl:DatatypeProperty .
chr:position a owl:DatatypeProperty .
chr:projectSlug a owl:DatatypeProperty .
chr:proposal a owl:DatatypeProperty .
chr:provenancePattern a owl:DatatypeProperty .
chr:provenancePrefix a owl:DatatypeProperty .
chr:publishedAt a owl:DatatypeProperty .
chr:publisher a owl:DatatypeProperty .
chr:releaseNote a owl:DatatypeProperty .
chr:requires a owl:DatatypeProperty .
chr:role a owl:DatatypeProperty .
chr:rosterDigest a owl:DatatypeProperty .
chr:rosterVersion a owl:DatatypeProperty .
chr:scopedToMarket a owl:DatatypeProperty .
chr:scopedToSeries a owl:DatatypeProperty .
chr:scopeNote a owl:DatatypeProperty .
chr:seriesId a owl:DatatypeProperty .
chr:sourceLabel a owl:DatatypeProperty .
chr:sourceUrl a owl:DatatypeProperty .
chr:status a owl:DatatypeProperty .
chr:summary a owl:DatatypeProperty .
chr:teamAllocationMaxPct a owl:DatatypeProperty .
chr:teamAllocationMinPct a owl:DatatypeProperty .
chr:teamCount a owl:DatatypeProperty .
chr:unit a owl:DatatypeProperty .
chr:uri a owl:DatatypeProperty .
chr:version a owl:DatatypeProperty .
chr:vestingMonths a owl:DatatypeProperty .

# ── Individuals (generated from the registries) ──────────────────────

chr:state-high-risk a chr:MatchState ;
  rdfs:label "HIGH-RISK" .

chr:state-elevated a chr:MatchState ;
  rdfs:label "ELEVATED" .

chr:state-watch a chr:MatchState ;
  rdfs:label "WATCH" .

chr:state-no-match a chr:MatchState ;
  rdfs:label "NO-MATCH" .

chr:state-unscored a chr:WithheldState ;
  rdfs:label "UNSCORED" .

chr:state-unknown a chr:WithheldState ;
  rdfs:label "UNKNOWN" .

chr:state-stale a chr:WithheldState ;
  rdfs:label "STALE" .

chr:state-under-review a chr:WithheldState ;
  rdfs:label "UNDER_REVIEW" .

chr:state-low a chr:RejectedClassificationState ;
  rdfs:label "LOW" ;
  chr:note "A known rejected token, disjoint from Classification. It is never a scorer output." .

chr:covenant-term-present a chr:CovenantTermState ;
  rdfs:label "present" .

chr:covenant-term-absent a chr:CovenantTermState ;
  rdfs:label "absent" .

chr:covenant-term-unknown a chr:CovenantTermState ;
  rdfs:label "unknown" .

chr:execution-binding a chr:ExecutionMode ;
  rdfs:label "binding" .

chr:execution-advisory a chr:ExecutionMode ;
  rdfs:label "advisory" .

chr:roster-1-0-0 a chr:ColorTeamRoster ;
  rdfs:label "Color-team roster 1.0.0" ;
  chr:rosterVersion "1.0.0" ;
  chr:rosterDigest "5ee5f23e" ;
  chr:releaseNote "The closed six-team roster as first recorded against proposals: Pink 1.2.0, Red 1.1.0, Blue 1.4.0, Yellow 1.2.0, Purple 1.1.0, White 1.2.0." .

chr:roster-1-0-1 a chr:ColorTeamRoster ;
  rdfs:label "Color-team roster 1.0.1" ;
  chr:rosterVersion "1.0.1" ;
  chr:rosterDigest "08b5d31f" ;
  chr:releaseNote "Condenses the Blue Team Threshold read contract copy: Pink 1.2.0, Red 1.1.0, Blue 1.4.1, Yellow 1.2.0, Purple 1.1.0, White 1.2.0." .

chr:roster-1-0-2 a chr:ColorTeamRoster ;
  rdfs:label "Color-team roster 1.0.2" ;
  chr:rosterVersion "1.0.2" ;
  chr:rosterDigest "2b75173f" ;
  chr:releaseNote "Adds the Blue Team's microstructure stack over the indexed swap record — order-flow toxicity, signed imbalance, cumulative delta, per-pool price impact, participation — with three boundaries: a one-sided decision market is not a finding, the readings are never folded into an index, and a metric that presupposes a limit order book is refused rather than approximated: Pink 1.2.0, Red 1.1.0, Blue 1.5.0, Yellow 1.2.0, Purple 1.1.0, White 1.2.0." .

chr:roster-1-0-3 a chr:ColorTeamRoster ;
  rdfs:label "Color-team roster 1.0.3" ;
  chr:rosterVersion "1.0.3" ;
  chr:rosterDigest "5f885ff3" ;
  chr:releaseNote "Recolours the roster to the Signal palette (the Six Names study): every lane now measures nearer to a plain reading of its own name than to any other lane's, clears both polarity poles, and holds the categorical separation floors. Accents are the same hues dropped to carry text on paper. Contracts are untouched: Pink 1.2.0, Red 1.1.0, Blue 1.5.0, Yellow 1.2.0, Purple 1.1.0, White 1.2.0." .

chr:roster-1-0-4 a chr:ColorTeamRoster ;
  rdfs:label "Color-team roster 1.0.4" ;
  chr:rosterVersion "1.0.4" ;
  chr:rosterDigest "14dca88f" ;
  chr:releaseNote "Completes the Brass & rose palette with paper accents derived from the selected dark tints at the prior OKLab lightness, lowered only to clear 4.5:1 text contrast on white. Blue shades and all team contracts remain unchanged." ;
  chr:teamCount "6" .

chr:team-pink a chr:ColorTeam ;
  rdfs:label "Pink Team" ;
  chr:version "1.2.0" ;
  chr:role "Evidence" ;
  chr:discipline "evidence qualification" ;
  chr:heading "Qualify the evidence." ;
  chr:summary "Qualifies market, wallet, and proposal disclosures before another team treats the packet as priceable." ;
  chr:mission "Before a proposal gets a vector classification or priceability review, the Pink Team records what is present, what is missing, and how current it is. It qualifies disclosed specification, delivery terms, corrective access, and causal assumptions without filling gaps or deciding what those terms are worth." ;
  chr:accent "#9f657e" ;
  chr:contractInputs "Evidence packet: Wallet history, funding path, stake accumulation and recovery, trade execution, market data, a source-dated treasury snapshot, and time-stamped proposal disclosures covering material facts, the disclosure cutoff, specification, delivery enforcement, participation access, branch dependencies, and causal assumptions. For a launch-covenant record, the packet is the disclosed terms at issuance." ;
  chr:contractOutputs "Coverage state: Availability, confidence, source freshness, field-level forensic coverage, disclosure qualification, and an explicit withheld state when required evidence is incomplete; a vector classification never runs without its own complete evidence gate." ;
  chr:contractHandoff "Qualified record: Complete forensic evidence can move to monitored-vector matching; qualified proposal terms can move to priceability stress testing. Partial and unavailable packets keep their uncertainty attached for every downstream team." ;
  chr:boundaryRule "Missing wallet-forensics or market inputs never classify LOW. Work can be withheld as UNSCORED, UNKNOWN, STALE, or UNDER_REVIEW." ;
  chr:boundaryRule "The Pink Team qualifies evidence; it never scores a proposal and never fills a gap with a fixture value." ;
  chr:boundaryRule "A disclosed term is not proof that delivery is enforceable, a branch is independent, or a conditional price is causal." .

chr:team-red a chr:ColorTeam ;
  rdfs:label "Red Team" ;
  chr:version "1.1.0" ;
  chr:role "Attack" ;
  chr:discipline "attack testing" ;
  chr:heading "Try to break it." ;
  chr:summary "Stress-tests proposer-controlled semantics and runs only monitored economic attack playbooks against evidence." ;
  chr:mission "The Red Team stress-tests proposer-controlled specification, delivery options, participation constraints, and branch dependencies, then runs versioned monitored playbooks against qualified evidence. Every classified result belongs to one mechanism, and no match is not a claim of safety. Documented threats remain sourced hypotheses with detector requirements: Red may challenge them but never assess or classify them." ;
  chr:accent "#b85c48" ;
  chr:contractInputs "Qualified packet: A Pink-qualified packet: wallet history, funding path, accumulation, stake recovery, execution series, and the complete time-stamped semantics the proposer asks the market to price." ;
  chr:contractOutputs "Vector finding: A semantic stress-test record plus, only for a monitored detector with complete evidence, a count of matched indicators and a classification scoped to that one vector; otherwise the state is explicitly withheld or documented-only." ;
  chr:contractHandoff "Scoped result: A monitored finding travels with its vector id, version, and scope note. A documented threat travels as an unclassified candidate and evidence request. The White Team checks both claim boundaries before publication." ;
  chr:boundaryRule "Indicators are never added across vectors into a composite proposal-risk score." ;
  chr:boundaryRule "A documented vector never produces a classification; only monitored vectors run." ;
  chr:boundaryRule "A vector no-match is never presented as a safety rating." ;
  chr:boundaryRule "A proposer-controlled semantic weakness may be stress-tested without being asserted as an attack finding." .

chr:team-blue a chr:ColorTeam ;
  rdfs:label "Blue Team" ;
  chr:version "1.5.0" ;
  chr:role "Market" ;
  chr:discipline "market watch" ;
  chr:heading "Watch the market." ;
  chr:summary "Observes live decision fragility and corrective participation access without turning either into a rating." ;
  chr:mission "The Blue Team reads confirmed proposal state, pass-market and fail-market TWAPs, the DAO’s configured threshold, and observable access to corrective pass/fail exposure. It describes decision fragility and participation constraints as market structure; its observations stay separate from the Red Team’s forensic result." ;
  chr:accent "#3c79bd" ;
  chr:contractInputs "Confirmed accounts: Futarchy proposal and DAO accounts provide current state, proposal class, the configured threshold, and pass/fail TWAP accumulators; venue rules and live depth describe who can supply corrective exposure. Where a proposal's conditional swaps are indexed, that public event record supplies the signed order flow, and it states how much of the window it reaches." ;
  chr:contractOutputs "Threshold read: The pass-market TWAP must beat the configured threshold over the fail-market TWAP. Retained reads report margin, crossings, closing-stretch pressure, corrective access, and disclosed-depth flip cost; an indexed swap record additionally reports order-flow toxicity, signed imbalance, cumulative delta, per-pool price impact, and participation structure, each separately. Live math stays provisional; after settlement, the tape sits beneath the account’s authoritative outcome." ;
  chr:contractHandoff "Defense watch: Market state, corrective access, and decision fragility travel beside forensic context without standing in for missing wallet history, volume, execution evidence, or causal attribution." ;
  chr:boundaryRule "The Blue Team may not invent forensics: live rows keep attack indicators dark until an indexer exists." ;
  chr:boundaryRule "Provisional live math is never presented as a final outcome." ;
  chr:boundaryRule "A pressure watch is a market observation over retained TWAP reads; it never becomes an attack-vector indicator or classification." ;
  chr:boundaryRule "A flip-cost figure is a lower bound under stated assumptions; it is never a safety rating." ;
  chr:boundaryRule "An order-flow toxicity reading is a measurement of imbalance in volume time. A decision market concludes by trading one-sided, so a high reading is never an attack finding and a low one is never safety." ;
  chr:boundaryRule "Microstructure readings ship separately and are never folded into a signal-credibility or market-quality index; a composite hides which input moved." ;
  chr:boundaryRule "A metric that presupposes a limit order book is refused rather than approximated. These are constant-product pools with no bid, ask, queue, or maker inventory." ;
  chr:boundaryRule "Corrective-access and decision-fragility observations are not approval, a causal claim, an attack finding, or a rating." .

chr:team-yellow a chr:ColorTeam ;
  rdfs:label "Yellow Team" ;
  chr:version "1.2.0" ;
  chr:role "Playbooks" ;
  chr:discipline "playbook building" ;
  chr:heading "Codify the research." ;
  chr:summary "Versions sourced attack candidates, evidence gates, and runnable checks without promoting theory into findings." ;
  chr:mission "The Yellow Team turns published investigations into reusable definitions. A proposal-priceability candidate gets a stable name, semver version, source, explicit assumptions, evidence requirements, indicators, and detector-pending status before any implementation exists; the incident or theory never becomes a classification." ;
  chr:accent "#927212" ;
  chr:contractInputs "Published intelligence: Cited proposal records, market math, wallet forensics, explicit observations, theoretical mechanisms, counterarguments, and falsifiers from published source research." ;
  chr:contractOutputs "Runnable definition: A versioned monitored mechanism with ordered indicators and an independent scope boundary, or a documented candidate with its detector evidence gate left visibly pending; covenant checks remain versioned against published launch terms." ;
  chr:contractHandoff "Standing check: The Red Team receives runnable monitored playbooks and unclassified documented candidates. Published cases and theory remain provenance beneath them rather than hard-coded conclusions." ;
  chr:boundaryRule "The incident never becomes the detector’s name." ;
  chr:boundaryRule "A playbook ships only with a stable id, a semver version, ordered indicators, methodology sources, and a scope note." ;
  chr:boundaryRule "A sourced candidate stays documented until its named evidence gate and detector both ship." .

chr:team-purple a chr:ColorTeam ;
  rdfs:label "Purple Team" ;
  chr:version "1.1.0" ;
  chr:role "Learning" ;
  chr:discipline "learning loop" ;
  chr:heading "Close the loop." ;
  chr:summary "Retains observed outcomes and falsifiers so later reviews can learn without inventing counterfactuals." ;
  chr:mission "The Purple Team links what the Red Team learned in published cases with what the Blue Team should watch next. For proposal-priceability candidates it retains disclosed assumptions, observed outcomes, sanctions, delivery, and falsifiers while keeping unobserved branches explicitly unobserved." ;
  chr:accent "#856c9e" ;
  chr:contractInputs "Closed cases: Published incidents and experiments with their evidence, market outcome, delivery record, falsifiers, and vector result preserved together as cited replays." ;
  chr:contractOutputs "Standing checks: Reusable, versioned checks and documented-candidate evidence updates extracted from observed outcomes, with unresolved and counterfactual outcomes kept out." ;
  chr:contractHandoff "Refreshed watch: The Blue Team and Red Team receive the updated check and its falsifiers; the old case keeps its citation, observed branches, and uncertainty as a replay." ;
  chr:boundaryRule "The check moves forward; the old case’s conclusion does not." ;
  chr:boundaryRule "An uncited lesson does not enter the loop — every replay keeps its source." ;
  chr:boundaryRule "An unobserved branch is never invented to declare what would have happened under a different decision." .

chr:team-white a chr:ColorTeam ;
  rdfs:label "White Team" ;
  chr:version "1.2.0" ;
  chr:role "Claims" ;
  chr:discipline "claim control" ;
  chr:heading "Keep claims honest." ;
  chr:summary "Refuses approval, causal-proof, composite, and safety claims; a vector no-match is never a safety rating." ;
  chr:mission "The White Team checks the boundary around every published conclusion: what was measured, which vector it belongs to, whether evidence was complete, which causal assumptions remain unsettled, and what the result cannot establish. It refuses to turn six lane findings into approval, causal proof, a composite score, or a safety rating." ;
  chr:accent "#7b7569" ;
  chr:contractInputs "Draft findings: Every team’s finding with its evidence state, vector scope, data vintage, proposal terms, causal assumptions, and documented-versus-monitored status attached." ;
  chr:contractOutputs "Publishable claims: Claims trimmed to what the evidence establishes, with withheld states and detector-pending threats explicit rather than rounded into approval, causal proof, or safety." ;
  chr:contractHandoff "Published record: Only scoped, cited, per-lane claims reach the page; approval, causal-proof, composite, and safety language goes back to the team that made it." ;
  chr:boundaryRule "Complete evidence with 0–1 matched indicators is NO-MATCH, never LOW. NO-MATCH means this vector did not match; it does not mean the proposal is safe." ;
  chr:boundaryRule "A classification never leaves its vector’s scope; market outcome and forensic match stay separate." ;
  chr:boundaryRule "A covenant review is never a proposal classification: unknown covenant terms stay unknown, and a disclosed covenant is not a safety rating." ;
  chr:boundaryRule "No roster output approves a proposal, proves causation, combines lanes into a composite score, or supplies a safety rating." .

chr:mechanism-futarchy a chr:Futarchy ;
  rdfs:label "Futarchy" ;
  chr:definition "Market-based governance: a voted welfare metric, conditional markets pricing each decision branch, and a published rule that turns conditional prints into the outcome." .

chr:component-welfare-metric a chr:MechanismComponent ;
  rdfs:label "Welfare metric" ;
  chr:definition "The measure of value the venue asks its markets to optimize — what conditional prices are read as forecasts of." .

chr:component-conditional-market-pair a chr:MechanismComponent ;
  rdfs:label "Conditional market pair" ;
  chr:definition "The pass and fail conditional markets that price the proposal's two futures against each other." .

chr:component-twap-oracle a chr:MechanismComponent ;
  rdfs:label "TWAP oracle" ;
  chr:definition "The time-weighted average price accumulator that turns each conditional market's trade series into the print the decision rule reads." .

chr:component-decision-rule a chr:MechanismComponent ;
  rdfs:label "Decision rule" ;
  chr:definition "The published rule that turns conditional prints into an outcome — which TWAPs are compared, over what window, against what configured threshold." .

chr:component-full-window-twap-rule a chr:MechanismComponent ;
  rdfs:label "Full-window TWAP rule" ;
  chr:definition "A decision rule that accrues resolving weight across the whole decision period, so late trades carry the least time-weight." .

chr:component-terminal-window-twap-rule a chr:MechanismComponent ;
  rdfs:label "Terminal-window TWAP rule" ;
  chr:definition "A decision rule that accrues all resolving weight in a short terminal slice of a much longer decision period." .

chr:component-stake-requirement a chr:MechanismComponent ;
  rdfs:label "Stake requirement" ;
  chr:definition "The stake a proposer must post for eligibility — its size, its recoverability, and its per-address accounting." .

chr:component-alignment-signal a chr:MechanismComponent ;
  rdfs:label "Alignment signal" ;
  chr:definition "The observer-facing reading of volume and economic alignment around a market — evidence about conviction, not part of the decision rule." .

chr:component-execution-binding a chr:MechanismComponent ;
  rdfs:label "Execution binding" ;
  chr:definition "Whether the market's outcome executes onchain (binding) or informs a vote or a bound delegate while executing nothing (advisory)." .

chr:component-gatekeeper-role a chr:MechanismComponent ;
  rdfs:label "Gatekeeper role" ;
  chr:definition "Whoever curates which proposals reach a market — the trusted-gatekeeper dependency named in the published insecurity result." .

chr:component-proposal-specification a chr:MechanismComponent ;
  rdfs:label "Proposal specification" ;
  chr:definition "The complete, time-stamped terms a market is asked to price — counterparties, scope, fees, milestones, dependencies, and value-relevant disclosures." .

chr:component-delivery-enforcement a chr:MechanismComponent ;
  rdfs:label "Delivery enforcement" ;
  chr:definition "The obligations, escrow, remedies, and recourse that make promised post-passage delivery binding rather than optional under weak resistance." .

chr:component-corrective-participation-access a chr:MechanismComponent ;
  rdfs:label "Corrective participation access" ;
  chr:definition "Who can create corrective pass/fail exposure, on what collateral terms, and whether opposition requires an existing holder to exit the underlying asset." .

chr:component-branch-independence a chr:MechanismComponent ;
  rdfs:label "Branch independence" ;
  chr:definition "Whether pass and fail describe the proposal's execution and non-execution without proposer-controlled retaliation or another action that poisons one branch." .

chr:component-causal-assumption-transparency a chr:MechanismComponent ;
  rdfs:label "Causal-assumption transparency" ;
  chr:definition "The explicit assumptions under which a conditional price is read as evidence about the proposal's causal effect. This uncovered detector surface records an unsettled inference; it is not causal proof, a finding, or a classification." .

chr:metadao-futarchy-v0-6 a chr:FutarchyImplementation ;
  rdfs:label "MetaDAO Futarchy v0.6" ;
  chr:sourceLabel "MetaDAO documentation (TWAP window mechanics)" ;
  chr:sourceUrl "https://docs.metadao.fi" .

chr:kleros-kip-76 a chr:FutarchyImplementation ;
  rdfs:label "Kleros KIP-76" ;
  chr:sourceLabel "Kleros KIP-76 — Futarchy-Based Governance Rule for PNK Minting (Snapshot, kleros.eth)" ;
  chr:sourceUrl "https://snapshot.org/#/kleros.eth/proposal/0xa213179debfca1cb5b8f65ac9d641e6e4e8fb5df480196c909e9ae1ab548daa7" .

chr:gnosis-gip-145 a chr:FutarchyImplementation ;
  rdfs:label "Gnosis GIP-145 pilot" ;
  chr:sourceLabel "Gnosis forum — GIP-145 futarchy pilot discussion" ;
  chr:sourceUrl "https://forum.gnosis.io/t/11816" .

chr:optimism-futarchy-v1 a chr:FutarchyImplementation ;
  rdfs:label "Optimism Futarchy v1" ;
  chr:sourceLabel "Optimism governance — Futarchy v1 preliminary findings" ;
  chr:sourceUrl "https://gov.optimism.io/t/futarchy-v1-preliminary-findings/10062" .

chr:onchain-twap-accumulator a chr:OnchainConstruct ;
  rdfs:label "TWAP accumulator" ;
  chr:definition "Decoded from confirmed MetaDAO Futarchy v0.6 program accounts by the live read." .

chr:onchain-conditional-amm-pair a chr:OnchainConstruct ;
  rdfs:label "Conditional AMM pair" ;
  chr:definition "Decoded from confirmed MetaDAO Futarchy v0.6 program accounts by the live read." .

chr:onchain-dao-account a chr:OnchainConstruct ;
  rdfs:label "DAO account (configured threshold)" ;
  chr:definition "Decoded from confirmed MetaDAO Futarchy v0.6 program accounts by the live read." .

chr:onchain-proposal-stake a chr:OnchainConstruct ;
  rdfs:label "Proposal stake" ;
  chr:definition "Decoded from confirmed MetaDAO Futarchy v0.6 program accounts by the live read." .

chr:recycled-stake-treasury-extraction a chr:MonitoredVector ;
  rdfs:label "Recycled-stake treasury extraction" ;
  chr:version "1.0.2" ;
  chr:status "monitored" ;
  chr:category "Economic governance attack" ;
  chr: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." ;
  chr:scopeNote "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety." .

chr:recycled-stake-treasury-extraction-fresh-wallet a chr:Indicator ;
  rdfs:label "Fresh wallet with no prior history" ;
  chr:role "Identity context" ;
  chr:position 1 .

chr:recycled-stake-treasury-extraction-bridge-funding a chr:Indicator ;
  rdfs:label "Cross-chain / bridge funding" ;
  chr:role "Funding context" ;
  chr:position 2 .

chr:recycled-stake-treasury-extraction-exact-stake-trim a chr:Indicator ;
  rdfs:label "Accumulation trimmed to exact proposal-stake threshold" ;
  chr:role "Eligibility acquisition" ;
  chr:position 3 .

chr:recycled-stake-treasury-extraction-stake-recover-reuse a chr:Indicator ;
  rdfs:label "Stake recovered and reused in the decision market" ;
  chr:role "Capital reuse" ;
  chr:position 4 .

chr:recycled-stake-treasury-extraction-clustered-cadence a chr:Indicator ;
  rdfs:label "Clustered fixed-size cadence trades" ;
  chr:role "Market execution" ;
  chr:position 5 .

chr:detector-recycled-stake-treasury-extraction a chr:Detector ;
  rdfs:label "Recycled-stake treasury extraction detector" ;
  chr:version "1.0.2" .

chr:source-01resolved-com-research-the-umbra-treasury-attack-cost-its-attacker-4-623 a chr:MethodologySource ;
  rdfs:label "01Resolved — The Umbra treasury attack cost its attacker $4,623" ;
  chr:sourceUrl "https://01resolved.com/research/the-umbra-treasury-attack-cost-its-attacker-4-623/" .

chr:case-umbra-treasury-attack-2026-08 a chr:CaseStudy ;
  rdfs:label "Umbra's Decision Market Rejected a $1.5M Treasury Attack" ;
  chr:projectSlug "umbra" ;
  chr:proposal "8sysa3XPrvKPmUA4qoZCn9h4vp7Mb45Ynezg542nui8Q" ;
  chr:publisher "01Resolved" ;
  chr:publishedAt "2026-08-05" ;
  chr:sourceUrl "https://01resolved.com/research/the-umbra-treasury-attack-cost-its-attacker-4-623/" .

chr:late-window-outcome-steering a chr:MonitoredVector ;
  rdfs:label "Late-window TWAP outcome steering" ;
  chr:version "2.0.0" ;
  chr:status "monitored" ;
  chr:category "Decision-market manipulation" ;
  chr: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." ;
  chr:scopeNote "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety." .

chr:late-window-outcome-steering-late-weight-concentration a chr:Indicator ;
  rdfs:label "Aligned volume concentrated in the closing hours of the TWAP window" ;
  chr:role "Timing" ;
  chr:position 1 .

chr:late-window-outcome-steering-single-trade-fragility a chr:Indicator ;
  rdfs:label "Printed outcome crosses the threshold on one marginal trade" ;
  chr:role "Fragility" ;
  chr:position 2 .

chr:late-window-outcome-steering-thin-depth-move a chr:Indicator ;
  rdfs:label "Price move outsized against posted depth near the threshold" ;
  chr:role "Liquidity" ;
  chr:position 3 .

chr:late-window-outcome-steering-post-window-snap-back a chr:Indicator ;
  rdfs:label "Price snaps back once TWAP weight stops accruing" ;
  chr:role "Reversal" ;
  chr:position 4 .

chr:late-window-outcome-steering-spike-clears-configured-threshold a chr:Indicator ;
  rdfs:label "Intra-window spike alone would clear the configured threshold" ;
  chr:role "Threshold pressure" ;
  chr:position 5 .

chr:detector-late-window-outcome-steering a chr:Detector ;
  rdfs:label "Late-window TWAP outcome steering detector" ;
  chr:version "2.0.0" .

chr:source-01resolved-com-research a chr:MethodologySource ;
  rdfs:label "01Resolved — research index (late-activity taxonomy and signal quality)" ;
  chr:sourceUrl "https://01resolved.com/research/" .

chr:source-docs-metadao-fi a chr:MethodologySource ;
  rdfs:label "MetaDAO documentation (TWAP window mechanics)" ;
  chr:sourceUrl "https://docs.metadao.fi" .

chr:wash-volume-alignment-inflation a chr:MonitoredVector ;
  rdfs:label "Wash-volume alignment inflation" ;
  chr:version "2.0.1" ;
  chr:status "monitored" ;
  chr:category "Decision-market manipulation" ;
  chr: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." ;
  chr:scopeNote "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety." .

chr:wash-volume-alignment-inflation-paired-branch-executions a chr:Indicator ;
  rdfs:label "Paired pass-market and fail-market executions from one wallet" ;
  chr:role "Execution symmetry" ;
  chr:position 1 .

chr:wash-volume-alignment-inflation-fixed-size-cluster a chr:Indicator ;
  rdfs:label "Fixed-size trade clusters at machine cadence" ;
  chr:role "Cadence" ;
  chr:position 2 .

chr:wash-volume-alignment-inflation-near-neutral-net a chr:Indicator ;
  rdfs:label "Near-neutral ending exposure despite high turnover" ;
  chr:role "Exposure" ;
  chr:position 3 .

chr:wash-volume-alignment-inflation-arb-frequency-band a chr:Indicator ;
  rdfs:label "Per-wallet trade frequency in the arbitrage band" ;
  chr:role "Frequency" ;
  chr:position 4 .

chr:wash-volume-alignment-inflation-stripped-tilt-shift a chr:Indicator ;
  rdfs:label "Net volume tilt moves materially once the flow is stripped" ;
  chr:role "Alignment distortion" ;
  chr:position 5 .

chr:detector-wash-volume-alignment-inflation a chr:Detector ;
  rdfs:label "Wash-volume alignment inflation detector" ;
  chr:version "2.0.1" .

chr:source-01resolved-com a chr:MethodologySource ;
  rdfs:label "01Resolved — platform (Decision Market Analysis Model)" ;
  chr:sourceUrl "https://www.01resolved.com/" .

chr:coordinated-multiwallet-stake-assembly a chr:MonitoredVector ;
  rdfs:label "Coordinated multi-wallet stake assembly" ;
  chr:version "2.0.0" ;
  chr:status "monitored" ;
  chr:category "Economic governance attack" ;
  chr: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." ;
  chr:scopeNote "This classification is scoped to one monitored attack vector, not a validated composite proposal-risk score or a complete claim of safety." .

chr:coordinated-multiwallet-stake-assembly-common-funding-source a chr:Indicator ;
  rdfs:label "Participating wallets funded from one upstream source" ;
  chr:role "Funding context" ;
  chr:position 1 .

chr:coordinated-multiwallet-stake-assembly-synchronized-first-activity a chr:Indicator ;
  rdfs:label "Wallets first active inside a tight shared window" ;
  chr:role "Identity context" ;
  chr:position 2 .

chr:coordinated-multiwallet-stake-assembly-split-threshold-assembly a chr:Indicator ;
  rdfs:label "Combined position crosses a stake threshold no single wallet crosses" ;
  chr:role "Eligibility acquisition" ;
  chr:position 3 .

chr:coordinated-multiwallet-stake-assembly-shared-execution-fingerprint a chr:Indicator ;
  rdfs:label "Matching trade-size and cadence fingerprint across wallets" ;
  chr:role "Market execution" ;
  chr:position 4 .

chr:coordinated-multiwallet-stake-assembly-synchronized-exit a chr:Indicator ;
  rdfs:label "Coordinated exit across the wallet set after resolution" ;
  chr:role "Exit behavior" ;
  chr:position 5 .

chr:detector-coordinated-multiwallet-stake-assembly a chr:Detector ;
  rdfs:label "Coordinated multi-wallet stake assembly detector" ;
  chr:version "2.0.0" .

chr:source-01resolved-com-research-ownership-score-what-the-first-experiment-reveals a chr:MethodologySource ;
  rdfs:label "01Resolved — Ownership Score, what the first experiment reveals" ;
  chr:sourceUrl "https://01resolved.com/research/ownership-score-what-the-first-experiment-reveals/" .

chr:terminal-window-twap-capture a chr:DocumentedVector ;
  rdfs:label "Terminal-window TWAP capture" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Decision-market manipulation" ;
  chr: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." ;
  chr: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." .

chr:terminal-window-twap-capture-terminal-only-weight a chr:Indicator ;
  rdfs:label "All resolving TWAP weight accrues in a terminal window that is a small fraction of the decision period" ;
  chr:role "Window structure" ;
  chr:position 1 .

chr:terminal-window-twap-capture-floor-hugging-liquidity a chr:Indicator ;
  rdfs:label "Full-range depth sits at or barely above the published liquidity floor" ;
  chr:role "Liquidity" ;
  chr:position 2 .

chr:terminal-window-twap-capture-quiet-then-capture a chr:Indicator ;
  rdfs:label "Markets stay quiet until the resolving window opens, then absorb concentrated aligned flow" ;
  chr:role "Timing" ;
  chr:position 3 .

chr:terminal-window-twap-capture-in-window-inversion a chr:Indicator ;
  rdfs:label "Pass/fail ordering flips inside the resolving window after holding steady before it" ;
  chr:role "Fragility" ;
  chr:position 4 .

chr:terminal-window-twap-capture-post-window-reversion a chr:Indicator ;
  rdfs:label "Prices revert once the terminal window closes and weight stops accruing" ;
  chr:role "Reversal" ;
  chr:position 5 .

chr:source-snapshot-org-kleros-eth-proposal-0xa213179debfca1cb5b8f65ac9d641e6e4e8fb5df48019 a chr:MethodologySource ;
  rdfs:label "Kleros KIP-76 — Futarchy-Based Governance Rule for PNK Minting (Snapshot, kleros.eth)" ;
  chr:sourceUrl "https://snapshot.org/#/kleros.eth/proposal/0xa213179debfca1cb5b8f65ac9d641e6e4e8fb5df480196c909e9ae1ab548daa7" .

chr:source-ethresear-ch-t-futarchy-is-insecure-without-a-trusted-gatekeeper-25235 a chr:MethodologySource ;
  rdfs:label "ethresear.ch — Futarchy is insecure without a trusted gatekeeper" ;
  chr:sourceUrl "https://ethresear.ch/t/futarchy-is-insecure-without-a-trusted-gatekeeper/25235" .

chr:advisory-signal-inflation a chr:DocumentedVector ;
  rdfs:label "Advisory-signal inflation" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Governance-signal manipulation" ;
  chr: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." ;
  chr: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." .

chr:advisory-signal-inflation-stakeless-directional-print a chr:Indicator ;
  rdfs:label "Directional prints arrive without exposure held through the signal read" ;
  chr:role "Exposure" ;
  chr:position 1 .

chr:advisory-signal-inflation-signal-scale-mismatch a chr:Indicator ;
  rdfs:label "Signal-moving flow is trivial against the decision's stated stakes" ;
  chr:role "Capital sizing" ;
  chr:position 2 .

chr:advisory-signal-inflation-read-timed-concentration a chr:Indicator ;
  rdfs:label "Aligned flow concentrates just before the signal is read or a bound delegate executes" ;
  chr:role "Timing" ;
  chr:position 3 .

chr:advisory-signal-inflation-venue-alignment-divergence a chr:Indicator ;
  rdfs:label "Market signal diverges from the venue's own vote and forum alignment" ;
  chr:role "Cross-check" ;
  chr:position 4 .

chr:advisory-signal-inflation-post-read-unwind a chr:Indicator ;
  rdfs:label "Positions unwind once the advisory signal has been consumed" ;
  chr:role "Reversal" ;
  chr:position 5 .

chr:source-forum-gnosis-io-t-11816 a chr:MethodologySource ;
  rdfs:label "Gnosis forum — GIP-145 futarchy pilot discussion" ;
  chr:sourceUrl "https://forum.gnosis.io/t/11816" .

chr:source-forum-gnosis-io-t-12197 a chr:MethodologySource ;
  rdfs:label "Gnosis forum — futarchist.eth, a delegate bound to the futarchy signal" ;
  chr:sourceUrl "https://forum.gnosis.io/t/12197" .

chr:source-gov-optimism-io-t-futarchy-v1-preliminary-findings-10062 a chr:MethodologySource ;
  rdfs:label "Optimism governance — Futarchy v1 preliminary findings" ;
  chr:sourceUrl "https://gov.optimism.io/t/futarchy-v1-preliminary-findings/10062" .

chr:resistance-contingent-delivery a chr:DocumentedVector ;
  rdfs:label "Resistance-contingent delivery" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Proposal-priceability failure" ;
  chr:description "A proposer leaves delivery discretionary, defends the pass/fail spread, and performs the promised work only when corrective trading makes continued price defense more expensive than delivery. The market can price the value of the promised work without pricing an enforceable obligation to perform it. This is a candidate mechanism from published threat-model research, not an observed attack finding." ;
  chr: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." .

chr:resistance-contingent-delivery-discretionary-delivery-terms a chr:Indicator ;
  rdfs:label "Proposal terms leave value-creating delivery at the proposer's discretion" ;
  chr:role "Delivery terms" ;
  chr:position 1 .

chr:resistance-contingent-delivery-pass-defense-before-delivery a chr:Indicator ;
  rdfs:label "Proposer-controlled pass-price defense appears before evidence of delivery" ;
  chr:role "Market execution" ;
  chr:position 2 .

chr:resistance-contingent-delivery-resistance-linked-performance a chr:Indicator ;
  rdfs:label "Delivery begins or improves only after corrective sell pressure rises" ;
  chr:role "Contingency" ;
  chr:position 3 .

chr:resistance-contingent-delivery-unenforceable-nonperformance a chr:Indicator ;
  rdfs:label "Non-delivery carries no enforceable loss comparable with the proposal benefit" ;
  chr:role "Enforcement" ;
  chr:position 4 .

chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat a chr:MethodologySource ;
  rdfs:label "LessWrong — Futarchy is insecure without a trusted gatekeeper" ;
  chr:sourceUrl "https://www.lesswrong.com/posts/oAKsuX5XpPxFSEoHM/futarchy-is-insecure-without-a-trusted-gatekeeper" .

chr:conditional-holder-exit-supply-failure a chr:DocumentedVector ;
  rdfs:label "Conditional holder-exit supply failure" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Proposal-priceability failure" ;
  chr:description "Corrective pass-branch selling is constrained because a spot holder who sells is conditionally exiting the underlying asset, not merely opposing the proposal, while non-holders may lack short access and synthetic sellers bear adverse-selection risk. Mild proposal harm can therefore face less corrective supply than its holder base suggests. This is a candidate market-access mechanism, not evidence that a thin book was manipulated." ;
  chr: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." .

chr:conditional-holder-exit-supply-failure-holder-only-pass-supply a chr:Indicator ;
  rdfs:label "Pass-branch sell flow is limited to existing holders willing to exit after passage" ;
  chr:role "Participation access" ;
  chr:position 1 .

chr:conditional-holder-exit-supply-failure-no-synthetic-short-access a chr:Indicator ;
  rdfs:label "Non-holders cannot create pass-branch short exposure" ;
  chr:role "Market access" ;
  chr:position 2 .

chr:conditional-holder-exit-supply-failure-corrective-flow-below-private-benefit a chr:Indicator ;
  rdfs:label "Corrective flow below the passage threshold is small against the proposer's private benefit" ;
  chr:role "Capital sizing" ;
  chr:position 3 .

chr:conditional-holder-exit-supply-failure-short-side-adverse-selection a chr:Indicator ;
  rdfs:label "Withheld proposal information creates material adverse-selection risk for corrective sellers" ;
  chr:role "Risk bearing" ;
  chr:position 4 .

chr:proposal-convexity-selection a chr:DocumentedVector ;
  rdfs:label "Proposal-convexity selection" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Proposal-priceability failure" ;
  chr:description "A proposer submits before material proposal-specific uncertainty resolves, so passage selects for favorable-information worlds and the pass price can exceed the fail price even when unconditional approval has negative expected value. The mechanism depends on an unsettled conditional-versus-causal argument and records that causal assumption rather than claiming proof." ;
  chr: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." .

chr:proposal-convexity-selection-material-unresolved-detail a chr:Indicator ;
  rdfs:label "A material proposal-specific fact remains unresolved when the decision window opens" ;
  chr:role "Causal assumption" ;
  chr:position 1 .

chr:proposal-convexity-selection-information-resolves-in-window a chr:Indicator ;
  rdfs:label "The unresolved fact can become known before the market-guided decision executes" ;
  chr:role "Selection timing" ;
  chr:position 2 .

chr:proposal-convexity-selection-favorable-state-passage-coupling a chr:Indicator ;
  rdfs:label "Favorable realizations are mechanically more likely to produce passage" ;
  chr:role "Conditional selection" ;
  chr:position 3 .

chr:proposal-convexity-selection-conditional-unconditional-value-gap a chr:Indicator ;
  rdfs:label "Conditional pass value and ex ante approval value diverge under disclosed assumptions" ;
  chr:role "Value model" ;
  chr:position 4 .

chr:source-lesswrong-com-posts-mw4ypzr6ctwkqncvp-futarchy-is-parasitic-on-what-it-tries-to a chr:MethodologySource ;
  rdfs:label "LessWrong — Futarchy is Parasitic on What It Tries to Govern" ;
  chr:sourceUrl "https://www.lesswrong.com/posts/mW4ypzR6cTwKqncvp/futarchy-is-parasitic-on-what-it-tries-to-govern" .

chr:source-lesswrong-com-posts-deoyawznnktm5gmnm-no-futarchy-doesn-t-have-this-edt-flaw a chr:MethodologySource ;
  rdfs:label "LessWrong — No, Futarchy Doesn't Have This EDT Flaw" ;
  chr:sourceUrl "https://www.lesswrong.com/posts/dEoyaWznnKtM5GMnM/no-futarchy-doesn-t-have-this-edt-flaw" .

chr:countertrade-adverse-selection-deterrence a chr:DocumentedVector ;
  rdfs:label "Countertrade adverse-selection deterrence" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Proposal-priceability failure" ;
  chr:description "A proposer withholds value-relevant specification and buys pass exposure, while corrective traders hesitate because the missing terms might conceal either a harmful deal or favorable private information that makes selling costly. The resulting participation gap is a candidate proposal-specification threat, not a classification of every confidential proposal." ;
  chr: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." .

chr:countertrade-adverse-selection-deterrence-withheld-value-terms a chr:Indicator ;
  rdfs:label "Counterparty, scope, fees, milestones, or performance commitments are withheld" ;
  chr:role "Proposal specification" ;
  chr:position 1 .

chr:countertrade-adverse-selection-deterrence-proposer-pass-accumulation a chr:Indicator ;
  rdfs:label "Proposer-linked wallets accumulate pass exposure while material terms remain hidden" ;
  chr:role "Market execution" ;
  chr:position 2 .

chr:countertrade-adverse-selection-deterrence-hidden-good-loss-dominates a chr:Indicator ;
  rdfs:label "Corrective sellers face larger losses in a plausible hidden-good state than gains in the visible bad state" ;
  chr:role "Adverse selection" ;
  chr:position 3 .

chr:countertrade-adverse-selection-deterrence-late-specification-release a chr:Indicator ;
  rdfs:label "Value-relevant terms arrive only after corrective participation has been deterred" ;
  chr:role "Disclosure timing" ;
  chr:position 4 .

chr:fail-branch-sabotage a chr:DocumentedVector ;
  rdfs:label "Fail-branch sabotage" ;
  chr:version "1.0.0" ;
  chr:status "documented" ;
  chr:category "Proposal-priceability failure" ;
  chr:description "A proposer credibly commits to withdrawing support, liquidity, or another dependency if rejected, making the fail branch worse until accepting an otherwise harmful proposal becomes the locally higher-priced outcome. The candidate mechanism concerns branch independence and commitment, not proof that an observed fail discount was retaliation." ;
  chr: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." .

chr:fail-branch-sabotage-rejection-contingent-threat a chr:Indicator ;
  rdfs:label "A proposer-controlled harm is explicitly or implicitly contingent on rejection" ;
  chr:role "Branch independence" ;
  chr:position 1 .

chr:fail-branch-sabotage-credible-sabotage-capability a chr:Indicator ;
  rdfs:label "The proposer controls a dependency capable of imposing the threatened harm" ;
  chr:role "Capability" ;
  chr:position 2 .

chr:fail-branch-sabotage-fail-discount-tracks-threat a chr:Indicator ;
  rdfs:label "The fail-branch discount appears with or strengthens after the threat" ;
  chr:role "Market response" ;
  chr:position 3 .

chr:fail-branch-sabotage-off-path-private-cost-gap a chr:Indicator ;
  rdfs:label "The proposer's off-path cost of carrying out the threat is smaller than the organization's loss" ;
  chr:role "Incentive" ;
  chr:position 4 .

chr:covenant-stamp a chr:LaunchCovenant ;
  rdfs:label "STAMP launch covenant" ;
  chr:investorReserveCapPct 20 ;
  chr:teamAllocationMinPct 10 ;
  chr:teamAllocationMaxPct 40 ;
  chr:vestingMonths 24 ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-use-of-proceeds-restricted a chr:CovenantCheck ;
  rdfs:label "Use of proceeds restricted" ;
  chr:version "1.0.0" ;
  chr:detail "Funds can only be used for product development and operating expenses." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-investor-reserve-capped a chr:CovenantCheck ;
  rdfs:label "Investor reserve capped and non-dilutable" ;
  chr:version "1.0.0" ;
  chr:detail "Investor reserve at most 20% of total project tokens and not dilutable post-agreement." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-team-allocation-band a chr:CovenantCheck ;
  rdfs:label "Team allocation in band with milestone vesting" ;
  chr:version "1.0.0" ;
  chr:detail "Team allocation between 10% and 40% of total supply on milestone-based vesting." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-vesting-schedule a chr:CovenantCheck ;
  rdfs:label "Linear unlock schedule" ;
  chr:version "1.0.0" ;
  chr:detail "Tokens enter a 24-month linear unlock once the Delivery Notice is received." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-legal-entity a chr:CovenantCheck ;
  rdfs:label "Cayman SPC/SP entity created" ;
  chr:version "1.0.0" ;
  chr:detail "Founders create a Cayman SPC/SP entity through the venue interface." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:covenant-check-third-party-review a chr:CovenantCheck ;
  rdfs:label "Third-party review commissioned" ;
  chr:version "1.0.0" ;
  chr:detail "A third-party review of the covenant or programs exists. STAMP itself requires none, so absence is the venue default, not a violation." ;
  chr:sourceUrl "https://docs.metadao.fi/how-launches-work/stamp.md" .

chr:instrument-flip-cost-scenario a chr:Instrument ;
  rdfs:label "Flip-cost scenario" ;
  chr:version "1.0.0" ;
  chr:assumption "Constant-product pools: spending q against quote-side depth Q moves spot by the factor (1 + q/Q)^2." ;
  chr:assumption "Single-sided: only buying the pass market up from parity is costed; selling the fail market down is not." ;
  chr:assumption "No defensive or arbitrage flow: every dollar of opposing depth raises the real cost above this floor." ;
  chr:assumption "No swap fees, and move cost only: holding the print across the TWAP window against sellers is not costed." ;
  chr:note "A stated-assumptions lower bound on moving one conditional pool's print; never an indicator, a classification, or a safety rating." .

chr:instrument-order-flow-toxicity a chr:Instrument ;
  rdfs:label "Order-flow toxicity (VPIN)" ;
  chr:version "1.0.0" ;
  chr:assumption "Volume clock: trades are bucketed into equal-volume buckets in the chain's own order, and a trade that straddles a boundary is split across both buckets. Time is not the axis." ;
  chr:assumption "Exact side, not bulk classification: the published metric estimates the buy/sell split from price changes because a tape carries no initiator side. A ConditionalSwap event carries it, so the split here is read from the chain — these readings are not numerically comparable to BVC-estimated VPIN." ;
  chr:assumption "Direction is economic: buying pass and selling fail count as one side, buying fail and selling pass as the other. A decision market has no single asset to sign against." ;
  chr:assumption "The window is the sample: the mean runs over the whole indexed window rather than the paper's rolling last-n buckets, so this is one reading per proposal, not a rolling series." ;
  chr:assumption "A decision market concludes by trading one-sided, so a high reading is the expected shape of a market that reached a decision — never evidence of informed or manipulative flow, and a low reading is never safety." ;
  chr:assumption "Coverage rides along: where the signature scan did not reach the proposal's opening, the earliest trades are not indexed and the reading covers only the stretch that was." ;
  chr:assumption "Concentration is disclosed, not smoothed: a single order wider than a bucket fixes that bucket's imbalance at 1 on its own, so the reading reports the largest trade as a multiple of a bucket beside the mean." ;
  chr:methodSource "Easley, López de Prado & O'Hara, Flow Toxicity and Liquidity in a High Frequency World, Review of Financial Studies 25(5), 2012" ;
  chr:bucketCount 50 ;
  chr:minimumTrades 40 ;
  chr:note "Mean absolute order-flow imbalance across equal-volume buckets of a proposal's indexed conditional swaps. A measurement, never an indicator, a classification, or a safety rating: a decision market concludes by trading one-sided, so a high reading is the expected shape of a market that decided." .

chr:instrument-microstructure-stack a chr:Instrument ;
  rdfs:label "Microstructure stack" ;
  chr:version "1.0.0" ;
  chr:member "order-flow-imbalance" ;
  chr:member "cumulative-volume-delta" ;
  chr:member "kyle-lambda" ;
  chr:member "amihud-illiquidity" ;
  chr:member "variance-ratio" ;
  chr:member "participation" ;
  chr:member "pre-recording-volume" ;
  chr:note "Seven separate readings over a proposal's indexed conditional swaps, each with its own withheld reasons. They are never folded into a signal-credibility or market-quality index — the same refusal CompositeProposalRiskScore already encodes, for the same reason: a composite hides which input moved." .

chr:unavailable-effective-spread a chr:UnavailableMeasure ;
  rdfs:label "Effective and realized spread" ;
  chr:requires "A quoted mid at fill time, and a maker whose inventory the realized half is measured against." ;
  chr:localSubstitute "An AMM's spread is its fee plus its curve, and both are known exactly rather than estimated. The comparable quantity is a fill's slippage against the pool's pre-trade spot, which needs the reserves the ConditionalSwap event carries and the indexer currently discards." .

chr:unavailable-post-fill-markout a chr:UnavailableMeasure ;
  rdfs:label "Post-fill markout" ;
  chr:requires "The mid a few seconds or minutes after a fill, from a quote series independent of the fills themselves." ;
  chr:localSubstitute "The pool's own post-trade spot is a function of the same trade, so a markout taken against it measures the curve rather than adverse selection. An independent mid would have to come from the retained account reads, whose cadence is minutes, not seconds." .

chr:unavailable-depth-imbalance a chr:UnavailableMeasure ;
  rdfs:label "Depth and near-touch imbalance" ;
  chr:requires "Resting size at the touch and the levels behind it." ;
  chr:localSubstitute "The pool's quote-side reserves are the whole book, and the flip-cost scenario already costs a move against them on both legs." .

chr:unavailable-trade-based-spread-estimators a chr:UnavailableMeasure ;
  rdfs:label "Roll, Gibbs, Corwin-Schultz and Abdi-Ranaldo" ;
  chr:requires "A bid-ask spread that exists but is unobserved, which is what these estimate from prints." ;
  chr:localSubstitute "There is no unobserved spread here to estimate. Publishing one of these would put a confident number on a quantity the venue does not have." .

chr:unavailable-longshot-spread-premium a chr:UnavailableMeasure ;
  rdfs:label "Longshot spread premium" ;
  chr:requires "A bounded contract priced as a probability, where a 2c quote carries payoff leverage a 50c quote does not." ;
  chr:localSubstitute "A futarchy conditional market prices a token under a branch, not a bounded probability, so there is no zero-or-one boundary for a premium to widen against." .

chr:unavailable-self-counterparty-wash a chr:UnavailableMeasure ;
  rdfs:label "Self-counterparty wash share" ;
  chr:requires "Two sides of a fill that can belong to the same beneficial owner." ;
  chr:localSubstitute "The pool is always the counterparty, so a wallet cannot trade with itself. The comparable pattern is a wallet round-tripping both conditional branches, which is a Red-lane wash-volume indicator rather than a Blue-lane market observation." .

chr:unavailable-information-leakage-score a chr:UnavailableMeasure ;
  rdfs:label "Information leakage score" ;
  chr:requires "A public-announcement timestamp for the decision the proposal encodes, sourced independently of the market's own lifecycle." ;
  chr:note "Every timestamp the proposal account carries is a moment the market learned, not a moment the public did. A leakage score anchored to one of them measures the anchor, and its sign flips with the choice." ;
  chr:localSubstitute "The pre-recording volume share is published in its place: it measures against the TWAP start, which is exactly known, and it claims only that flow arrived before the stretch that counts." .

chr:mcp-server a chr:McpServer ;
  rdfs:label "chromatic" ;
  chr:version "2.5.0" ;
  chr:endpoint "/api/mcp" .

chr:tool-list-replays a chr:McpTool ;
  rdfs:label "list_replays" .

chr:tool-qualify-evidence a chr:McpTool ;
  rdfs:label "qualify_evidence" .

chr:tool-scan-attack-vectors a chr:McpTool ;
  rdfs:label "scan_attack_vectors" .

chr:tool-read-decision-market a chr:McpTool ;
  rdfs:label "read_decision_market" .

chr:tool-inspect-playbook a chr:McpTool ;
  rdfs:label "inspect_playbook" .

chr:tool-carry-forward a chr:McpTool ;
  rdfs:label "carry_forward" .

chr:tool-enforce-scope a chr:McpTool ;
  rdfs:label "enforce_scope" .

chr:tool-get-team-contracts a chr:McpTool ;
  rdfs:label "get_team_contracts" .

chr:tool-map-attack-surface a chr:McpTool ;
  rdfs:label "map_attack_surface" .

chr:tool-get-live-proposals a chr:McpTool ;
  rdfs:label "get_live_proposals" .

chr:tool-map-live-exposure a chr:McpTool ;
  rdfs:label "map_live_exposure" .

chr:tool-pull-lane-packet a chr:McpTool ;
  rdfs:label "pull_lane_packet" .

chr:tool-simulate-trade a chr:McpTool ;
  rdfs:label "simulate_trade" .

chr:tool-review-proposal-economics a chr:McpTool ;
  rdfs:label "review_proposal_economics" .

chr:tool-investigate-market-move a chr:McpTool ;
  rdfs:label "investigate_market_move" .

chr:tool-verify-commitments a chr:McpTool ;
  rdfs:label "verify_commitments" .

chr:tool-check-economic-thesis a chr:McpTool ;
  rdfs:label "check_economic_thesis" .

chr:resource-chromatic-ontology a chr:McpResource ;
  rdfs:label "Chromatic product ontology (OWL 2)" ;
  chr:uri "https://chromatic.run/ontology/chromatic.ttl" ;
  chr:mimeType "text/turtle" ;
  chr:description "The ontology in Turtle: the closed six-team roster, the disjoint match and withheld state partitions, LOW as a rejected token disjoint from classifications, the futarchy component taxonomy, and the forbidden concepts — a composite proposal-risk score and a safety rating — declared equivalent to owl:Nothing. Loads into Protégé or pySHACL as it stands." .

chr:resource-chromatic-knowledge-graph a chr:McpResource ;
  rdfs:label "Chromatic ontology as a knowledge graph" ;
  chr:uri "https://chromatic.run/ontology/kg.json" ;
  chr:mimeType "application/json" ;
  chr:description "The same individuals as node-link JSON: teams, vectors with their indicators and case provenance, covenant checks, mechanism components, and the exploit edges between them. Loads straight into NetworkX." .

chr:resource-chromatic-shapes a chr:McpResource ;
  rdfs:label "SHACL shapes for the ontology" ;
  chr:uri "https://chromatic.run/ontology/shapes.ttl" ;
  chr:mimeType "text/turtle" ;
  chr:description "The validation half of the ontology. OWL's open world cannot say a finding has no other properties, which is exactly what the no-composite rule claims; sh:closed says it directly. FindingShape requires exactly one monitored vector and exactly one state from the match or withheld partitions, and rejects any additional property — so a payload carrying a composite score fails validation rather than merely being discouraged." .

chr:resource-color-team-contracts a chr:McpResource ;
  rdfs:label "The six bounded color-team contracts" ;
  chr:uri "https://chromatic.run/vectors/teams.json" ;
  chr:mimeType "application/json" ;
  chr:description "Versioned inputs, outputs, handoffs, and verbatim boundary rules for each lane of the review roster." .

chr:resource-attack-vector-library a chr:McpResource ;
  rdfs:label "The versioned attack-vector library" ;
  chr:uri "https://chromatic.run/vectors/library.json" ;
  chr:mimeType "application/json" ;
  chr:description "Monitored and documented vectors with their indicators, the evidence each detector consumes, methodology sources, and published case provenance. Documented vectors never classify." .

chr:method-live-collection a chr:ProvenanceMethod ;
  rdfs:label "Live collection" ;
  chr:note "The scheduled collector reading a published, schema-validated endpoint at the snapshot's own observation time." ;
  chr:provenancePrefix "api:" ;
  chr:provenancePrefix "registry:" .

chr:method-chain-replay a chr:ProvenanceMethod ;
  rdfs:label "Chain replay" ;
  chr:note "Exact reconstruction from confirmed transaction history — determined by dated events, never estimated between them." ;
  chr:provenancePrefix "solana-rpc:" ;
  chr:provenancePrefix "replay:" .

chr:method-dated-source a chr:ProvenanceMethod ;
  rdfs:label "Dated source" ;
  chr:note "A source's own dated readings, imported at the source's own resolution and named per row." ;
  chr:provenancePrefix "coingecko:" ;
  chr:provenancePrefix "metadao-external-api:" ;
  chr:provenancePrefix "01resolved:" .

chr:method-derived-step a chr:ProvenanceMethod ;
  rdfs:label "Derived step" ;
  chr:note "A step function over dated events; every intermediate instant carries an exactly-known value, or the row does not exist." ;
  chr:provenancePrefix "reconstruction:" .

chr:disproven-implied-supply a chr:DisprovenDerivation ;
  rdfs:label "implied-supply" ;
  chr:note "Implied supply — a market cap divided by a price — was closed by three measurements on 25–26 Aug 2026: the tape's own price/cap overlap implies supplies spread 0.56% to 17,053% across markets, the post-FDV-fix readings still swing 27× on one member in five hours, and every ownership-coin mint is mintable so no supply is verifiably fixed. A ±$13M error band on a +$34.7M published move is a wrong number, and the house rule is that a window with no honest baseline is withheld." ;
  chr:provenancePattern "implied-supply" .

chr:disproven-live-count-status-history a chr:DisprovenDerivation ;
  rdfs:label "live-count-status-history" ;
  chr:note "A past live count cannot be derived. The project registry records today's status and no date it changed, so no step function over listings determines what the count was — which is what this series' own note already says. One pre-collection row naming this method reached the tape before the backfill tool was corrected, no shipped code emits the provenance, and the rollup was measuring the published 30-day delta against it while the drawn chart began 2.3 days ago. Refused 27 Aug 2026, so the window withholds until collection earns it." ;
  chr:provenancePattern "01resolved-status-history" ;
  chr:scopedToSeries "live-protocol-count" .

chr:disproven-zklsol-contract-lookup a chr:DisprovenDerivation ;
  rdfs:label "zklsol-contract-lookup" ;
  chr:note "The CoinGecko contract lookup resolved a different asset for this member. Its 18 pre-collection rows sit in two flat plateaus, 1.099e-06 and 0.009998, that disagree with each other by 9,099× and with the venue's own quote — 0.149–0.151 since collection began, independently 0.1509 on GeckoTerminal at the same supply the index reads on chain — by four and five orders of magnitude. Scoped to this member: the same source is within 1.6× of the live quote for areal-finance, coal, and superclaw, and those rows keep their reach." ;
  chr:provenancePattern "coingecko:contract-market-chart-range" ;
  chr:scopedToSeries "price-usd" ;
  chr:scopedToMarket "zklsol" .

chr:lane-price a chr:CoverageLane ;
  rdfs:label "price lane" ;
  chr:consumers "protocols table 24h/7d/30d change columns" ;
  chr:episodic false .

chr:lane-caps a chr:CoverageLane ;
  rdfs:label "caps lane" ;
  chr:consumers "ownership-coin composition stack and the recorded market-cap aggregates" ;
  chr:episodic false .

chr:lane-fdv a chr:CoverageLane ;
  rdfs:label "fdv lane" ;
  chr:consumers "the Overview's cohort FDV chart, merged with the published as-of index" ;
  chr:episodic false .

chr:lane-treasury a chr:CoverageLane ;
  rdfs:label "treasury lane" ;
  chr:consumers "cited-treasury KPI chart" ;
  chr:episodic false .

chr:lane-counts a chr:CoverageLane ;
  rdfs:label "counts lane" ;
  chr:consumers "tracked/live/ownership-coin count cards' 30-day indicators" ;
  chr:episodic false .

chr:lane-vaults a chr:CoverageLane ;
  rdfs:label "vaults lane" ;
  chr:consumers "DAO-vaults KPI card" ;
  chr:episodic false .

chr:lane-proposals a chr:CoverageLane ;
  rdfs:label "proposals lane" ;
  chr:consumers "proposals KPI charts" ;
  chr:episodic false .

chr:lane-windows a chr:CoverageLane ;
  rdfs:label "windows lane" ;
  chr:consumers "proposal window charts and the cohort cards, which also draw replayed windows" ;
  chr:episodic true .

chr:series-price-usd a chr:PublishedSeries ;
  rdfs:label "Spot price" ;
  chr:seriesId "price-usd" ;
  chr:unit "price" ;
  chr:note "Per-protocol token price. Backing series for the protocols table's 24h/7d/30d change columns, measured against the tape's own baselines." .

chr:series-market-cap-usd a chr:PublishedSeries ;
  rdfs:label "Quoted market cap" ;
  chr:seriesId "market-cap-usd" ;
  chr:unit "usd" ;
  chr:note "Per-protocol circulating market cap as the quote feed states it. The composition stack sums it per registry class at complete instants only." .

chr:series-fdv-usd a chr:PublishedSeries ;
  rdfs:label "Fully diluted valuation" ;
  chr:seriesId "fdv-usd" ;
  chr:unit "usd" ;
  chr:note "Per-protocol FDV as the quote feed states it; a current-value table cell, not a chart series." .

chr:series-volume-24h-usd a chr:PublishedSeries ;
  rdfs:label "24h volume" ;
  chr:seriesId "volume-24h-usd" ;
  chr:unit "usd" ;
  chr:note "Per-protocol trailing-24h volume as the quote feed states it; a current-value table cell, not a chart series." .

chr:series-provider-change-24h-pct a chr:CrossCheckSeries ;
  rdfs:label "Provider 24h change" ;
  chr:seriesId "provider-change-24h-pct" ;
  chr:unit "percent" ;
  chr:note "The provider's own 24h change figure, kept to cross-check the change we measure. Never rendered: measured by someone else, against a baseline we cannot name." .

chr:series-circulating-supply a chr:CrossCheckSeries ;
  rdfs:label "Circulating supply" ;
  chr:seriesId "circulating-supply" ;
  chr:unit "token" ;
  chr:note "The feed's circulating-supply claim, recorded so a cap/FDV flip is checkable against its own inputs. No supply on this roster is verifiably fixed on-chain." .

chr:series-total-supply a chr:CrossCheckSeries ;
  rdfs:label "Total supply" ;
  chr:seriesId "total-supply" ;
  chr:unit "token" ;
  chr:note "The feed's total-supply claim, recorded beside circulating supply for the same cross-check." .

chr:series-tracked-protocol-count a chr:PublishedSeries ;
  rdfs:label "Tracked protocols" ;
  chr:seriesId "tracked-protocol-count" ;
  chr:unit "count" ;
  chr:note "Registry row count. Reconstructable as an exact step over MetaDAO ticker start dates, which is how its history reaches past the collector's birth." .

chr:series-live-protocol-count a chr:PublishedSeries ;
  rdfs:label "Live protocols" ;
  chr:seriesId "live-protocol-count" ;
  chr:unit "count" ;
  chr:note "Tracked orgs currently in live status. The registry records today's status, not when it changed, so this lane's honest history starts at collection." .

chr:series-cited-treasury-usd a chr:PublishedSeries ;
  rdfs:label "Cited treasury" ;
  chr:seriesId "cited-treasury-usd" ;
  chr:unit "usd" ;
  chr:note "Sum of 01Resolved's cited treasury figures. A step over editions: the value between editions is exactly what the Desk cited, so edition-dated history is honest." .

chr:series-quoted-market-cap-usd a chr:PublishedSeries ;
  rdfs:label "Quoted market cap (universe)" ;
  chr:seriesId "quoted-market-cap-usd" ;
  chr:unit "usd" ;
  chr:note "The whole quoted universe summed at complete instants only. Derivable exactly wherever the tape holds a complete instant, and no further: pre-tape history needs supplies nobody can verify and instants no source aligns." .

chr:series-ownership-coin-count a chr:PublishedSeries ;
  rdfs:label "Ownership coins" ;
  chr:seriesId "ownership-coin-count" ;
  chr:unit "count" ;
  chr:note "Registry count of the ownership-coin cohort the Desk root lists; a step over the same dated listings as the tracked count." .

chr:series-ownership-coin-market-cap-usd a chr:PublishedSeries ;
  rdfs:label "Cohort market cap" ;
  chr:seriesId "ownership-coin-market-cap-usd" ;
  chr:unit "usd" ;
  chr:note "The ownership-coin cohort summed at instants where the whole cohort reported — the cohort's own completeness gate, so an established DAO's feed blinking cannot withhold it. Recorded and served on the API; the Overview draws the FDV series instead, because the feed's cap mixes circulating cap and FDV across members." .

chr:series-ownership-coin-fdv-usd a chr:PublishedSeries ;
  rdfs:label "Cohort FDV" ;
  chr:seriesId "ownership-coin-fdv-usd" ;
  chr:unit "usd" ;
  chr:note "The cohort's fully diluted valuation summed at instants where the whole cohort reported — the one uniformly defined member quantity, and the aggregate the Overview draws. Its 30-day history is the published as-of index at /data/cohort-fdv-index.json until this lane earns the window itself." .

chr:series-dao-vault-usd a chr:PublishedSeries ;
  rdfs:label "DAO vaults" ;
  chr:seriesId "dao-vault-usd" ;
  chr:unit "usd" ;
  chr:note "USD-settled balances across tracked DAO vaults. History is exact by transaction replay — a token account's balance cannot change outside a transaction that touches it." .

chr:series-pending-market-count a chr:PublishedSeries ;
  rdfs:label "Pending markets" ;
  chr:seriesId "pending-market-count" ;
  chr:unit "count" ;
  chr:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

chr:series-funded-draft-count a chr:PublishedSeries ;
  rdfs:label "Funded drafts" ;
  chr:seriesId "funded-draft-count" ;
  chr:unit "count" ;
  chr:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

chr:series-program-proposal-count a chr:PublishedSeries ;
  rdfs:label "Program proposals" ;
  chr:seriesId "program-proposal-count" ;
  chr:unit "count" ;
  chr:note "Live-proposal lifecycle count; history replayed exactly from confirmed program events." .

chr:series-dao-vault-balance-usd a chr:PublishedSeries ;
  rdfs:label "DAO vault balance" ;
  chr:seriesId "dao-vault-balance-usd" ;
  chr:unit "usd" ;
  chr:note "One DAO's USD-settled vault balance, exact by transaction replay of the vault's own token account." .

chr:series-pass-twap a chr:PublishedSeries ;
  rdfs:label "Pass TWAP" ;
  chr:seriesId "pass-twap" ;
  chr:unit "normalized-price" ;
  chr:note "The pass conditional market's TWAP while a recording window is open. Windows are episodic: the series exists only while a market does." .

chr:series-fail-twap a chr:PublishedSeries ;
  rdfs:label "Fail TWAP" ;
  chr:seriesId "fail-twap" ;
  chr:unit "normalized-price" ;
  chr:note "The fail conditional market's TWAP while a recording window is open." .

chr:series-pass-spot a chr:PublishedSeries ;
  rdfs:label "Pass spot" ;
  chr:seriesId "pass-spot" ;
  chr:unit "normalized-price" ;
  chr:note "The pass conditional market's spot print." .

chr:series-fail-spot a chr:PublishedSeries ;
  rdfs:label "Fail spot" ;
  chr:seriesId "fail-spot" ;
  chr:unit "normalized-price" ;
  chr:note "The fail conditional market's spot print." .

chr:series-pass-base-reserve a chr:PublishedSeries ;
  rdfs:label "Pass base reserve" ;
  chr:seriesId "pass-base-reserve" ;
  chr:unit "token" ;
  chr:note "The pass pool's base reserve; the flip-cost scenario's input." .

chr:series-pass-quote-reserve a chr:PublishedSeries ;
  rdfs:label "Pass quote reserve" ;
  chr:seriesId "pass-quote-reserve" ;
  chr:unit "token" ;
  chr:note "The pass pool's quote reserve; the flip-cost scenario's input." .

chr:series-fail-base-reserve a chr:PublishedSeries ;
  rdfs:label "Fail base reserve" ;
  chr:seriesId "fail-base-reserve" ;
  chr:unit "token" ;
  chr:note "The fail pool's base reserve; the flip-cost scenario's input." .

chr:series-fail-quote-reserve a chr:PublishedSeries ;
  rdfs:label "Fail quote reserve" ;
  chr:seriesId "fail-quote-reserve" ;
  chr:unit "token" ;
  chr:note "The fail pool's quote reserve; the flip-cost scenario's input." .

# ── Statements ───────────────────────────────────────────────────────

chr:roster-1-0-4 chr:rosterMember chr:team-pink .
chr:roster-1-0-4 chr:rosterMember chr:team-red .
chr:roster-1-0-4 chr:rosterMember chr:team-blue .
chr:roster-1-0-4 chr:rosterMember chr:team-yellow .
chr:roster-1-0-4 chr:rosterMember chr:team-purple .
chr:roster-1-0-4 chr:rosterMember chr:team-white .
chr:mechanism-futarchy chr:hasComponent chr:component-welfare-metric .
chr:mechanism-futarchy chr:hasComponent chr:component-conditional-market-pair .
chr:mechanism-futarchy chr:hasComponent chr:component-twap-oracle .
chr:mechanism-futarchy chr:hasComponent chr:component-decision-rule .
chr:component-full-window-twap-rule chr:variantOf chr:component-decision-rule .
chr:component-terminal-window-twap-rule chr:variantOf chr:component-decision-rule .
chr:mechanism-futarchy chr:hasComponent chr:component-stake-requirement .
chr:mechanism-futarchy chr:hasComponent chr:component-alignment-signal .
chr:mechanism-futarchy chr:hasComponent chr:component-execution-binding .
chr:mechanism-futarchy chr:hasComponent chr:component-gatekeeper-role .
chr:mechanism-futarchy chr:hasComponent chr:component-proposal-specification .
chr:mechanism-futarchy chr:hasComponent chr:component-delivery-enforcement .
chr:mechanism-futarchy chr:hasComponent chr:component-corrective-participation-access .
chr:mechanism-futarchy chr:hasComponent chr:component-branch-independence .
chr:mechanism-futarchy chr:hasComponent chr:component-causal-assumption-transparency .
chr:metadao-futarchy-v0-6 chr:implements chr:mechanism-futarchy .
chr:metadao-futarchy-v0-6 chr:executesAs chr:execution-binding .
chr:metadao-futarchy-v0-6 chr:usesRule chr:component-full-window-twap-rule .
chr:kleros-kip-76 chr:implements chr:mechanism-futarchy .
chr:kleros-kip-76 chr:executesAs chr:execution-binding .
chr:kleros-kip-76 chr:usesRule chr:component-terminal-window-twap-rule .
chr:gnosis-gip-145 chr:implements chr:mechanism-futarchy .
chr:gnosis-gip-145 chr:executesAs chr:execution-advisory .
chr:optimism-futarchy-v1 chr:implements chr:mechanism-futarchy .
chr:optimism-futarchy-v1 chr:executesAs chr:execution-advisory .
chr:onchain-twap-accumulator chr:realizesComponent chr:component-twap-oracle .
chr:onchain-conditional-amm-pair chr:realizesComponent chr:component-conditional-market-pair .
chr:onchain-dao-account chr:realizesComponent chr:component-decision-rule .
chr:onchain-proposal-stake chr:realizesComponent chr:component-stake-requirement .
chr:recycled-stake-treasury-extraction chr:hasIndicator chr:recycled-stake-treasury-extraction-fresh-wallet .
chr:recycled-stake-treasury-extraction chr:hasIndicator chr:recycled-stake-treasury-extraction-bridge-funding .
chr:recycled-stake-treasury-extraction chr:hasIndicator chr:recycled-stake-treasury-extraction-exact-stake-trim .
chr:recycled-stake-treasury-extraction chr:hasIndicator chr:recycled-stake-treasury-extraction-stake-recover-reuse .
chr:recycled-stake-treasury-extraction chr:hasIndicator chr:recycled-stake-treasury-extraction-clustered-cadence .
chr:recycled-stake-treasury-extraction chr:hasDetector chr:detector-recycled-stake-treasury-extraction .
chr:recycled-stake-treasury-extraction chr:runBy chr:team-red .
chr:recycled-stake-treasury-extraction chr:codifiedBy chr:team-yellow .
chr:recycled-stake-treasury-extraction chr:hasMethodologySource chr:source-01resolved-com-research-the-umbra-treasury-attack-cost-its-attacker-4-623 .
chr:recycled-stake-treasury-extraction chr:hasCaseStudy chr:case-umbra-treasury-attack-2026-08 .
chr:recycled-stake-treasury-extraction chr:exploitsComponent chr:component-stake-requirement .
chr:recycled-stake-treasury-extraction chr:presupposesExecution chr:execution-binding .
chr:late-window-outcome-steering chr:hasIndicator chr:late-window-outcome-steering-late-weight-concentration .
chr:late-window-outcome-steering chr:hasIndicator chr:late-window-outcome-steering-single-trade-fragility .
chr:late-window-outcome-steering chr:hasIndicator chr:late-window-outcome-steering-thin-depth-move .
chr:late-window-outcome-steering chr:hasIndicator chr:late-window-outcome-steering-post-window-snap-back .
chr:late-window-outcome-steering chr:hasIndicator chr:late-window-outcome-steering-spike-clears-configured-threshold .
chr:late-window-outcome-steering chr:hasDetector chr:detector-late-window-outcome-steering .
chr:late-window-outcome-steering chr:runBy chr:team-red .
chr:late-window-outcome-steering chr:codifiedBy chr:team-yellow .
chr:late-window-outcome-steering chr:hasMethodologySource chr:source-01resolved-com-research .
chr:late-window-outcome-steering chr:hasMethodologySource chr:source-docs-metadao-fi .
chr:late-window-outcome-steering chr:exploitsComponent chr:component-full-window-twap-rule .
chr:late-window-outcome-steering chr:presupposesExecution chr:execution-binding .
chr:wash-volume-alignment-inflation chr:hasIndicator chr:wash-volume-alignment-inflation-paired-branch-executions .
chr:wash-volume-alignment-inflation chr:hasIndicator chr:wash-volume-alignment-inflation-fixed-size-cluster .
chr:wash-volume-alignment-inflation chr:hasIndicator chr:wash-volume-alignment-inflation-near-neutral-net .
chr:wash-volume-alignment-inflation chr:hasIndicator chr:wash-volume-alignment-inflation-arb-frequency-band .
chr:wash-volume-alignment-inflation chr:hasIndicator chr:wash-volume-alignment-inflation-stripped-tilt-shift .
chr:wash-volume-alignment-inflation chr:hasDetector chr:detector-wash-volume-alignment-inflation .
chr:wash-volume-alignment-inflation chr:runBy chr:team-red .
chr:wash-volume-alignment-inflation chr:codifiedBy chr:team-yellow .
chr:wash-volume-alignment-inflation chr:hasMethodologySource chr:source-01resolved-com-research .
chr:wash-volume-alignment-inflation chr:hasMethodologySource chr:source-01resolved-com .
chr:wash-volume-alignment-inflation chr:exploitsComponent chr:component-alignment-signal .
chr:coordinated-multiwallet-stake-assembly chr:hasIndicator chr:coordinated-multiwallet-stake-assembly-common-funding-source .
chr:coordinated-multiwallet-stake-assembly chr:hasIndicator chr:coordinated-multiwallet-stake-assembly-synchronized-first-activity .
chr:coordinated-multiwallet-stake-assembly chr:hasIndicator chr:coordinated-multiwallet-stake-assembly-split-threshold-assembly .
chr:coordinated-multiwallet-stake-assembly chr:hasIndicator chr:coordinated-multiwallet-stake-assembly-shared-execution-fingerprint .
chr:coordinated-multiwallet-stake-assembly chr:hasIndicator chr:coordinated-multiwallet-stake-assembly-synchronized-exit .
chr:coordinated-multiwallet-stake-assembly chr:hasDetector chr:detector-coordinated-multiwallet-stake-assembly .
chr:coordinated-multiwallet-stake-assembly chr:runBy chr:team-red .
chr:coordinated-multiwallet-stake-assembly chr:codifiedBy chr:team-yellow .
chr:coordinated-multiwallet-stake-assembly chr:hasMethodologySource chr:source-01resolved-com-research-ownership-score-what-the-first-experiment-reveals .
chr:coordinated-multiwallet-stake-assembly chr:hasMethodologySource chr:source-01resolved-com-research-the-umbra-treasury-attack-cost-its-attacker-4-623 .
chr:coordinated-multiwallet-stake-assembly chr:exploitsComponent chr:component-stake-requirement .
chr:terminal-window-twap-capture chr:hasIndicator chr:terminal-window-twap-capture-terminal-only-weight .
chr:terminal-window-twap-capture chr:hasIndicator chr:terminal-window-twap-capture-floor-hugging-liquidity .
chr:terminal-window-twap-capture chr:hasIndicator chr:terminal-window-twap-capture-quiet-then-capture .
chr:terminal-window-twap-capture chr:hasIndicator chr:terminal-window-twap-capture-in-window-inversion .
chr:terminal-window-twap-capture chr:hasIndicator chr:terminal-window-twap-capture-post-window-reversion .
chr:terminal-window-twap-capture chr:codifiedBy chr:team-yellow .
chr:terminal-window-twap-capture chr:hasMethodologySource chr:source-snapshot-org-kleros-eth-proposal-0xa213179debfca1cb5b8f65ac9d641e6e4e8fb5df48019 .
chr:terminal-window-twap-capture chr:hasMethodologySource chr:source-ethresear-ch-t-futarchy-is-insecure-without-a-trusted-gatekeeper-25235 .
chr:terminal-window-twap-capture chr:exploitsComponent chr:component-terminal-window-twap-rule .
chr:terminal-window-twap-capture chr:presupposesExecution chr:execution-binding .
chr:advisory-signal-inflation chr:hasIndicator chr:advisory-signal-inflation-stakeless-directional-print .
chr:advisory-signal-inflation chr:hasIndicator chr:advisory-signal-inflation-signal-scale-mismatch .
chr:advisory-signal-inflation chr:hasIndicator chr:advisory-signal-inflation-read-timed-concentration .
chr:advisory-signal-inflation chr:hasIndicator chr:advisory-signal-inflation-venue-alignment-divergence .
chr:advisory-signal-inflation chr:hasIndicator chr:advisory-signal-inflation-post-read-unwind .
chr:advisory-signal-inflation chr:codifiedBy chr:team-yellow .
chr:advisory-signal-inflation chr:hasMethodologySource chr:source-forum-gnosis-io-t-11816 .
chr:advisory-signal-inflation chr:hasMethodologySource chr:source-forum-gnosis-io-t-12197 .
chr:advisory-signal-inflation chr:hasMethodologySource chr:source-gov-optimism-io-t-futarchy-v1-preliminary-findings-10062 .
chr:advisory-signal-inflation chr:exploitsComponent chr:component-execution-binding .
chr:advisory-signal-inflation chr:presupposesExecution chr:execution-advisory .
chr:resistance-contingent-delivery chr:hasIndicator chr:resistance-contingent-delivery-discretionary-delivery-terms .
chr:resistance-contingent-delivery chr:hasIndicator chr:resistance-contingent-delivery-pass-defense-before-delivery .
chr:resistance-contingent-delivery chr:hasIndicator chr:resistance-contingent-delivery-resistance-linked-performance .
chr:resistance-contingent-delivery chr:hasIndicator chr:resistance-contingent-delivery-unenforceable-nonperformance .
chr:resistance-contingent-delivery chr:codifiedBy chr:team-yellow .
chr:resistance-contingent-delivery chr:hasMethodologySource chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat .
chr:resistance-contingent-delivery chr:exploitsComponent chr:component-delivery-enforcement .
chr:resistance-contingent-delivery chr:presupposesExecution chr:execution-binding .
chr:conditional-holder-exit-supply-failure chr:hasIndicator chr:conditional-holder-exit-supply-failure-holder-only-pass-supply .
chr:conditional-holder-exit-supply-failure chr:hasIndicator chr:conditional-holder-exit-supply-failure-no-synthetic-short-access .
chr:conditional-holder-exit-supply-failure chr:hasIndicator chr:conditional-holder-exit-supply-failure-corrective-flow-below-private-benefit .
chr:conditional-holder-exit-supply-failure chr:hasIndicator chr:conditional-holder-exit-supply-failure-short-side-adverse-selection .
chr:conditional-holder-exit-supply-failure chr:codifiedBy chr:team-yellow .
chr:conditional-holder-exit-supply-failure chr:hasMethodologySource chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat .
chr:conditional-holder-exit-supply-failure chr:exploitsComponent chr:component-corrective-participation-access .
chr:conditional-holder-exit-supply-failure chr:presupposesExecution chr:execution-binding .
chr:proposal-convexity-selection chr:hasIndicator chr:proposal-convexity-selection-material-unresolved-detail .
chr:proposal-convexity-selection chr:hasIndicator chr:proposal-convexity-selection-information-resolves-in-window .
chr:proposal-convexity-selection chr:hasIndicator chr:proposal-convexity-selection-favorable-state-passage-coupling .
chr:proposal-convexity-selection chr:hasIndicator chr:proposal-convexity-selection-conditional-unconditional-value-gap .
chr:proposal-convexity-selection chr:codifiedBy chr:team-yellow .
chr:proposal-convexity-selection chr:hasMethodologySource chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat .
chr:proposal-convexity-selection chr:hasMethodologySource chr:source-lesswrong-com-posts-mw4ypzr6ctwkqncvp-futarchy-is-parasitic-on-what-it-tries-to .
chr:proposal-convexity-selection chr:hasMethodologySource chr:source-lesswrong-com-posts-deoyawznnktm5gmnm-no-futarchy-doesn-t-have-this-edt-flaw .
chr:proposal-convexity-selection chr:exploitsComponent chr:component-causal-assumption-transparency .
chr:proposal-convexity-selection chr:presupposesExecution chr:execution-binding .
chr:countertrade-adverse-selection-deterrence chr:hasIndicator chr:countertrade-adverse-selection-deterrence-withheld-value-terms .
chr:countertrade-adverse-selection-deterrence chr:hasIndicator chr:countertrade-adverse-selection-deterrence-proposer-pass-accumulation .
chr:countertrade-adverse-selection-deterrence chr:hasIndicator chr:countertrade-adverse-selection-deterrence-hidden-good-loss-dominates .
chr:countertrade-adverse-selection-deterrence chr:hasIndicator chr:countertrade-adverse-selection-deterrence-late-specification-release .
chr:countertrade-adverse-selection-deterrence chr:codifiedBy chr:team-yellow .
chr:countertrade-adverse-selection-deterrence chr:hasMethodologySource chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat .
chr:countertrade-adverse-selection-deterrence chr:exploitsComponent chr:component-proposal-specification .
chr:countertrade-adverse-selection-deterrence chr:presupposesExecution chr:execution-binding .
chr:fail-branch-sabotage chr:hasIndicator chr:fail-branch-sabotage-rejection-contingent-threat .
chr:fail-branch-sabotage chr:hasIndicator chr:fail-branch-sabotage-credible-sabotage-capability .
chr:fail-branch-sabotage chr:hasIndicator chr:fail-branch-sabotage-fail-discount-tracks-threat .
chr:fail-branch-sabotage chr:hasIndicator chr:fail-branch-sabotage-off-path-private-cost-gap .
chr:fail-branch-sabotage chr:codifiedBy chr:team-yellow .
chr:fail-branch-sabotage chr:hasMethodologySource chr:source-lesswrong-com-posts-oaksux5xppxfseohm-futarchy-is-insecure-without-a-trusted-gat .
chr:fail-branch-sabotage chr:exploitsComponent chr:component-branch-independence .
chr:fail-branch-sabotage chr:presupposesExecution chr:execution-binding .
chr:covenant-check-use-of-proceeds-restricted chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-use-of-proceeds-restricted chr:codifiedBy chr:team-yellow .
chr:covenant-check-investor-reserve-capped chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-investor-reserve-capped chr:codifiedBy chr:team-yellow .
chr:covenant-check-team-allocation-band chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-team-allocation-band chr:codifiedBy chr:team-yellow .
chr:covenant-check-vesting-schedule chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-vesting-schedule chr:codifiedBy chr:team-yellow .
chr:covenant-check-legal-entity chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-legal-entity chr:codifiedBy chr:team-yellow .
chr:covenant-check-third-party-review chr:checksCovenant chr:covenant-stamp .
chr:covenant-check-third-party-review chr:codifiedBy chr:team-yellow .
chr:instrument-flip-cost-scenario chr:instrumentOf chr:team-blue .
chr:instrument-order-flow-toxicity chr:instrumentOf chr:team-blue .
chr:instrument-microstructure-stack chr:instrumentOf chr:team-blue .
chr:unavailable-effective-spread chr:unavailableTo chr:team-blue .
chr:unavailable-post-fill-markout chr:unavailableTo chr:team-blue .
chr:unavailable-depth-imbalance chr:unavailableTo chr:team-blue .
chr:unavailable-trade-based-spread-estimators chr:unavailableTo chr:team-blue .
chr:unavailable-longshot-spread-premium chr:unavailableTo chr:team-blue .
chr:unavailable-self-counterparty-wash chr:unavailableTo chr:team-blue .
chr:unavailable-information-leakage-score chr:unavailableTo chr:team-blue .
chr:mcp-server chr:offersTool chr:tool-list-replays .
chr:mcp-server chr:offersTool chr:tool-qualify-evidence .
chr:mcp-server chr:offersTool chr:tool-scan-attack-vectors .
chr:mcp-server chr:offersTool chr:tool-read-decision-market .
chr:mcp-server chr:offersTool chr:tool-inspect-playbook .
chr:mcp-server chr:offersTool chr:tool-carry-forward .
chr:mcp-server chr:offersTool chr:tool-enforce-scope .
chr:mcp-server chr:offersTool chr:tool-get-team-contracts .
chr:mcp-server chr:offersTool chr:tool-map-attack-surface .
chr:mcp-server chr:offersTool chr:tool-get-live-proposals .
chr:mcp-server chr:offersTool chr:tool-map-live-exposure .
chr:mcp-server chr:offersTool chr:tool-pull-lane-packet .
chr:mcp-server chr:offersTool chr:tool-simulate-trade .
chr:mcp-server chr:offersTool chr:tool-review-proposal-economics .
chr:mcp-server chr:offersTool chr:tool-investigate-market-move .
chr:mcp-server chr:offersTool chr:tool-verify-commitments .
chr:mcp-server chr:offersTool chr:tool-check-economic-thesis .
chr:tool-qualify-evidence chr:servesLane chr:team-pink .
chr:tool-scan-attack-vectors chr:servesLane chr:team-red .
chr:tool-read-decision-market chr:servesLane chr:team-blue .
chr:tool-inspect-playbook chr:servesLane chr:team-yellow .
chr:tool-carry-forward chr:servesLane chr:team-purple .
chr:tool-enforce-scope chr:servesLane chr:team-white .
chr:mcp-server chr:servesResource chr:resource-chromatic-ontology .
chr:mcp-server chr:servesResource chr:resource-chromatic-knowledge-graph .
chr:mcp-server chr:servesResource chr:resource-chromatic-shapes .
chr:mcp-server chr:servesResource chr:resource-color-team-contracts .
chr:mcp-server chr:servesResource chr:resource-attack-vector-library .
chr:series-price-usd chr:inCoverageLane chr:lane-price .
chr:series-market-cap-usd chr:inCoverageLane chr:lane-caps .
chr:series-provider-change-24h-pct chr:crossChecks chr:series-price-usd .
chr:series-circulating-supply chr:crossChecks chr:series-market-cap-usd .
chr:series-total-supply chr:crossChecks chr:series-fdv-usd .
chr:series-tracked-protocol-count chr:inCoverageLane chr:lane-counts .
chr:series-live-protocol-count chr:inCoverageLane chr:lane-counts .
chr:series-cited-treasury-usd chr:inCoverageLane chr:lane-treasury .
chr:series-quoted-market-cap-usd chr:inCoverageLane chr:lane-caps .
chr:series-ownership-coin-count chr:inCoverageLane chr:lane-counts .
chr:series-ownership-coin-market-cap-usd chr:inCoverageLane chr:lane-caps .
chr:series-ownership-coin-fdv-usd chr:inCoverageLane chr:lane-fdv .
chr:series-dao-vault-usd chr:inCoverageLane chr:lane-vaults .
chr:series-pending-market-count chr:inCoverageLane chr:lane-proposals .
chr:series-funded-draft-count chr:inCoverageLane chr:lane-proposals .
chr:series-program-proposal-count chr:inCoverageLane chr:lane-proposals .
chr:series-pass-twap chr:inCoverageLane chr:lane-windows .
chr:series-fail-twap chr:inCoverageLane chr:lane-windows .
