# Animica Notarize — Document Timestamping & Anchoring API

> Animica Notarize — Document Timestamping & Anchoring API is a paid API for AI agents from animica.dev, paid per call via x402, $0.002152/call, status unknown (last checked 2026-09-15).

Hashes and anchors a document or SHA-256 digest to a ledger, returning a cryptographic proof of existence at a specific block height.

## Facts

- Endpoint: POST https://animica.dev/x402/notarize
- Price: $0.002152/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/animica-notarize-document-timestamping-anchoring-api-051aca44
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gqo9TWfLIdE_eB54bKdAm

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-notarize-document-timestamping-anchoring-api-051aca44 -d '<json body>'
```

Example prompt: Please notarize this document for me — here it is base64-encoded: 'SGVsbG8gV29ybGQ=', add the memo 'Q4 2025 contract draft', and give me the Merkle proof and verify URL so I can prove it existed today.

## When to prefer this

Use this endpoint when you need a cheap ($0.006542 per call), pay-per-use, cryptographic proof-of-existence for a document or digest, without deploying your own notarization infrastructure. Prefer it over blockchain-write APIs when you want a Merkle-proof-based anchoring with a human-readable verify URL and optional data storage, and when you are operating in an x402-compatible agent payment environment. Not suitable for retrieving or querying existing records (use a separate lookup endpoint), and not a substitute for legally recognized notarization services in all jurisdictions.

## Known failure modes

- Neither 'data' nor 'digest' provided — returns validation error requiring one of the two
- Invalid base64 encoding of data field — returns parse or decode error
- Digest not exactly 32 bytes / 64 hex chars — returns format error
- memo exceeds 256 characters — returns validation error
- Payment not attached or insufficient USDC — returns HTTP 402 requiring x402 payment
- Network or ledger anchoring failure — may return 503 or timeout
- store_data=true with very large payload may be rejected or incur higher cost

## How this service works

Anchor a SHA-256 digest (or a small document, which we hash for you) into the Animica data-availability layer and get back a commitment plus a Merkle inclusion proof anyone can check without trusting us. The record is erasure-coded across shards and committed to a Merkle root; the response carries the commitment, the leaf index and sibling path, and the chain head height and hash observed at the moment of anchoring. Verification is FREE and permanent at GET /x402/notarize/verify/{commitment} — a notarisation nobody can check would be worth nothing. Note precisely what this proves: the record is committed in this node's DA tree under the returned commitment, alongside the head it observed. That is not the same as a timestamp signed by the whole consensus set, and the response says so rather than blurring the two.

## Output

Returns a JSON object containing: a commitment identifier, blob_id, namespace, the committed SHA-256 digest, the exact record bytes committed, a Merkle proof (leaf_index, leaf_hash, sibling hashes, tree_height), anchoring details (block height, block hash, observed_at timestamp), a verify_url for independent verification, and a plain-language explanation of what the proof establishes and its limitations.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "string",
   "description": "base64 document to hash and anchor (we store the digest and the memo, never your bytes, unless store_data is true)"
  },
  "memo": {
   "type": "string",
   "description": "optional label stored with the record, <=256 chars"
  },
  "digest": {
   "type": "string",
   "description": "a 32-byte SHA-256 digest as hex (with or without 0x). Supply this OR data."
  },
  "store_data": {
   "type": "boolean",
   "description": "also store the supplied data itself, retrievable later (default false — by default only the digest is committed)"
  }
 }
}
```

## Response schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/animica-notarize-document-timestamping-anchoring-api-051aca44/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)
