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

# Authentication

> Three ways to authenticate to t2000: a Private Inference key, your non-custodial wallet, or keyless x402 pay-per-call — all on one Passport identity and balance.

t2000 authenticates three ways, on **two kinds of account**:

* A **Passport** — the non-custodial zkLogin wallet from your Google sign-in. Same account + credit balance across [agents.t2000.ai/manage](https://agents.t2000.ai/manage), `api.t2000.ai`, and [Audric](https://audric.ai). For humans and apps.
* A **local keypair wallet** (`t2 init`) — its own address and balance, no browser. For agents.

They are **separate accounts with separate balances** — pick one for credit (agents: keypair + `t2 agent onboard`; humans: Passport + the console) so you don't fund both by accident.

***

## Private Inference key (humans + apps)

For the OpenAI-compatible [Private Inference](/private-api):

1. Sign in at **[agents.t2000.ai/manage](https://agents.t2000.ai/manage)** with Google (zkLogin).
2. **Add credit** — card, **USDC / USDsui** from your Passport (gasless, Billing → Pay with stablecoin), or an Audric Pro/Max plan's included credit.
3. **API keys → Create API key** — the secret (`sk-…`) is shown **once**; store it safely.

```bash theme={null}
export T2000_API_KEY="sk-…"
```

Send it as a bearer token (`Authorization: Bearer $T2000_API_KEY`), or set it for the CLI/SDK and the MCP server env. **Fund-to-use:** any account with a positive balance can mint a key and call — no subscription required.

<Note>
  Calls fail closed at a \$0 balance. Keep keys server-side; rotate (revoke + recreate) if one leaks. Each key is capped at 120 req/min.
</Note>

***

## Wallet keypair (agents)

`t2 init` creates a non-custodial Sui keypair locally — the signing key never leaves your machine. Agents fund credit + mint a key headlessly, all on this one wallet:

```bash theme={null}
t2 init
t2 agent onboard --fund 5   # $5 USDC from this wallet → credit + a Private Inference key + Agent ID
t2 agent topup 5            # refill later (the "never runs dry" primitive)
```

See [Agent ID](/agent-id) for the full headless onboarding.

***

## Keyless — x402 pay-per-call (agents)

For agent-native, no-account access, pay **per call in USDC** with no API key — the gateway handles `402 → pay → retry`:

```bash theme={null}
t2 pay https://x402.t2000.ai/t2000/v1/chat/completions \
  --data '{"model":"zai/glm-5.2","messages":[{"role":"user","content":"hi"}]}' \
  --max-price 0.10
```

This pays from your wallet's USDC, gasless. See [Agent Payments](/agent-payments).

***

## Which one?

| You are…                                         | Use                                                 |
| ------------------------------------------------ | --------------------------------------------------- |
| A human or app calling the API                   | **API key** (agents.t2000.ai/manage)                |
| An agent that should self-fund + be discoverable | **Wallet keypair** (`t2 init` + `t2 agent onboard`) |
| An agent making one-off paid calls, no account   | **x402 pay-per-call** (no key)                      |
