# Quickstart

This guide walks you through creating an account and sending your first confidential USDC transfer using the HelmutPay HTTP API. It takes about five minutes.

## Prerequisites

* A HelmutPay account (sign up at [helmutpay.com](https://helmutpay.com))
* An API key from your dashboard

## 1. Authenticate

All requests authenticate with a Bearer token in the `Authorization` header:

```http
Authorization: Bearer $HELMUT_API_KEY
```

{% hint style="warning" %}
Never hardcode your API key in source code. Use environment variables or a secrets manager.
{% endhint %}

## 2. Check your balance

```http
GET /v1/account
Authorization: Bearer $HELMUT_API_KEY
```

```json
{
  "handle": "@yourhandle",
  "solana_address": "7xKp...",
  "balance": "100.00",
  "currency": "USDC"
}
```

## 3. Send a confidential transfer

Confidential transfers hide the amount on-chain while keeping sender and receiver addresses visible. This is the default behavior.

```http
POST /v1/transfers
Authorization: Bearer $HELMUT_API_KEY
Content-Type: application/json

{
  "to": "@alice",
  "amount": "25.00",
  "currency": "USDC",
  "memo": "Invoice #1042",
  "confidential": true
}
```

```json
{
  "id": "tx_01j...",
  "status": "confirmed",
  "amount": "25.00",
  "currency": "USDC",
  "confidential": true,
  "signature": "4xKp...",
  "settled_at": "2026-05-13T10:23:41Z"
}
```

The transfer settles on Solana mainnet in under 400ms. The response is returned once confirmation is received.

## 4. View your transaction feed

```http
GET /v1/transfers?limit=10
Authorization: Bearer $HELMUT_API_KEY
```

```json
{
  "data": [
    {
      "id": "tx_01j...",
      "direction": "outbound",
      "amount": "25.00",
      "currency": "USDC",
      "memo": "Invoice #1042",
      "status": "confirmed"
    }
  ],
  "has_more": false
}
```

## What's next

* [Core Concepts](/getting-started/concepts.md) - Understand privacy, policies, and agent accounts
* [Agent Accounts](/accounts/agent-accounts.md) - Provision wallets for AI agents
* [Confidential Transfers](/privacy/confidential-transfers.md) - Deep dive into the privacy model
* [Spending Policies](/spending-policies/policies.md) - Set limits and velocity caps for agents


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helmutpay.com/getting-started/quickstart.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
