FractalAI � Post-Quantum Proofs for AI Agents
Verification PAYMENT-READYpayment-ready until 2026-09-24
Post-quantum (CRYSTALS-Dilithium-2, NIST FIPS 204) services for autonomous agents, payable per call in USDC on Base: Dilithium-2 signing, PQC signature verification, AI decision attestation (VAID-1), training-data attestation (C2PA), provenance sealing (drand + on-chain), CBOM cryptographic-inventory sealing, and Know-Your-Agent identity verification. Self-facilitated (EIP-3009 gasless) with a facilitator-less txHash fallback. Signatures are anchored on the FractalAI L1 with a public, verifiable attestation permalink.
Pay from $0.01 to $0.05 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.
measured since 2026-08-18 (start of our harvest window) · $0.71 all-time · settled via coinbase, payAI
VERDICT
ranking generation 3solid 76/100 #73 of 87 in Verification by measured score
What the score read on this service: status online, 99.2% uptime 30d, 1108ms response p95, x402 compliance 13 of 14, $0.01 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.
The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.
It is a score inside Verification, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 87 listings, this one among them. That set is wider than the 87 the position above is counted against, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.
Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.
ALTERNATIVES IN VERIFICATION
Other Verification services in this directory, ordered by the same measured score. The figures are ours: 30-day uptime from our own probes, 30-day settlement volume read on-chain (a conservative undercount, and null where we cannot measure it, never a zero).
| SERVICE | BAND | SCORE | UPTIME 30D | VOL 30D |
|---|---|---|---|---|
| scvd.store — evidence observatory for the x402 economy | strong | 94 | 100% | $1.0k |
| Rubric Protocol — Post-Quantum AI Attestation | solid | 92 | 100% | $16.86 |
| 767-2676.com - POPCORN | solid | 88 | 99.9% | $0.06 |
| ForgeMesh x402 Notary | solid | 88 | 100% | $0.02 |
| 10x402 | solid | 88 | 100% | $2.50 |
ASSESSMENT
updated 2h agoThe parts the verdict above is computed from, each with its proof. Click any chip. Measured values stay read-only; unknown is honest, and an unknown is never counted as a zero.
reliability 99.2%
- uptime 24h
- 100%
- uptime 7d
- 99.8%
- uptime 30d
- 99.2%
- uptime 90d
- 99.5%
- response p95
- 1108ms
- avg response
- 389ms
- total checks
- 2,644
Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.
compliance C (13/14): EIP-712 domain parameters present on every EVM entry
13 of 14 x402 conformance checks pass; failing: EIP-712 domain parameters present on every EVM entry. Full checklist below.
signability route not signable
At least one EVM route on this service returns its 402 without the EIP-712 domain parameters (extra.name and extra.version), so a standard x402 client cannot build the signature for that route.
Measured on the last 402 envelope captured from this service. It is a fact about the envelope, not a judgement on the service or its operator.
This is the only conformance check that caps the compliance grade, at C.
price $0.01 to $0.05 (p45 in Verification)
- price (min)
- $0.01
- price (max)
- $0.05
- category percentile (min)
- p45 in Verification
- category percentile (max)
- p45 in Verification
- endpoints / prices
- 7 / 4
- model
- tiered
- stability
- 100%
risk clean
No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.
- domain age
- -
- registrar
- -
- hosting
- custom
- domain created
- ---
Identity facts, not a risk score.
traction $0.635 30d · 4 buyers
- volume 30d
- $0.635
- buyers 30d
- 4
- settlements 30d
- 28
- measured since
- 2026-08-18 (start of our harvest window)
- last settlement
- 2026-09-17
- top buyer share
- 57% of 30d volume
- trend 7d vs 30d
- 3.48x the 30d daily rate
- networks
- eip155:8453
- volume all-time
- $0.71
- settlements all-time
- 32
- median settlement 30d
- $0.02
- max settlement 30d
- $0.05
- settled via
- coinbase ($0.54, 23 tx), payAI ($0.10, 5 tx)
Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.
Top buyer share is a concentration signal, not part of the ranking score.
WHAT IT DOES
ai-derivedNo AI synthesis has been produced for this service yet.
ENDPOINTS
| METHOD | PATH | DESCRIPTION | PRICE | NETWORK | ASSET | 402 CHANNEL |
|---|---|---|---|---|---|---|
| GET | /api/x402/attest-decision | Seal one AI decision in FractalAI's post-quantum L1: Dilithium-2 signed, Black-Box chained, on-chain anchored (VAID-1). Re-verifiable receipt. | $0.05 | Base | USDC | header |
| GET | /api/x402/attest-training | One post-quantum (Dilithium-2, NIST FIPS 204) provenance manifest over your dataset/training-run hash — C2PA-compatible, re-verifiable. | $0.05 | Base | USDC | header |
| GET | /api/x402/seal | One post-quantum (Dilithium-2, NIST FIPS 204) provenance seal — drand-timestamped + on-chain-anchored — over your dataset/training/content hash. | $0.05 | Base | USDC | header |
| GET | /api/x402/seal-cbom | One post-quantum (Dilithium-2, NIST FIPS 204) seal over your CycloneDX CBOM (cryptographic inventory) — drand-timestamped, re-verifiable `.cbomseal`. | $0.05 | Base | USDC | header |
| GET | /api/x402/sign | One post-quantum (Dilithium-2, NIST FIPS 204) signature over your message/hash. | $0.02 | Base | USDC | header |
| GET | /api/x402/verify-agent | Verify an agent KYA credential: post-quantum (Dilithium-2, NIST FIPS 204) signature + integrity + expiry, plus a live FRC-55 on-chain reputation read. | $0.03 | Base | USDC | header |
| GET | /api/x402/verify-proof | Verify one post-quantum (Dilithium-2, NIST FIPS 204) signature over a message against a public key. | $0.01 | Base | USDC | header |
REQUEST / RESPONSE EXAMPLE
An unpaid request to GET /api/x402/attest-decision returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.
curl -i 'https://fractalai.net.co/api/x402/attest-decision'
// 402 response (captured by monitor) · 7 payloads · click to expand
[
{
"error": "Payment required",
"price": "$0.05",
"usage": "POST { content | content_hash, kind?, issuer?, anchor? }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Facilitator-native: retry with X-PAYMENT = base64(JSON(exact-scheme payload with a signed EIP-3009 authorization)). Fallback: retry with X-PAYMENT = base64(JSON({ txHash })). Returns a drand-timestamped, on-chain-anchored, Dilithium-2 provenance seal. FREE re-verification: GET ?seal=<JSON>[&content_hash=<hex>].",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-Seal — post-quantum provenance seals for autonomous agents (dataset / training / AI content)",
"resource": {
"url": "https://fractalai.net.co/api/x402/seal",
"mimeType": "application/json",
"description": "Pay-per-Seal: one post-quantum Dilithium-2 (NIST FIPS 204) provenance seal — drand-timestamped and on-chain-anchored — over a dataset/training/content hash. EU AI Act (Art. 10/50/53) provenance for autonomous agents, x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"kind": "dataset",
"content_hash": "sha256hex"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"seal"
],
"properties": {
"seal": {
"type": "object",
"description": "The re-verifiable provenance seal: { version, content_hash, drand_round, drand_randomness, sealed_at, algorithm, signature (base64 Dilithium-2), public_key }."
},
"anchor": {
"type": "object",
"description": "On-chain anchor receipt (attestation_hash, block_number, permalink) or a note if anchoring was unavailable. Advisory — the seal is valid without it. The anchor is Dilithium-2 (ML-DSA-44), bound to the node."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"verify_drand_at": {
"type": "string",
"description": "URL to independently re-check the drand round on drand.sh."
},
"served_signature": {
"type": "object",
"description": "Self-contained, OFFLINE-verifiable Dilithium-3 / ML-DSA-65 (NIST FIPS 204) signature over the canonical seal bytes: { algorithm: \"ml-dsa-65\", algorithm_label, digest (sha256 hex signed), signature (base64 ML-DSA-65, 3309 bytes), public_key (base64, 1952 bytes) }. Additive — verify with ml_dsa65.verify(sig, \"FRACTALAI-x402-served-v1\\n\"+digest, public_key)."
}
}
},
"example": {
"seal_id": "…",
"permalink": "https://fractalai.net.co/attestation/0x…",
"attestation_hash": "0x…",
"served_signature": {
"algorithm": "ml-dsa-65"
}
}
},
"inputSchema": {
"type": "object",
"required": [],
"properties": {
"kind": {
"type": "string",
"description": "Optional provenance kind: \"dataset\" | \"training\" | \"content\" (informational label recorded in the seal)."
},
"anchor": {
"type": "boolean",
"description": "Optional (default true): also anchor the seal hash on-chain (VAID-1) for a public, tamper-evident record. Failure to anchor never fails the seal."
},
"issuer": {
"type": "string",
"description": "Optional declaring party (recorded, informational)."
},
"content": {
"type": "string",
"description": "Arbitrary UTF-8 content to seal; we seal sha256(content). Provide content OR content_hash."
},
"content_hash": {
"type": "string",
"description": "A sha256 hex digest you already computed (e.g. of a dataset or training artifact); sealed as-is. Privacy-preserving — the content never leaves you."
}
}
}
},
"tags": [
"provenance",
"dataset",
"timestamp",
"c2pa",
"drand"
],
"description": "Pay-per-Seal: one post-quantum Dilithium-2 (NIST FIPS 204) provenance seal — drand-timestamped and on-chain-anchored — over a dataset/training/content hash. EU AI Act (Art. 10/50/53) provenance for autonomous agents, x402-native.",
"serviceName": "FractalAI Provenance"
}
},
"x402Version": 2,
"honest_scope": "Proves this exact dataset/training/content hash EXISTED no later than the drand round, was not altered since, and was signed by this server's post-quantum (Dilithium-2, NIST FIPS 204) key. It does NOT prove authorship, originality, nor the quality/truthfulness/lawfulness of the content — it is a provenance SEAL, not an audit. Dilithium-2 is resistant to known classical & quantum attacks, not \"unbreakable\"."
},
{
"error": "Payment required",
"price": "$0.02",
"usage": "POST { message | hash }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Facilitator-native: retry with X-PAYMENT = base64(JSON(exact-scheme payload with a signed EIP-3009 authorization)). Fallback: retry with X-PAYMENT = base64(JSON({ txHash })). Returns an ML-DSA-65 / Dilithium-3 signature.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "20000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "20000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-Proof — post-quantum signatures for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/sign",
"mimeType": "application/json",
"description": "Pay-per-Proof: one post-quantum ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over your message/hash, x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"message": "hello agent economy"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"digest",
"signature",
"algorithm",
"public_key"
],
"properties": {
"digest": {
"type": "string",
"description": "The hex digest that was signed."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"algorithm": {
"type": "string",
"description": "ml-dsa-65"
},
"signature": {
"type": "string",
"description": "Base64 ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature (3309 bytes) over FRACTALAI-x402-served-v1\\nx402-sign\\n<digest>."
},
"public_key": {
"type": "string",
"description": "Base64 ML-DSA-65 public key (1952 bytes) that verifies the signature."
}
}
},
"example": {
"digest": "9f86…",
"algorithm": "ml-dsa-65",
"signature": "BASE64_ML_DSA65_3309B",
"public_key": "BASE64_ML_DSA65_1952B"
}
},
"inputSchema": {
"type": "object",
"required": [],
"properties": {
"hash": {
"type": "string",
"description": "Hex digest you already computed; signed directly. Provide message OR hash."
},
"message": {
"type": "string",
"description": "Arbitrary UTF-8 string; we sign sha256(message)."
}
}
}
},
"tags": [
"signature",
"post-quantum",
"ml-dsa-65",
"ai-agent",
"fips-204"
],
"description": "Pay-per-Proof: one post-quantum ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over your message/hash, x402-native.",
"serviceName": "FractalAI Pay-per-Proof"
}
},
"x402Version": 2
},
{
"error": "Payment required",
"price": "$0.05",
"usage": "POST { cbom, issuer?, subject?, analyze? }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Retry with X-PAYMENT. Returns a re-verifiable `.cbomseal` (Dilithium-2 seal cert + additive ML-DSA-65 / Dilithium-3 served signature, drand-timestamped) + informational PQC-readiness breakdown.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-CBOM-Seal — seal a CycloneDX cryptographic inventory for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/seal-cbom",
"mimeType": "application/json",
"description": "Pay-per-CBOM-Seal: a drand-timestamped, re-verifiable seal over a CycloneDX CBOM (ECMA-424) cryptographic inventory — a Dilithium-2 (NIST FIPS 204) `.cbomseal` cert PLUS an additive ML-DSA-65 / Dilithium-3 (NIST FIPS 204) served signature over the same canonical claim. Built for CNSA 2.0 / OMB M-23-02 PQC-readiness disclosure. Informational readiness breakdown included. x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"cbom": {
"bomFormat": "CycloneDX",
"components": []
},
"issuer": "acme"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"seal",
"served_signature"
],
"properties": {
"seal": {
"type": "object",
"description": "The re-verifiable `.cbomseal`: { claim (cbom_hash, issuer, subject, crypto_asset_count, drand_round, drand_randomness, sealed_at, algorithm), signature (base64 Dilithium-2 / ML-DSA-44, via the Rust PQC node), public_key, seal_id }. Re-verifiable at /api/cbom."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"readiness": {
"type": "object",
"description": "Informational PQC-readiness breakdown (quantum_vulnerable / pqc / symmetric_or_hash / unknown counts). NOT an audit."
},
"verify_drand_at": {
"type": "string",
"description": "URL to independently re-check the drand round on drand.sh."
},
"served_signature": {
"type": "object",
"description": "ADDITIVE post-quantum signature over the SAME canonical claim: { algorithm (\"ml-dsa-65\"), algorithm_label, signature (base64 ML-DSA-65 / Dilithium-3, 3309 bytes, signed locally via @noble), public_key (base64, 1952 bytes), signed_message (\"FRACTALAI-x402-served-v1\\n<claim_digest>\"), claim_digest (sha256 of canonical claim) }. Verify offline: ml_dsa65.verify(b64(signature), utf8(signed_message), b64(public_key))."
}
}
},
"example": {
"seal": {
"seal_id": "…"
},
"served_signature": {
"algorithm": "ml-dsa-65"
}
}
},
"inputSchema": {
"type": "object",
"required": [
"cbom"
],
"properties": {
"cbom": {
"type": "object",
"description": "The CycloneDX CBOM (ECMA-424) as a JSON object (or JSON string) whose components include cryptographic-asset entries."
},
"issuer": {
"type": "string",
"description": "Optional: organization declaring/owning this cryptographic inventory (recorded, informational)."
},
"analyze": {
"type": "boolean",
"description": "Optional (default true): include an informational PQC-readiness breakdown (counts declared algorithms by quantum-vulnerability family)."
},
"subject": {
"type": "string",
"description": "Optional: target system/product this CBOM describes (recorded, informational)."
}
}
}
},
"tags": [
"cbom",
"cnsa-2.0",
"crypto-inventory",
"pqc-readiness",
"compliance"
],
"description": "Pay-per-CBOM-Seal: a drand-timestamped, re-verifiable seal over a CycloneDX CBOM (ECMA-424) cryptographic inventory — a Dilithium-2 (NIST FIPS 204) `.cbomseal` cert PLUS an additive ML-DSA-65 / Dilithium-3 (NIST FIPS 204) served signature over the same canonical claim. Built for CNSA 2.0 / OMB M-23-02 PQC-readiness disclosure. Informational readiness breakdown included. x402-native.",
"serviceName": "FractalAI CBOM Seal"
}
},
"x402Version": 2,
"honest_scope": "Seals YOUR DECLARED cryptographic inventory: proves integrity, authenticity of the claim, prior existence (drand timestamp) and non-repudiation. It does NOT audit the inventory for correctness/completeness, and does NOT certify that you are PQC-ready or compliant with CNSA 2.0 or any regulation — that remains your declaration. The quantum-vulnerability counts are informational, not an audit. Dilithium-2 is resistant to known classical & quantum attacks (NIST FIPS 204), not \"unbreakable\"."
},
{
"error": "Payment required",
"price": "$0.03",
"usage": "POST a KYA credential (body or { credential }), optional { check_reputation }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Retry with X-PAYMENT. Returns a verdict: signature valid? in-date? + live FRC-55 on-chain reputation.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "30000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-KYA — verify an agent identity + scope credential for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/verify-agent",
"mimeType": "application/json",
"description": "Pay-per-KYA: an agent pays to verify another agent's post-quantum identity + scope credential (Dilithium-2, NIST FIPS 204), with a live FRC-55 on-chain reputation read. ERC-8004-aligned Know Your Agent for autonomous agent-to-agent commerce. x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"credential": {
"claim": {},
"signature": "BASE64",
"public_key": "BASE64",
"credential_id": "…"
}
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"valid",
"stage",
"reason",
"signature",
"algorithm",
"public_key"
],
"properties": {
"claim": {
"type": "object",
"description": "The echoed KYA claim (agent_id, operator, scope, validity window)."
},
"stage": {
"type": "string",
"description": "Which check decided the verdict: structure | credential_id | signature | expiration | ok."
},
"valid": {
"type": "boolean",
"description": "True iff the post-quantum signature verifies, integrity holds, and the credential is in-date."
},
"reason": {
"type": "string",
"description": "Human-readable explanation of the verdict."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"algorithm": {
"type": "string",
"description": "ml-dsa-65 — algorithm of the served attestation signature this route produces."
},
"signature": {
"type": "string",
"description": "Base64 ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature (3309 bytes) over FRACTALAI-x402-served-v1\\n<attestation_digest>, attesting this exact verdict."
},
"public_key": {
"type": "string",
"description": "Base64 ML-DSA-65 public key (1952 bytes) that verifies the served signature."
},
"reputation": {
"type": "object",
"description": "Live FRC-55 on-chain reputation snapshot, when referenced and available (else null)."
},
"not_expired": {
"type": "boolean",
"description": "True iff the credential is still in-date."
},
"algorithm_label": {
"type": "string",
"description": "ML-DSA-65 / Dilithium-3 (NIST FIPS 204)."
},
"attestation_digest": {
"type": "string",
"description": "sha256 hex of the canonical verdict that the served signature covers."
},
"seconds_until_expiry": {
"type": "number",
"description": "Seconds until expiry (negative if expired)."
},
"verified_credential_algorithm": {
"type": "string",
"description": "Algorithm of the INPUT credential that was verified: dilithium2 (ML-DSA-44, NIST FIPS 204)."
}
}
},
"example": {
"valid": true,
"algorithm": "ml-dsa-65",
"verified_credential_algorithm": "dilithium2"
}
},
"inputSchema": {
"type": "object",
"required": [],
"properties": {
"credential": {
"type": "object",
"description": "A FractalAI KYA credential ({ claim, signature, public_key, credential_id }) to verify. Provide this OR the whole request body IS the credential."
},
"check_reputation": {
"type": "boolean",
"description": "Optional (default true): re-read live FRC-55 on-chain reputation when the credential references an agent id."
}
}
}
},
"tags": [
"kya",
"agent-identity",
"reputation",
"erc-8004",
"post-quantum"
],
"description": "Pay-per-KYA: an agent pays to verify another agent's post-quantum identity + scope credential (Dilithium-2, NIST FIPS 204), with a live FRC-55 on-chain reputation read. ERC-8004-aligned Know Your Agent for autonomous agent-to-agent commerce. x402-native.",
"serviceName": "FractalAI Know-Your-Agent"
}
},
"x402Version": 2,
"honest_scope": "Proves integrity, authenticity, and non-repudiation of the identity + scope the OPERATOR declared for their agent. It does NOT prove the agent behaves well or stays within scope at runtime, and it does NOT verify that the operator is a legitimate entity (that is operator KYC — a separate step). On-chain reputation, when shown, is a live read from the FRC-55 registry, not an endorsement. Dilithium-2 is resistant to known classical & quantum attacks (NIST FIPS 204), not \"unbreakable\"."
},
{
"error": "Payment required",
"price": "$0.01",
"usage": "POST { message | message_b64, signature, public_key }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Retry with X-PAYMENT. Verifies an ML-DSA-65 / Dilithium-3 OR Dilithium-2 signature (auto-detected by size) and returns a verdict ($0.01, the floor price).",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "10000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-Verify — verify a post-quantum signature for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/verify-proof",
"mimeType": "application/json",
"description": "Pay-per-Verify: an agent pays $0.01 to verify a post-quantum (ML-DSA-65 / Dilithium-3 or Dilithium-2, NIST FIPS 204; scheme auto-detected by size) signature over a message against a public key. A generic machine-to-machine PQC proof primitive for autonomous agents. x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"signature": "BASE64_SIG",
"public_key": "BASE64_PK",
"message_b64": "BASE64_BYTES"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"valid",
"algorithm",
"verified_algorithm",
"input_signature",
"input_public_key"
],
"properties": {
"valid": {
"type": "boolean",
"description": "True iff the supplied client signature (ML-DSA-65 or Dilithium-2, auto-detected) is valid over the message for the public key."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"algorithm": {
"type": "string",
"description": "ml-dsa-65 — algorithm of THIS route's attestation signature over the verdict (NOT necessarily the client input scheme; see verified_algorithm)."
},
"signature": {
"type": "string",
"description": "Base64 ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature (3309 bytes) by this server over FRACTALAI-x402-served-v1\\n<attestation_digest>, attesting the verdict. Null (with served_signature_error) if the served signer was momentarily unavailable — the paid verdict is still served."
},
"public_key": {
"type": "string",
"description": "Base64 ML-DSA-65 public key (1952 bytes) that verifies the attestation signature. Null if the served signer was unavailable."
},
"message_b64": {
"type": "string",
"description": "The exact base64 bytes that were verified (echoed for reproducibility)."
},
"algorithm_label": {
"type": "string",
"description": "ML-DSA-65 / Dilithium-3 (NIST FIPS 204)"
},
"input_signature": {
"type": "string",
"description": "The exact base64 client signature that was verified (echoed so a third party can recompute attestation_digest from this response alone)."
},
"input_public_key": {
"type": "string",
"description": "The exact base64 client public key that was verified (echoed for attestation_digest reconstruction)."
},
"attestation_digest": {
"type": "string",
"description": "sha256 hex over JSON({valid, verified_algorithm, message_b64, message_hash, signature: input_signature, public_key: input_public_key}) — reconstructible from this response."
},
"verified_algorithm": {
"type": "string",
"description": "The DETECTED scheme of the CLIENT input signature that was verified: ml-dsa-65 or dilithium2."
},
"served_signature_error": {
"type": "string",
"description": "Present only if the served attestation signer failed; the verdict is still authoritative and paid."
},
"verified_algorithm_label": {
"type": "string",
"description": "Human label of verified_algorithm, e.g. \"ML-DSA-65 / Dilithium-3 (NIST FIPS 204)\" or \"Dilithium-2 (NIST FIPS 204)\"."
}
}
},
"example": {
"valid": true,
"algorithm": "ml-dsa-65",
"verified_algorithm": "dilithium2"
}
},
"inputSchema": {
"type": "object",
"required": [
"signature",
"public_key"
],
"properties": {
"message": {
"type": "string",
"description": "The UTF-8 message that was signed. Provide message OR message_b64. For an ML-DSA-65 signature this must be the EXACT bytes the client signed."
},
"signature": {
"type": "string",
"description": "The base64 post-quantum signature to verify. Scheme auto-detected by size: 3309 bytes → ML-DSA-65 / Dilithium-3 (verified locally); 2420 bytes → Dilithium-2 / ML-DSA-44 (verified via the node PQC API). Required."
},
"public_key": {
"type": "string",
"description": "The base64 public key to verify against. 1952 bytes → ML-DSA-65 / Dilithium-3; 1312 bytes → Dilithium-2 / ML-DSA-44. Must match the signature scheme. Required."
},
"message_b64": {
"type": "string",
"description": "The base64-encoded exact bytes that were signed (use this if the original signer signed raw bytes, e.g. our /api/x402/sign). Provide message OR message_b64. For ML-DSA-65 the verifier checks ml_dsa65.verify(signature, base64-decode(message_b64), public_key) — pass the exact signed message (include any domain prefix the signer used)."
}
}
}
},
"tags": [
"verify",
"signature",
"post-quantum",
"primitive",
"ml-dsa-65"
],
"description": "Pay-per-Verify: an agent pays $0.01 to verify a post-quantum (ML-DSA-65 / Dilithium-3 or Dilithium-2, NIST FIPS 204; scheme auto-detected by size) signature over a message against a public key. A generic machine-to-machine PQC proof primitive for autonomous agents. x402-native.",
"serviceName": "FractalAI Verify"
}
},
"x402Version": 2,
"honest_scope": "Proves ONLY that the signature is a valid Dilithium-2 (NIST FIPS 204) signature over exactly this message for exactly this public key. It says NOTHING about who owns the key, whether it should be trusted, or the truthfulness of the message. Resistant to known classical & quantum attacks per NIST, not \"unbreakable\"."
},
{
"error": "Payment required",
"price": "$0.05",
"usage": "POST { agent_id, input, output, model_id?, model_version? }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Facilitator-native: retry with X-PAYMENT = base64(JSON(exact-scheme payload with a signed EIP-3009 authorization)). Fallback: retry with X-PAYMENT = base64(JSON({ txHash })). Returns a re-verifiable attestation (Dilithium-2 signed, Black-Box chained, VAID-1 anchored). Re-verify later via GET /api/blackbox?agent_id=…&verify=1.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-Attestation — seal an AI decision in a post-quantum L1 for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/attest-decision",
"mimeType": "application/json",
"description": "Pay-per-Attestation: an AI agent pays to seal its own decision (input hash, output, model, timestamp) in FractalAI's post-quantum L1 — Dilithium-2 (NIST FIPS 204) signed, Black-Box chained, on-chain anchored (VAID-1). Returns a re-verifiable receipt. Built for EU AI Act Art.12 record-keeping. x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"input": "ctx",
"output": "decision",
"agent_id": "agent-42"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"entry_hash",
"input_hash",
"output_hash",
"signature",
"public_key"
],
"properties": {
"seq": {
"type": "number",
"description": "Append-only sequence number of this decision in the agent Black Box."
},
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"algorithm": {
"type": "string",
"description": "ml-dsa-65 (the served signature algorithm)."
},
"permalink": {
"type": "string",
"description": "Permalink to the on-chain Dilithium-2 anchor (VAID-1), when the L1 anchor succeeds."
},
"prev_hash": {
"type": "string",
"description": "Hash of the previous Black Box entry this one is chained to (tamper-evident order)."
},
"signature": {
"type": "string",
"description": "Base64 ML-DSA-65 / Dilithium-3 (NIST FIPS 204) SERVED signature (3309 bytes) over FRACTALAI-x402-served-v1\\n<sha256(canonical decision message)>."
},
"entry_hash": {
"type": "string",
"description": "Black Box entry hash: sha256 of the chained, canonical decision content."
},
"input_hash": {
"type": "string",
"description": "sha256 of the declared input."
},
"public_key": {
"type": "string",
"description": "Base64 ML-DSA-65 public key (1952 bytes) that verifies the served signature."
},
"output_hash": {
"type": "string",
"description": "sha256 of the declared output."
},
"entry_signature": {
"type": "string",
"description": "Base64 Dilithium-2 (NIST FIPS 204) signature over the Black-Box entry hash — the chained on-chain-anchored seal."
},
"attestation_hash": {
"type": "string",
"description": "On-chain (VAID-1) attestation hash — re-verifiable proof the decision was sealed."
},
"entry_public_key": {
"type": "string",
"description": "Base64 Dilithium-2 public key that verifies entry_signature."
}
}
},
"example": {
"algorithm": "ml-dsa-65",
"permalink": "https://fractalai.net.co/attestation/0x…",
"signature": "BASE64_ML_DSA65",
"attestation_hash": "0x…"
}
},
"inputSchema": {
"type": "object",
"required": [
"agent_id",
"input",
"output"
],
"properties": {
"input": {
"type": "string",
"description": "The decision input/prompt. We seal sha256(input) — the raw input is NOT stored."
},
"output": {
"type": "string",
"description": "The decision output the agent produced. We seal sha256(output)."
},
"agent_id": {
"type": "string",
"description": "Stable identifier of the AI agent whose decision is being sealed."
},
"model_id": {
"type": "string",
"description": "Model identifier (e.g. \"midas-risk-v1\"). Optional; defaults to \"fane-agent-v1\"."
},
"model_version": {
"type": "string",
"description": "Model version tag (e.g. \"2026-06-20\"). Optional."
}
}
}
},
"tags": [
"ai-provenance",
"decision",
"audit",
"eu-ai-act",
"on-chain"
],
"description": "Pay-per-Attestation: an AI agent pays to seal its own decision (input hash, output, model, timestamp) in FractalAI's post-quantum L1 — Dilithium-2 (NIST FIPS 204) signed, Black-Box chained, on-chain anchored (VAID-1). Returns a re-verifiable receipt. Built for EU AI Act Art.12 record-keeping. x402-native.",
"serviceName": "FractalAI Notary"
}
},
"x402Version": 2
},
{
"error": "Payment required",
"price": "$0.05",
"usage": "POST { dataset | dataset_hash, model_id, issuer?, content_type?, prompt? }. First call → 402 with `accepts` (facilitator EIP-3009 gasless, or pay-first txHash). Retry with X-PAYMENT. Returns a re-verifiable C2PA-compatible provenance manifest (Dilithium-2 anchor) plus a served ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over the same canonical claim.",
"accepts": [
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2",
"decimals": 6,
"assetTransferMethod": "eip3009"
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
},
{
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USDC",
"decimals": 6,
"settlement": "txHash",
"instructions": "Facilitator-less: send exactly `amount` USDC to `payTo` on Base, then retry with PAYMENT-SIGNATURE = base64(JSON({ txHash })) (X-PAYMENT also accepted)."
},
"payTo": "0xC13789e82661635d9Cea38a53A0390CF9939ef4f",
"amount": "50000",
"scheme": "exact",
"network": "eip155:8453",
"maxTimeoutSeconds": 300
}
],
"service": "FractalAI x402 Pay-per-Training-Provenance — seal dataset/training-run provenance for autonomous agents",
"resource": {
"url": "https://fractalai.net.co/api/x402/attest-training",
"mimeType": "application/json",
"description": "Pay-per-Training-Provenance: an agent pays to seal the provenance of a dataset or training run — a C2PA-compatible manifest binding the dataset/artifact hash to a declared origin, served with a post-quantum ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over the same canonical claim (manifest anchor: Dilithium-2). Built for EU AI Act Art. 10/53 training-data provenance. Privacy-preserving (only the hash is bound). x402-native."
},
"extensions": {
"bazaar": {
"info": {
"input": {
"body": {
"model_id": "fane-1",
"dataset_hash": "sha256hex"
},
"type": "http",
"method": "POST",
"bodyType": "json"
},
"output": {
"type": "json",
"schema": {
"type": "object",
"required": [
"manifest",
"algorithm",
"signature",
"public_key"
],
"properties": {
"payment": {
"type": "object",
"description": "Settlement receipt (scheme, network, asset, txHash, payer, settled)."
},
"manifest": {
"type": "object",
"description": "The re-verifiable C2PA-compatible provenance manifest, signed with Dilithium-2 (NIST FIPS 204): { claim (content_hash, model_id, issuer, prompt_hash, created_at, ...), signature (base64 Dilithium-2), public_key, manifest_id }."
},
"algorithm": {
"type": "string",
"description": "ml-dsa-65"
},
"signature": {
"type": "string",
"description": "Base64 ML-DSA-65 / Dilithium-3 (NIST FIPS 204) served signature (3309 bytes) over FRACTALAI-x402-served-v1\\n<digest>, where digest = sha256(canonicalClaim(manifest.claim)) = manifest.manifest_id."
},
"verify_at": {
"type": "string",
"description": "Endpoint to freely re-verify the Dilithium-2 manifest."
},
"public_key": {
"type": "string",
"description": "Base64 ML-DSA-65 public key (1952 bytes) that verifies the served signature."
},
"algorithm_label": {
"type": "string",
"description": "ML-DSA-65 / Dilithium-3 (NIST FIPS 204)"
},
"served_signature": {
"type": "object",
"description": "The served post-quantum proof: { algorithm, algorithm_label, digest, message, signature, public_key, note } — offline-verifiable independently of the manifest."
}
}
},
"example": {
"algorithm": "ml-dsa-65",
"signature": "BASE64",
"manifest_id": "…"
}
},
"inputSchema": {
"type": "object",
"required": [
"model_id"
],
"properties": {
"issuer": {
"type": "string",
"description": "Optional: the party declaring this provenance (recorded, informational)."
},
"prompt": {
"type": "string",
"description": "Optional context/description; stored ONLY as a hash (privacy-preserving)."
},
"dataset": {
"type": "string",
"description": "The raw dataset/training content to seal; we bind sha256(dataset). Provide dataset OR dataset_hash."
},
"model_id": {
"type": "string",
"description": "Model / dataset identifier this provenance is for (e.g. \"fane-1\", \"acme-corpus-v3\"). Required."
},
"content_type": {
"type": "string",
"description": "Optional MIME/label for the dataset (e.g. \"application/jsonl\", \"dataset\")."
},
"dataset_hash": {
"type": "string",
"description": "A sha256 hex digest you already computed (e.g. of a dataset or model artifact); bound as-is. Privacy-preserving — the data never leaves you."
}
}
}
},
"tags": [
"training",
"c2pa",
"provenance",
"ai-model",
"ml-dsa"
],
"description": "Pay-per-Training-Provenance: an agent pays to seal the provenance of a dataset or training run — a C2PA-compatible manifest binding the dataset/artifact hash to a declared origin, served with a post-quantum ML-DSA-65 / Dilithium-3 (NIST FIPS 204) signature over the same canonical claim (manifest anchor: Dilithium-2). Built for EU AI Act Art. 10/53 training-data provenance. Privacy-preserving (only the hash is bound). x402-native.",
"serviceName": "FractalAI Training Provenance"
}
},
"x402Version": 2,
"honest_scope": "Proves integrity, authenticity of the CLAIM, and non-repudiation of what the issuer declared. It does NOT prove the content is safe, true, or lawful, and it is not an AI-detector — it records the provider's own machine-readable mark. Dilithium-2 is resistant to known classical & quantum attacks (NIST FIPS 204), not \"unbreakable\"."
}
] OVER TIME
All charts use the 30d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/fractalai-post-quantum-proofs-for-ai-agents/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.
Median across 7 endpoints. Use the selector to isolate one.
checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression
Measured site and economics pillars from the assessment history, so the latest value shown elsewhere on this page reads as a point on a trend rather than a permanent state.
COMPLIANCE
13/14 checks pass · grade C · failing: EIP-712 domain parameters present on every EVM entrylast 402 captured 2026-08-18 · last up 2026-09-17
- 402 payload captured
- accepts[] array present
- payTo address recoverable
- payTo at accepts[0].payTo (conformant shape)
- payTo is a valid on-chain address
- atomic price declared
- atomic price in a sane range
- asset (token) address declared
- network resolves to CAIP-2
- payment scheme declared
- served over HTTPS
- declares the current x402 version (2)
- EIP-712 domain parameters present on every EVM entry
- x402 v2 envelope delivered in the payment-required header
SITE PILLARS
- homepage reachable
- openapi doc
- pricing page
- llms.txt
- robots.txt
- terms page
recent checks (18) live · click to expand
EMBED THIS BADGE
<a href="https://x402-list.com/services/fractalai-post-quantum-proofs-for-ai-agents?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/fractalai-post-quantum-proofs-for-ai-agents.svg" alt="FractalAI � Post-Quantum Proofs for AI Agents listed on x402-list" height="28"> </a>
[](https://x402-list.com/services/fractalai-post-quantum-proofs-for-ai-agents?utm_source=badge&utm_medium=referral&utm_campaign=embed)
<a href="https://x402-list.com/services/fractalai-post-quantum-proofs-for-ai-agents?utm_source=badge&utm_medium=referral&utm_campaign=embed"> <img src="https://x402-list.com/badge/fractalai-post-quantum-proofs-for-ai-agents.svg?data=uptime" alt="FractalAI � Post-Quantum Proofs for AI Agents uptime on x402-list" height="28"> </a>