Documentation

How EchoTc holds a case.

Policy echotrace-policy-1.0.0. English analysis. Localization-ready layout, not a translated model.

What a case is

A user freezes one claim and three to eight public URLs. One-hop suggestions can be accepted before the freeze, up to twelve sources. After create_case the claim, sources, and policy do not move. Reanalysis is a new case with a parent id.

Direct Mode and Studionet

Direct Mode receipts say consensus was not submitted. Studionet is a separate state. A wallet case can be finalized there while the Harborline example in this browser stays partial. A new local case is not the chain case until this desk signs it.

On Studionet, the wallet signs each method through GenLayerJS. The server never holds a production signing key. FINALIZED in an explorer is a consensus lifecycle. It is application success only when execution returned and the case state matches.

The stored quote is a sentence from the rendered page. The contract does not keep a model-written origin URL, because validators were disagreeing on free wording. A chain relationship without that URL is distinct evidence, not an inferred dependency. Origin gaps are demonstrated in Direct Mode when a labeled fixture cites a document that was not frozen.

Public read methods

Reads do not create a transaction hash. In Direct Mode the desk labels the ledger and the time of the read. A Studionet read, once an address is configured, is a separate control and is not implied by a successful local read.

MethodArgumentsWhat a correct result is
get_policy_versionnoneechotrace-policy-1.0.0
get_policynoneFrozen caps and the partial-finalization rule
get_case_countnoneNumber of created cases, not a live user count
get_casecase idOwner, status, frozen manifest. A missing id returns found false.
get_source_reviewcase id, source idOne review, or found false when the source is absent.
get_relationshipscase idObject with found and the sealed schedule. A missing case returns found false and an empty schedule.
get_reportcase idSealed reports say finalized true. An open case returns finalized false and no invented evidence.

How a relationship is named

If a contribution has no origin URL, it is distinct evidence. If it names a URL that is inside the frozen manifest, the link is an explicit dependency. If it names a URL that was not frozen, the link is unresolved — an origin gap — even when the quote is an interview or an announcement, not merely a mention. possible_dependency is part of the vocabulary and is not emitted by v1, because the seal step will not invent a softer verdict than the frozen quote supports.

Write methods

  • create_case — idempotent for the same sender, client request id, and manifest. A different manifest with the same id is rejected.
  • review_sources_batch — the contract chooses the next pending sources, three at a time. Callers cannot skip one.
  • seal_source_reviews — derives the relationship schedule from anchored contributions.
  • review_relationship_batch — records that schedule. It does not accept a typed verdict and does not render the web again.
  • finalize_case — refuses a case with no reviewed source. Partial reports stay marked.
  • retry_unavailable — owner only, two attempts. A later success stamps evidence ids. A miss stays a miss.

Evidence rules

A quote stored on Studionet is a sentence copied from the rendered page: the one with the strongest overlap with the claim. Free-form model explanations are not stored, because validators disagreed on that wording and the case never moved. Instructions inside a page are data. They cannot add sources, change policy, or set a truth flag — there is no truth flag.

Stance is supports, contradicts, mentions only, or unclear. A mixed article keeps each contribution. An announcement is not treated as the event itself.

Threats we do not pretend to close

Hostname checks are not DNS-rebinding protection. A snapshot hash is not publisher authentication. Equivalence between validators is not immunity to a page that fools every validator the same way. Direct Mode does not render arbitrary websites, so it cannot be cited as a live web review.

Deploying the contract

The contract source is EchoTrace/contracts/echotrace.py. Address 0xCABcFaBC7a76d602b8c4b0Aed367853155aDe59B. Deployment transaction 0x8c6aa8e55b97139bbda7ac8524b0f28a5b1a2788e871d2f3aee1c183e99b4a30. Consensus accepted it and execution succeeded. A missing case, a missing source, and an unsealed report return JSON with found or finalized set to false. They do not revert. The previous address 0x8EB48E25fAE1F8b997b58e27F756FD0A7E1FB5Ce still holds the earlier cases, including et-41f3646a7e1f and et-280db9fe766f. An earlier deployment at 0xCBe65e90A55c3a873f1DA815970396bb25699a48 could not finish source review. Studio’s validator set is the hosted studio configuration, not a claim of independent mainnet operators.