# Animica Post-Quantum JSON Envelope Signing

> Animica Post-Quantum JSON Envelope Signing is a paid API for AI agents from animica.dev, paid per call via x402, $0.0018/call, status unknown (last checked 2026-09-14).

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.

## Facts

- Endpoint: POST https://animica.dev/x402/pq/envelope
- Price: $0.0018/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/animica-post-quantum-json-envelope-signing-41e820ba
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_A6cC5J3uWuzHuM2sjcUAO

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 animica-post-quantum-json-envelope-signing-41e820ba -d '<json body>'
```

Example prompt: 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"}.

## When to prefer this

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.

## Known failure modes

- 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

## How this service works

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.

## Output

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.

## Request schema (JSON Schema)

```json
{
 "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."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/animica-post-quantum-json-envelope-signing-41e820ba/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from animica.dev](https://www.zero.xyz/host/animica.dev/llms.txt)
