API reference Evidence
Notarize a product endpoint with TLSNotary
POST/v1/observations/web-fact
Fetches the endpoint once over TLS with leg A as the TLSNotary notary (MPC-TLS, or Proxy-TLS when MPC-TLS fails), commits to the body or to the object around anchor, and returns the EIP-712 WebFact leg A signed with its attested key. Runs apart from any countersign and never delays one. An app acting for a user needs evidence:write.
Headers
Content-Typeapplication/jsonRequiredidempotency-keystringRequiredIdempotency-KeystringRequired- 1 to 255 characters. A retry with the same key returns the first answer.
Request body
application/json
urlstringRequired- A public JSON product endpoint, such as a Shopify store's
/products/<handle>.js. anchorstring- Commit to the smallest JSON object in the body that contains this text (a variant's
"id":123) instead of the whole body.
Responses
- 201The signed WebFact
- 422The URL is refused, or its response is not a 200 the notary accepts
- 429Too many WebFacts today for this client
- 502The session failed, or its WebFact did not verify
- 503No prover is configured, leg A has no admitted signer, or the rate limit store is unreachable
201 response
webFactobjectRequiredmodestringRequired- One of
mpcproxy msintegerRequired- How long the TLSNotary session took.
rangearray of valuesRequired- The committed range of the response,
[start, end). committedstringRequired- The committed bytes, hex.
blinderstringRequired- The 16-byte blinder, hex:
rangeCommitmentisSHA-256(committed ‖ blinder).