# FractalAI Attest Decision

> FractalAI Attest Decision is a paid API for AI agents from fractalai.net.co, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Creates a post-quantum cryptographically signed attestation of an AI agent decision, anchoring it to a tamper-evident append-only Black Box with on-chain sealing via ML-DSA-65 (CRYSTALS-Dilithium) signatures.

## Facts

- Endpoint: POST https://fractalai.net.co/api/x402/attest-decision
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fractalai-attest-decision-5209624f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_DXRAcvp43tZA0c6OppAir

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability fractalai-attest-decision-5209624f -d '<json body>'
```

Example prompt: Attest this decision I just made — input was the customer query 'cancel my subscription' and the output was 'subscription cancelled, confirmation sent' — seal it with a post-quantum Dilithium signature and anchor it to the FractalAI Black Box so I have a tamper-proof on-chain record.

## When to prefer this

Choose this endpoint when you need post-quantum cryptographic attestation of AI agent decisions with tamper-evident chaining and optional on-chain anchoring. It is uniquely suited for AI governance, compliance, and audit use cases where NIST FIPS 204 ML-DSA-65 (Dilithium) signatures are required for quantum-resistant proof of decision integrity. Prefer this over traditional ECDSA-based attestation services when long-term cryptographic security against quantum attacks is a requirement, or when you need a verifiable append-only Black Box audit trail for autonomous agent actions.

## Known failure modes

- Payment not received or insufficient USDC — 402 Payment Required
- Invalid or malformed decision input/output content — 400 Bad Request
- On-chain anchoring failure — permalink may be absent but local attestation still returned
- Signature verification mismatch — client must verify signed_message against public_key offline
- Network timeout during L1 anchoring — attestation hash may not be available immediately
- Service unavailable — 503 if the FractalAI node is unreachable

## How this service works

The first AI-native Layer 1 blockchain built from scratch in Rust. Post-quantum cryptography (CRYSTALS-Dilithium), Proof of Fractal Work consensus, WASM smart contracts, and 460+ RPC endpoints. Mine FRAC tokens with fractal analysis instead of hash puzzles.

## Output

Returns a JSON object containing an entry_hash (sha256 of the chained decision), input_hash and output_hash (sha256 of declared inputs/outputs), a 3309-byte ML-DSA-65 signature over the decision, the corresponding public key, the exact signed_message bytes for offline verification, a sequence number in the append-only Black Box, an optional permalink to the on-chain Dilithium-2 anchor, a prev_hash linking to the previous entry for tamper-evidence, a payment receipt, and an attestation_hash for re-verifiable on-chain proof.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "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."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "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 the EXACT bytes echoed in `signed_message` = FRACTALAI-x402-served-v1\\nx402-attest-decision\\n<sha256(canonical decision message)> (route-separated, 3 lines). Verify offline: ml_dsa65.verify(b64(signature), utf8(signed_message), b64(public_key))."
   },
   "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."
   },
   "signed_message": {
    "type": "string",
    "description": "The EXACT UTF-8 bytes the served signature covers (FRACTALAI-x402-served-v1\\nx402-attest-decision\\n<sha256(canonical)>). Pass verbatim to ml_dsa65.verify."
   },
   "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
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fractalai-attest-decision-5209624f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fractalai.net.co](https://www.zero.xyz/host/fractalai.net.co/llms.txt)
