Deliver documents straight into your users' wallets.

Use the Wallet Protocol — simple APIs and webhooks — to send contracts, bills, invoices, policies, notices and signing requests into the wallets your users already trust.

Deliver a contract into a user's wallet
await wallet.assets.deliver({
  walletId,
  type: "contract",
  title: "Service Agreement",
  requireSignature: true,
  agentAssist: true
})

How the Wallet Protocol works

1

Register a delivery

One API call registers a contract, bill or notice as a deliverable wallet asset — typed, versioned and traceable.

2

Deliver into the wallet

Your user receives it in a wallet they already trust, where they can read it, sign it and keep it.

3

Listen for events

Webhooks report opens, signatures and verifications back to your system in real time.

API reference (preview)

The Wallet Protocol is a plain HTTPS API. One endpoint delivers a typed document into a wallet; webhooks report what happens next.

Authentication

Pass your API key in the x-api-key header. Keys are issued self-serve on the Integrations page of your wallet and are scoped per integration.

x-api-key: wlt_live_xxxxxxxxxxxxxxxx

Deliver a document

POST an envelope to deliver a contract, bill, invoice, policy or notice. The target accepts a wallet address, wallet id or digital address; idempotencyKey makes retries safe.

POST https://service.icloudportal.com/api/theWallet.protocol.deliverAsset
x-api-key: wlt_live_xxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "protocolVersion": "2026-01",
  "idempotencyKey": "order-2026-0611-001",
  "source": { "system": "acme-billing", "organizationName": "Acme Ltd" },
  "target": { "walletAddress": "alex@wallet.thewallet.ai" },
  "asset": {
    "type": "contract",
    "title": "Service Agreement",
    "requiresSignature": true
  },
  "options": { "requireUserConfirmation": true }
}

Response

{
  "status": 0,
  "data": {
    "deliveryId": "dlv_9f2…",
    "assetId": "ast_71c…",
    "inboxItemId": "inb_2ab…",
    "signatureRequestId": "sig_e04…",
    "status": "delivered",
    "requireUserConfirmation": true,
    "reused": false
  }
}

Webhooks

Register webhook endpoints on the Integrations page to receive delivery events — for example asset.created when a document lands in a wallet — signed and retried automatically.

{
  "eventType": "asset.created",
  "data": {
    "assetId": "ast_71c…",
    "assetType": "contract",
    "walletId": "wlt_3d8…",
    "status": "received"
  }
}

Connect an AI agent (MCP)

The Wallet ships an MCP server, so agent frameworks like Claude can deliver documents, request signatures and ask the wallet owner for authorization — the agent prepares, the owner confirms.

{
  "mcpServers": {
    "thewallet": {
      "command": "npx",
      "args": ["@thewallet/mcp"],
      "env": { "THEWALLET_API_KEY": "wlt_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

Get your developer key

Create a free wallet, then issue your own API keys from the Integrations page — no sales call needed. Wallet-level delivery and the full API are included in the Platform plan.

This is a preview of the API surface. Talk to us for early access and integration support.