> ## Documentation Index
> Fetch the complete documentation index at: https://docs.veil.cash/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Build on Veil with the SDK, CLI, and MCP server

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.

<CardGroup cols={2}>
  <Card title="SDK & CLI" icon="terminal" href="/build-with-veil/sdk-cli">
    `@veil-cash/sdk` — a TypeScript library and `veil` CLI for keypairs, register, deposit, withdraw, transfer, merge, and subaccounts.
  </Card>

  <Card title="MCP Server" icon="robot" href="/build-with-veil/mcp-server">
    `@veil-cash/mcp` — a local MCP server that exposes Veil as agent tools, running alongside Base MCP.
  </Card>
</CardGroup>

## 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](https://mcp.base.org).

## 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`

<Info>
  Both packages are published on npm: [`@veil-cash/sdk`](https://www.npmjs.com/package/@veil-cash/sdk) and [`@veil-cash/mcp`](https://www.npmjs.com/package/@veil-cash/mcp).
</Info>
