Chio/Docs
LOGIN · JOIN

Finding records

Look up chio.finding.v1 fields, content addressing, evidence requirements, reveal commitments, and the rules for listing a signed result.

Reference chio@5f63e6e

On this page

A chio.finding.v1 record makes an agent’s result a signed information good that other agents can discover, buy, and check. Its descriptor names the subject and the outcome, its commitments bind the reveal and the evidence, and its issuer signs the whole claim.

In the repair sale, the finding describes the fix and commits to the digest of the patch’s reveal envelope. The patch itself is a separate payload, bought through paid reveal, and the listing’s disclosure policy decides which fields a buyer sees before purchase.

Finding lifecycle

A seller signs the record; the venue admits it only after collateral backing and the evidence verifier’s report exist. The record’s own fields stay fixed through every later stage, so admission, purchase, challenge, and retraction all refer to one content address.

Finding lifecycleChoose a stage.
φsubmitρverifyBpriceKrevealχchallengeσretractsignsbacksa₁sellerφfindingBbond backingρAdmittedchio.finding.admission.v1Not admittedmissing facetφsubmitρBKχσsignsbacksa₁sellerφfindingBbondρAdmittedchio.finding.admission.v1Not admittedmissing facet

The seller signs a finding and the venue admits it

The seller signs a content-addressed chio.finding.v1 record that commits to its reveal envelope digest while the payload stays sealed. A collateral authority allocates chio.finding.bond-backing.v1, the evidence verifier signs its report, and activation collects the fees and signs chio.finding.admission.v1, the one qualification for trusted search, bid, and purchase. Finding records.

The lifecycle of one chio.finding.v1 finding, from admission to retraction; challenge and retraction run only when a finding is disputed. The bid figures are the basic_discount vector in USD minor units; fee arithmetic, audit sampling, and the hosted profile are left out.The cognition market

The record carries its signature inline. Derive finding_id from the canonical body with both the id and the signature cleared, then sign the canonical body with only the signature cleared. A signed claim still needs the backing checks its guarantee and evidence classes require.

Record rules

Every field is required unless marked optional or conditionally required. The schema defines no defaults and accepts no null values. SHA-256 values are 64 lowercase hex characters. Bounded text and identifiers contain at least one non-whitespace character: the schema allows up to 512 characters, and Rust semantic validation limits UTF-8 input to 512 bytes.

The finding schema family holds 37 files under spec/schemas/chio-finding/v1/. The entries below are the fields of the finding record itself, with examples from the schema-valid verified-fix fixture.

Identity and discovery fields

schema

StringRequired

The literal chio.finding.v1.

finding_id

SHA-256Required

The content address: 64 lowercase hex characters derived from the canonical body with finding_id and signature cleared.

Example"dc721f80…d7d817"

descriptor

ObjectRequired

A closed object holding the three descriptor fields below; unknown members are rejected.

descriptor.topic

Bounded textRequired

The prefix-searchable subject key for coarse discovery.

Example"repo:backbay/chio#test-failure"

descriptor.context_sha256

SHA-256Required

Digest of the full context object, and the search key for an exact-context match.

descriptor.outcome_class

EnumRequired

null_result, verified_fix, or positive_result. A negative result, an approach an agent has shown to fail, is null_result on the same chio.finding.v1 record.

Example"verified_fix"

Guarantee and backing fields

guarantee_class

EnumRequired

deterministic_replay, metered_attested, or asserted: how the buyer can recheck the result. Backing requirements apply to every value.

Example"deterministic_replay"

evidence_class

EnumRequired

asserted, observed, or verified: the claim-to-evidence classification, set independently of guarantee_class.

Example"verified"

evidence_receipt_ids

String arrayRequired

At most 256 unique bounded identifiers. At least one is required when either class is other than asserted, or when runtime_assurance_tier is present.

Example["r-1"]

evidence_checkpoint_ref

Bounded identifierRequired

The signed Merkle checkpoint used to check receipt inclusion.

Example"ckpt-1"

evidence_cost

ObjectRequired

A closed object requiring units and currency. Verifiable against the receipts in full-receipt mode; otherwise a seller assertion until audit.

Example{ "units": 4200, "currency": "USD" }

evidence_cost.units

IntegerRequired

0 through 9007199254740991 inclusive.

evidence_cost.currency

StringRequired

Exactly three uppercase ASCII letters, matching ^[A-Z]{3}$. The schema checks the format only; membership in a currency registry is outside it.

runtime_assurance_tier

EnumOptional

basic, attested, or verified. An unset tier is omitted; none and null are both rejected.

ExampleOmitted in the verified-fix fixture

replay_recipe_sha256

SHA-256Conditionally required

Required for deterministic_replay and optional for the other guarantees. Commits to the canonical replay recipe.

intent_commitment_receipt_id

Bounded identifierOptional

A pre-outcome commitment receipt. It earns a pricing uplift only after semantic verification, described under intent commitment validation.

Reveal and listing fields

payload_sha256

SHA-256Required

Commitment to the canonical reveal envelope delivered to a buyer, rather than the raw payload bytes.

payload_media_type

Bounded textRequired

Media type of the committed payload, such as application/json.

Example"text/x-diff"

bond_ref

Bounded identifierRequired

An opaque collateral reference at publication. Admission resolves the live backing; the reference itself is neither a requirement id nor verified collateral.

Example"bond-req-1"

status_feed_ref

Bounded identifierRequired

The oracle feed that publishes the finding’s retraction and status.

Example"finding-status/test"

license_ref

Bounded identifierOptional

License terms for the reveal.

price_hint_ref

Bounded identifierOptional

A cycle-free pricing policy authored before the finding. Absent for the finding-scoped listing pricing hint; see listing actor kind.

Issuer and signature fields

issuer

Ed25519 public keyRequired

Exactly 64 lowercase hex characters. Semantic validation rejects weak keys.

Example"fd172438…35e9f618"

issued_at

IntegerRequired

The issuance timestamp, 0 through 9007199254740991 inclusive.

Example1784880000

expires_at

IntegerRequired

The expiry timestamp, in the same range. Semantic validation requires expires_at > issued_at; checking current liveness is the caller’s step, outside structural validation.

Example1792656000

signature

Ed25519 signatureRequired

Exactly 128 lowercase hex characters, over the canonical body with signature cleared and the derived finding_id retained.

Verified-fix fixture

chio proof fixture generate finding-verified-fix-basic writes a schema-valid chio.finding.v1 document. Its reference values (r-1, ckpt-1, bond-req-1, and finding-status/test) are short so the structure reads at a glance.

Terminalbash
chio proof fixture generate finding-verified-fix-basic --out ./finding
fixtures/proof-room/finding/verified-fix-basic/finding.jsonjson
{
  "schema": "chio.finding.v1",
  "finding_id": "dc721f80b183eb65945ba4754d9ba6b131d3c8309d8a7bff710f4160b9d7d817",
  "descriptor": {
    "topic": "repo:backbay/chio#test-failure",
    "context_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "outcome_class": "verified_fix"
  },
  "guarantee_class": "deterministic_replay",
  "payload_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "payload_media_type": "text/x-diff",
  "evidence_receipt_ids": [
    "r-1"
  ],
  "evidence_checkpoint_ref": "ckpt-1",
  "evidence_cost": {
    "units": 4200,
    "currency": "USD"
  },
  "evidence_class": "verified",
  "replay_recipe_sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
  "bond_ref": "bond-req-1",
  "status_feed_ref": "finding-status/test",
  "issuer": "fd1724385aa0c75b64fb78cd602fa1d991fdebf76b13c58ed702eac835e9f618",
  "issued_at": 1784880000,
  "expires_at": 1792656000,
  "signature": "d1620bf0c941fdafe410104b49b60c764dad7a099af570f5b0b1f08c5abaa13ac5ffd23852352a06d813c5a93e19553d41689b6978c0e89ed0a97e6c67aa3a0e"
}

replay_recipe_sha256 is present because guarantee_class is deterministic_replay, the one value the schema requires it for. The optional fields runtime_assurance_tier, intent_commitment_receipt_id, license_ref, and price_hint_ref are absent, and each omission is legal.

Guarantee and evidence classes

guarantee_class says how the buyer can recheck a result; evidence_class classifies the backing for the claim. Consumers read both fields and validate the backing each combination requires:

  • deterministic_replay requires a bound replay recipe the verifier can check.
  • metered_attested requires authenticated receipts, checkpoint membership, and metered-exposure backing.
  • observed and verified evidence both require authenticated receipts and checkpoint membership.

A finding may pair verified evidence with an asserted guarantee. The evidence label establishes neither that the buyer can replay the result nor an exemption from the backing checks.

Reveal commitment

payload_sha256 is the digest of the canonical reveal envelope delivered to a buyer. Paid reveal specifies the envelope shape and its settlement binding.

Evidence, cost, and runtime assurance

evidence_receipt_ids and evidence_checkpoint_ref point at the backing signed receipts and the Merkle checkpoint used to verify their inclusion. A valid Merkle path establishes membership in the signed checkpoint; its timestamp and signer standing need their own trust checks. In full-receipt mode evidence_cost is verifiable against those receipts; in any other mode it is a seller assertion until audit.

Replay and runtime assurance

replay_recipe_sha256 is required when guarantee_class is deterministic_replay. runtime_assurance_tier draws on the closed vocabulary of runtime assurance elsewhere in Chio, minus its default: a finding carries basic, attested, or verified, and an untiered finding omits the field instead of encoding none.

Intent commitment validation

intent_commitment_receipt_id earns a pricing uplift only when semantically verified: the referenced receipt resolves, it precedes every evidence receipt on the finding, and its parameter_hash commits to this finding’s context_sha256. Presence alone earns nothing.

Collateral backing

bond_ref is resolved at admission against a collateral-store snapshot. The fee schedule declares the bond class, amount, currency, and slashable flag, and its digests are separate fields in the signed backing. A fee requirement or a BondBacked listing label creates no exclusive allocation for a finding.

Live backing is chio.finding.bond-backing.v1. The collateral authority binds it to the seller key, the listing and finding ids, the fee-requirement digest, class and currency, the locked amount, the maximum sale exposure, the claim, audit, appeal, and settlement horizons, and a unique allocation id. Admission rejects stale, wrong-owner, wrong-currency, underfunded, or already encumbered backing; Pricing a finding covers sizing.

Listing actor kind

A finding lists under an existing subject kind. GenericListingActorKind (see Discovery) is closed and wire-frozen at four variants: ToolServer, CredentialIssuer, CredentialVerifier, and LiabilityProvider. The seller’s tool server is listed as ToolServer, and that listing’s metadata_url and resolution_url point at the Finding record.

The finding’s identity is in the listing pricing hint, at a capability_scope of finding:<finding_id>. That hint cannot be the target of price_hint_ref: it signs finding:<finding_id>, so its envelope digest cannot also enter the preimage the finding id is computed over. Admission requires price_hint_ref absent for the finding-scoped projection and binds both exact signed envelopes itself, which is why the field exists only for a cycle-free pricing policy authored before the finding.

Validation and compatibility

The v1 schema closes the record and its nested objects to unknown fields. Schema validation checks structure, enum values, encodings, bounds, and conditionally required fields. Semantic validation adds the content address, key strength, and expiry ordering; callers establish current validity and verify required evidence against trusted authorities.

An empty receipt array is allowed only when both classes are asserted and the runtime assurance tier is absent. A deterministic_replay record without replay_recipe_sha256 fails the schema. Omitting an optional field is valid; encoding it as null fails.

  • spec/schemas/chio-finding/v1/finding.schema.json defines field types, required members, and structural constraints.
  • crates/economy/chio-finding/src/types.rs defines the signed record; crates/economy/chio-finding/src/validate.rs checks semantic structure.
  • crates/trust/chio-finding-verifier/src/verify.rs checks guarantee and evidence backing; crates/trust/chio-finding-verifier/src/checkpoints.rs checks checkpoint membership and trust.

Next: buy what a finding commits to