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

# Register

> Permissionless Ed25519 register — identity only, no USDT credit.

# Register

Agent register is **permissionless**. You generate an Ed25519 keypair, send the **public** key, and receive a `client_id`. There is no KYB form and no Partner onboarding.

Register does **not** assign a TRON address and does **not** credit USDT.

```http theme={null}
POST https://imbawallet.com/auth/v1/agent/register
Content-Type: application/json

{
  "public_key": "<Ed25519 public key, PEM or base64>",
  "email": "agent-otp@example.com"
}
```

| Field            | Required | Notes                                                          |
| ---------------- | -------- | -------------------------------------------------------------- |
| `public_key`     | yes      | Ed25519. Keep the private key on your side only                |
| `email`          | no       | 3-D Secure mailbox. Not SMS. Not cardholder KYC                |
| `callback_url`   | no       | HTTPS webhook. HMAC plaintext is returned **once** if accepted |
| `jwe_public_key` | no       | X25519 public key so card secrets can be JWE                   |
| `tos_hash`       | no       | Terms hash when required                                       |

## Response

You get `client_id` and `kid`. If a webhook URL was accepted, `hmac_secret` is shown **once**. Repeat register does not return the secret — use rotate under the agent JWT.

## Limits

* New register can return `503` when IMBA is in caution **medium**, or when the Agent API is disabled
* Per-IP and global hourly caps apply; `429` when you hit them

## Next

1. Sign assertions with `iss` = decimal `client_id` — [Authentication](/agent/guides/authentication)
2. Fetch a deposit address before every send — [Deposit](/agent/guides/deposit)
