---
title: "Exchange a signed SIWE message for a short-lived scoped API key"
method: POST
path: "/v2/auth/siwe/verify"
tags: ["Orders"]
---

# Exchange a signed SIWE message for a short-lived scoped API key

`POST /v2/auth/siwe/verify`

## Request

- Base URL: `https://execution.kairos.trade`
- URL: `https://execution.kairos.trade/v2/auth/siwe/verify`
- Auth: none required

Consumes the challenge nonce, verifies the signature, resolves the Kairos user that owns the wallet, and mints an API-key triple with scopes `trade:execute`, `trade:read`, `position:read`. **Unauthenticated.**
**Expiry and rotation.** The key expires at `expires_at` (RFC3339 UTC), `EXTERNAL_SIGNING_SIWE_KEY_TTL_SECS` after minting (24h by default); after that every request with it is rejected as `401`. The key is bound to the signing wallet, and minting one revokes every other active key of the same user bound to that wallet, so only the newest SIWE key per wallet works. Re-run challenge + verify before `expires_at` and switch to the new triple immediately. `POST /v2/wallets/revoke` revokes all of a wallet's SIWE keys at once.

## Request body

- object
  - `message` string, required: The `message` returned by the challenge, verbatim.
  - `signature_hex` string, required: 65-byte EIP-191 `personal_sign` signature, 0x-prefixed hex.

## Response `200`

The API-key triple. `api_key` and `api_secret` are shown once.

- object
  - `client_id` string, required
  - `api_key` string, required
  - `api_secret` string, required
  - `scopes` string[], required
  - `address` string, required: The signing wallet, lowercase hex.
  - `expires_at` string, date-time, required: When the key stops working (RFC3339 UTC).

## Other responses

- `400`: Malformed or tampered message, bad signature, a missing/expired/used challenge, or a wallet that is not linked to any Kairos account.
- `503`: `SIWE login is not configured on this deployment`.

---

[API](https://skmtc.dev/kairos/apis/kairos-order-execution-api.md) - [All operations](https://skmtc.dev/kairos/apis/kairos-order-execution-api/llms.txt) - [OpenAPI document](https://skmtc.dev/kairos/apis/kairos-order-execution-api/revisions/9ba7d463d505?raw)
