Skip to main content
Veil ships developer tooling so you can integrate private deposits, withdrawals, transfers, and payments into your own apps and agents. There are two surfaces, and the MCP server is built on top of the SDK.

SDK & CLI

@veil-cash/sdk — a TypeScript library and veil CLI for keypairs, register, deposit, withdraw, transfer, merge, and subaccounts.

MCP Server

@veil-cash/mcp — a local MCP server that exposes Veil as agent tools, running alongside Base MCP.

Which one do I use?

  • Building an app or script → use the SDK & CLI. The CLI is the quickest path for most users; the SDK is for programmatic integration.
  • Building an agent → use the MCP Server. It wraps the SDK and exposes Veil as MCP tools, designed to run beside Base MCP.

Public vs private actions

Veil splits cleanly into two kinds of action:
  • Public (register, deposit) — these are ordinary onchain transactions from your wallet. The SDK/CLI can emit unsigned calldata, and the MCP returns Base MCP send_calls calldata so your wallet (or Base MCP) submits them.
  • Private (withdraw, transfer, x402 payment) — these build a ZK proof locally and submit through the Veil relay, never exposing your private key or balance graph.

Supported assets

  • ETH — 18 decimals, native (via WETH)
  • USDC — 6 decimals, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Both packages are published on npm: @veil-cash/sdk and @veil-cash/mcp.