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

# Quickstart

> Start making payments from your AI agent in under 5 minutes.

## Step 1: Create an Account

1. Go to [app.unwall.xyz](https://app.unwall.xyz) and sign up.
2. Complete identity verification (KYC).
3. Create your first project -- give it a name like "My Agent" and optionally set a budget limit.

<Info>
  Each project is an isolated wallet with its own USDC balance, transaction history, and API tokens.
</Info>

## Step 2: Get Your API Token

From your project's dashboard page:

1. Navigate to **Tokens** and click **Create Token**.
2. Select the permissions your agent needs: `read`, `pay`, and `x402`.
3. Copy the token immediately -- it starts with `aw_live_` and is only displayed once.

<Warning>
  Store your token securely. The full token value cannot be retrieved after creation. If you lose it, revoke the old token and create a new one.
</Warning>

## Step 3: Fund Your Wallet

Get your project's USDC deposit address:

```bash theme={null}
curl https://api.unwall.xyz/v1/stablecoin/address \
  -H "Authorization: Bearer aw_live_xxxxxxxxxxxx"
```

```json Response theme={null}
{
  "chain": "base",
  "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD28",
  "currency": "usdc"
}
```

Send USDC on the **Base** network to the returned address. Your balance will update once the on-chain transaction confirms.

## Step 4: Make Your First API Call

### Check your balance

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.unwall.xyz/v1/balance \
    -H "Authorization: Bearer aw_live_xxxxxxxxxxxx"
  ```

  ```python Python theme={null}
  import requests

  headers = {"Authorization": "Bearer aw_live_xxxxxxxxxxxx"}
  response = requests.get("https://api.unwall.xyz/v1/balance", headers=headers)
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://api.unwall.xyz/v1/balance", {
    headers: { Authorization: "Bearer aw_live_xxxxxxxxxxxx" },
  });
  const balance = await response.json();
  console.log(balance);
  ```
</CodeGroup>

```json Response theme={null}
{
  "project_id": "proj_abc123",
  "currency": "usdc",
  "available": 5000000,
  "pending": 0,
  "total_funded": 5000000,
  "total_spent": 0,
  "wallet_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18"
}
```

### Send a payment via x402

Use the unified `/v1/pay` endpoint. When the recipient is an x402-enabled URL, Unwall automatically routes via the x402 protocol.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.unwall.xyz/v1/pay \
    -H "Authorization: Bearer aw_live_xxxxxxxxxxxx" \
    -H "Content-Type: application/json" \
    -d '{
      "recipient": "https://api.example.com/v1/data",
      "amount": 10000,
      "description": "Fetch market data via x402"
    }'
  ```

  ```python Python theme={null}
  import requests

  headers = {
      "Authorization": "Bearer aw_live_xxxxxxxxxxxx",
      "Content-Type": "application/json",
  }
  payload = {
      "recipient": "https://api.example.com/v1/data",
      "amount": 10000,
      "description": "Fetch market data via x402",
  }
  response = requests.post("https://api.unwall.xyz/v1/pay", json=payload, headers=headers)
  print(response.json())
  ```

  ```typescript TypeScript theme={null}
  const response = await fetch("https://api.unwall.xyz/v1/pay", {
    method: "POST",
    headers: {
      Authorization: "Bearer aw_live_xxxxxxxxxxxx",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      recipient: "https://api.example.com/v1/data",
      amount: 10000,
      description: "Fetch market data via x402",
    }),
  });
  const result = await response.json();
  console.log(result);
  ```
</CodeGroup>

```json Response theme={null}
{
  "id": "tx_def456",
  "status": "completed",
  "rail": "x402",
  "amount": 10000,
  "recipient": "https://api.example.com/v1/data",
  "created_at": "2026-03-11T10:30:00Z"
}
```

## Step 5: Set Up MCP (Optional)

If you use Claude Desktop, Cursor, or another MCP-compatible client, you can give your AI assistant direct access to Unwall tools.

Add the following to your Claude Desktop configuration (`claude_desktop_config.json`):

```json theme={null}
{
  "mcpServers": {
    "unwall": {
      "command": "npx",
      "args": ["-y", "@unwall/mcp-server"],
      "env": {
        "UNWALL_API_TOKEN": "aw_live_xxxxxxxxxxxx"
      }
    }
  }
}
```

This gives your MCP client access to tools like `get_balance`, `send_payment`, `send_usdc`, `x402_pay`, and more.

## What's Next?

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/authentication">
    Learn about token permissions, rate limits, and security best practices.
  </Card>

  <Card title="Unified Pay Endpoint" icon="route" href="/api-reference/agent/unified-pay">
    Deep dive into the POST /v1/pay endpoint and its routing logic.
  </Card>

  <Card title="x402 Payments" icon="bolt" href="/guides/x402-payments">
    Understand how x402 protocol payments work under the hood.
  </Card>

  <Card title="MCP Server Guide" icon="plug" href="/guides/mcp-server">
    Full setup guide for the MCP server with all available tools.
  </Card>
</CardGroup>
