{"uid":"cap_A6cC5J3uWuzHuM2sjcUAO","slug":"animica-post-quantum-json-envelope-signing-41e820ba","name":"Animica Post-Quantum JSON Envelope Signing","description":"Seal any JSON in a post-quantum signed envelope: canonicalise (keys sorted, stable bytes), SHA3-256, then sign that digest with ML-DSA-65 (FIPS 204, scheme 4099) — the scheme the Animica L1 admits transactions with. Buy it when a response you emit must cross a broker, cache or reseller and still be provably unaltered. Proves INTEGRITY and ANIMICA ORIGIN, not that the content is true and not anyone's real-world identity. Key and verification are free. No signature, no charge.","url":"https://animica.dev/x402/pq/envelope","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"label":{"type":"string","description":"your filing tag, bound INSIDE the signature as kind \"api-response/<label>\". Up to 64 chars of [A-Za-z0-9._:- ]. Namespaced so it can never impersonate one of this gateway's own attestations."},"payload":{"description":"the JSON value to seal — object, array, string, number, boolean or null. Sealed verbatim; nothing is normalised, rewritten or interpreted."},"anchor_chain":{"type":"boolean","description":"default false. When true the signed object also carries an observed Animica chain head {height, hash}: a lower bound on when the seal happened that this gateway cannot inflate, because a block hash cannot exist before its block. Nothing is written to the chain — the head is read from a node. If the node is unreachable the call 503s and you are NOT charged."},"include_canonical_form":{"type":"boolean","description":"default false. Return the exact hashed bytes (only when under 8192 chars) as a debugging aid for canonicalisation interop."}}},"responseSchema":{"type":"json"},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.0018","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.0018/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0018","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.0018","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_8huMYbdTNHceVAznEFeN3","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.0018","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Seals any JSON value in a post-quantum ML-DSA-65 (FIPS 204) signed envelope with SHA3-256 canonicalisation, proving integrity and Animica-origin across brokers, caches, and resellers.","exampleAgentPrompt":"Seal this JSON object in a post-quantum ML-DSA-65 signed envelope with the label 'price-quote:v1' and anchor it to the current Animica chain head so any downstream broker can verify it hasn't been altered: {\"price\": 42.99, \"currency\": \"USD\", \"item\": \"widget-A\"}.","exampleUseCases":[{"title":"Tamper-proof agent API responses","prompt":"I'm about to send this JSON price response through a reseller channel — please seal it in a post-quantum signed envelope with the label 'market-data:feed' so recipients can verify it came from us unaltered: {\"asset\": \"BTC\", \"price\": 67500, \"ts\": 1720000000}."},{"title":"Blockchain-anchored compliance record","prompt":"Sign this compliance report JSON with an Animica ML-DSA-65 envelope, anchor it to the chain head for a timestamp lower bound, and use the label 'compliance:audit-2024' — I need proof of when and from whom it was issued: {\"report_id\": \"CR-9921\", \"status\": \"passed\", \"auditor\": \"acme-corp\"}."},{"title":"Debug canonicalisation for interop","prompt":"Seal this small JSON object with label 'test:canon' and also return the exact canonical bytes so I can check my own canonicalisation logic matches yours: {\"z\": 1, \"a\": 2, \"m\": 3}."}],"resultDescription":"A signed envelope object containing: the ML-DSA-65 signature over the SHA3-256 digest of the canonicalised JSON, the digest itself, the label bound inside the signature, metadata about the signing scheme (FIPS 204 / scheme 4099), optionally the canonical byte representation of the payload, and optionally an observed Animica chain head (height + hash) as a temporal lower-bound anchor.","failureModes":["503 with no charge if anchor_chain is true and the Animica node is unreachable","Malformed or oversized label (over 64 chars or invalid characters) returns a 4xx error","Payload that cannot be JSON-serialised returns a validation error","Payment not provided or insufficient results in a 402 response with challenge details"],"whenToPreferThis":"Choose this endpoint when a JSON payload must cross an untrusted intermediary — broker, cache, reseller, or multi-agent pipeline — and the receiver needs cryptographic proof that the content originated from Animica and was not altered in transit. Prefer it over classical ECDSA or RSA signing when quantum-resistance is required (FIPS 204 / ML-DSA-65). Use the anchor_chain option when a verifiable temporal lower bound is needed without writing anything to the chain.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:41:29.663Z","isFirstParty":false}