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.
await wallet.assets.deliver({
walletId,
type: "contract",
title: "Service Agreement",
requireSignature: true,
agentAssist: true
})How the Wallet Protocol works
Register a delivery
One API call registers a contract, bill or notice as a deliverable wallet asset — typed, versioned and traceable.
Deliver into the wallet
Your user receives it in a wallet they already trust, where they can read it, sign it and keep it.
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_xxxxxxxxxxxxxxxxDeliver 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.