{"uid":"cap_-UfPcpbTOfk4l3ylg3gWl","slug":"animica-post-quantum-signature-verification-ml-dsa-65-8a219e6c","name":"Animica Post-Quantum Signature Verification (ML-DSA-65)","description":"Verify a post-quantum signature (ML-DSA-65 / Dilithium3 / SPHINCS+ as enabled by chain policy) against a message and public key, using the same verifier the Animica chain itself uses to admit transactions. Useful when an agent must check a PQ-signed attestation without shipping a post-quantum library of its own. A signature that does not verify is a SUCCESSFUL call answering ok:false - you paid for the answer, and \"invalid\" is an answer. Only an inability to perform the check is treated as a failure.","url":"https://animica.dev/x402/pq/verify","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"alg_id":{"type":"integer","description":"scheme id - 4099 (0x1003) is ML-DSA-65, the only scheme that can spend on Animica"},"message":{"type":"string","description":"hex-encoded message bytes"},"sign_hash":{"type":"string","description":"hex domain/sign-hash bytes, when the scheme binds one"},"signature":{"type":"string","description":"hex-encoded signature"},"public_key":{"type":"string","description":"hex-encoded public key"}}},"responseSchema":{"type":"json"},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.001794","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.001794/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001794","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.001794","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm__8QALe7vhTzzgs3A5lyxi","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.001794","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Verifies a post-quantum ML-DSA-65 (Dilithium) digital signature against a public key and message, returning a cryptographic verdict with fingerprint and metadata.","exampleAgentPrompt":"Verify this ML-DSA-65 post-quantum signature for me — the algorithm ID is 4099, the message bytes are 'a1b2c3...', the signature is 'deadbeef...', and the public key is 'f00d...'. I want to know if it checks out and what the public key fingerprint is.","exampleUseCases":[{"title":"Validate agent payment authorization","prompt":"I have a payment authorization signed with ML-DSA-65 (alg_id 4099) — can you check whether this signature 'deadbeef...' on message '1234abcd...' is valid for public key 'f00d9876...'? I need the fingerprint and the reason if it fails."},{"title":"Audit post-quantum signed document","prompt":"We received a document hash signed with a Dilithium key (ML-DSA-65, alg_id 4099). Please verify the signature 'cafe1234...' against message '0x8a9b...' and public key 'ab12ef...' and tell me if it's authentic and when the verification was done."},{"title":"Authenticate a user's quantum-safe credential","prompt":"A user is trying to log in using a post-quantum credential — their public key is 'b00bface...', the challenge message is '99aabb...' and they sent back signature '11223344...'. Use algorithm 4099 (ML-DSA-65) to check if the signature is genuine and return the key fingerprint."}],"resultDescription":"Returns a JSON object with: 'ok' (boolean verdict of whether the signature is valid), 'reason' (explanation if invalid), 'scheme_id' and 'scheme_name' (confirming ML-DSA-65), 'pub_fingerprint' (a fingerprint of the public key), 'sizes' (byte sizes of inputs), and 'verified_at' (timestamp of verification).","failureModes":["Invalid or malformed hex encoding for message, signature, or public key — returns ok:false with reason","Unsupported alg_id (anything other than 4099) — scheme not recognized","Signature does not match message and public key — returns ok:false","Missing required fields (alg_id, message, signature, public_key) — request rejected","Payment not received or insufficient USDC balance — x402 payment required error"],"whenToPreferThis":"Choose this endpoint when you need to verify post-quantum (ML-DSA-65 / Dilithium) digital signatures specifically — especially in contexts involving Animica platform payments or agents spending ANM tokens, where ML-DSA-65 is the only accepted spending scheme. Prefer over generic ECDSA or RSA verifiers when quantum-resistance is required.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:44:21.824Z","isFirstParty":false}