# Animica Blob Storage — Base64 Upload Endpoint

> Animica Blob Storage — Base64 Upload Endpoint is a paid API for AI agents from animica.dev, paid per call via x402, $0.002164/call, status unknown (last checked 2026-09-15).

Stores a base64-encoded binary payload in Animica's decentralized blob storage and returns a retrievable blob ID, SHA256 hash, and shard layout.

## Facts

- Endpoint: POST https://animica.dev/x402/blob
- Price: $0.002164/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/animica-blob-storage-base64-upload-endpoint-0f8dc0d0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_0nDBuFhVMIbSHDy_iDmFX

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-blob-storage-base64-upload-endpoint-0f8dc0d0 -d '<json body>'
```

Example prompt: Store this base64-encoded JSON payload for me — the content type is application/json — and give me back the blob ID and retrieval URL so I can reference it later.

## When to prefer this

Choose this endpoint when you need content-addressed, pay-per-use blob storage with a cryptographic integrity proof (SHA256 + commitment) and an immediately usable retrieval URL — especially in AI agent workflows on the Animica platform where you want to earn or spend ANM tokens and avoid managing your own storage infrastructure.

## Known failure modes

- Missing or invalid 'data' field returns a 400 error
- Malformed base64 encoding causes a decode failure
- Payload too large may be rejected or incur extra cost
- Payment failure via x402 protocol results in 402 response and no storage committed
- Network timeout before commitment is confirmed leaves state uncertain

## How this service works

Store up to 1024 KiB and get back a content commitment you can hand to anyone. The blob is erasure-coded across shards in the Animica data-availability layer and is retrievable for free by commitment at GET /x402/blob/{commitment}, with a Merkle inclusion proof. Useful when an agent needs to hand another agent a durable, addressable artifact rather than a link that rots. Stored blobs are PUBLIC to anyone holding the commitment — do not put secrets here.

## Output

Returns a JSON object containing a cryptographic commitment, a unique blob_id for future retrieval, the size in bytes, a SHA256 hash for integrity verification, a retrieve_url to access the stored data, and the shard layout describing how the data is distributed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "data": {
   "type": "string",
   "description": "base64 payload"
  },
  "content_type": {
   "type": "string",
   "description": "informational label stored alongside, e.g. application/json"
  }
 }
}
```

## Response schema (JSON Schema)

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

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/animica-blob-storage-base64-upload-endpoint-0f8dc0d0/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)
