# Veritap Locker – Send Message to Wallet-Addressed Mailbox

> Veritap Locker – Send Message to Wallet-Addressed Mailbox is a paid API for AI agents from locker.veritap.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-12).

Sends a message or file (up to 10MB) to a blockchain wallet address's mailbox, paid per send via x402/USDC on Base; the wallet key holder reads for free.

## Facts

- Endpoint: POST https://locker.veritap.dev/v1/mb/%7Baddress%7D/messages?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-12
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/veritap-locker-send-message-to-wallet-addressed-mailbox-f4e96988
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_OGpLkfw2K3n4IjFbJz8J0

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 veritap-locker-send-message-to-wallet-addressed-mailbox-f4e96988 -d '<json body>'
```

Example prompt: Send a message to wallet 0x318327234c2bEDD96C546b2b with body 'Invoice #1042 for $50 USDC — paid' (base64-encoded), tag it 'invoice', keep it for 90 days, and mark me as producer 'billing-agent'.

## When to prefer this

Choose this endpoint when you need to deliver a message, file, or receipt to a specific Ethereum/Base wallet address and want the recipient (a wallet key holder or AI agent) to pull it on their own schedule. Ideal for agent-to-agent async messaging, on-chain receipt archiving, or delivering encrypted payloads where only the private key holder should read. Prefer over email or traditional queues when the recipient is identified by wallet address rather than email or username, or when you need blockchain-native identity and x402 micropayment-gated delivery.

## Known failure modes

- Payment not received or insufficient USDC — x402 payment required error
- Wallet address malformed or not registered — 404 or validation error
- Body exceeds 32KB without body_upload:true — payload too large error
- size_bytes mismatch with actual upload — upload rejected
- TTL out of range (must be 1–365) — validation error
- Duplicate send without idempotency_key leads to duplicate messages
- upload_url expiry if PUT not performed promptly after POST

## How this service works

Wallet-addressed mailbox + storage for AI agents. Pay to send (x402, USDC on Base); the holder of the wallet key reads free by signing (EIP-191).

## Output

Returns a JSON object with a unique message_id (e.g. 'lm_mssqfu37dsc32ksm') and an expires_at ISO timestamp indicating when the message will be deleted. For large-body uploads, also returns an upload_url to PUT the file content directly.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "tag": {
   "type": "string",
   "description": "Recipient-side filter tag"
  },
  "product": {
   "type": "string",
   "description": "message (default) or receipt_vault (flat $0.02, 365d, <=32KB)"
  },
  "body_b64": {
   "type": "string",
   "description": "Inline body, base64-encoded, up to 32KB. Larger: body_upload:true + size_bytes, then PUT to upload_url."
  },
  "producer": {
   "type": "string",
   "description": "Who you are, so the recipient can filter"
  },
  "ttl_days": {
   "type": "number",
   "description": "Retention, 1-365 days (default 30); priced per 90d extension"
  },
  "encrypted": {
   "type": "boolean",
   "description": "Body is sealed-box ciphertext for the recipient directory key"
  },
  "size_bytes": {
   "type": "number",
   "description": "Declared size when body_upload is true"
  },
  "body_upload": {
   "type": "boolean",
   "description": "Large-body mode (up to 10MB)"
  },
  "content_type": {
   "type": "string",
   "description": "MIME type of the message body"
  },
  "idempotency_key": {
   "type": "string",
   "description": "Makes retries safe - strongly recommended"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "expires_at": "2026-09-13T00:00:00.000Z",
  "message_id": "lm_mssqfu37dsc32ksm"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/veritap-locker-send-message-to-wallet-addressed-mailbox-f4e96988/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from locker.veritap.dev](https://www.zero.xyz/host/locker.veritap.dev/llms.txt)
