---
title: "Create wallet challenge"
method: POST
path: "/v1/auth/challenge"
tags: ["Auth"]
---

# Create wallet challenge

`POST /v1/auth/challenge`

Issues a challenge message that must be signed by the wallet owner.

**Rate limiting**: 1 request per 6 seconds per client IP. Excess requests receive HTTP `429` with `Retry-After`, `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers (see `RateLimitExceeded` response).

## Request body

- GetChallengeRequest
  - `walletAddress` string, required — User's Ethereum wallet address (must be checksummed per EIP-55)
  - `siweDomain` string, required — The domain requesting the SIWE signature (e.g. "app.metalend.tech")
  - `siweUri` string, required — The URI for the SIWE message (e.g. "https://app.metalend.tech")
  - `siweStatement` string, required — The human-readable statement shown to the user in the SIWE signing prompt
  - `chain` 'ETHEREUM' | 'BASE' | 'POLYGON' | 'ARBITRUM' | 'OPTIMISM' | 'AVALANCHE' | 'LINEA', nullable — The blockchain network. Defaults to "ETHEREUM" if omitted.

## Response `200`

Challenge issued successfully

- GetChallengeResponse
  - `message` string, required — Challenge message to sign using personal_sign method

## Other responses

- `400` — Validation error
- `401` — No authorization header provided
- `429` — Too many requests for this endpoint. Limits are enforced per client IP for the public API routes backed by `RebalancerResource` (and related resources using the same filter). Response headers (when throttled): - `Retry-After`: seconds to wait before retrying (matches the rate-limit window duration for that endpoint). - `X-RateLimit-Limit`: maximum requests allowed in the window (e.g. `1`). - `X-RateLimit-Remaining`: remaining requests in the window (`0` when throttled). - `X-RateLimit-Reset`: Unix timestamp (seconds) when the limit window resets. `internalCode` in the JSON body is `THROTTLE_PER_IP` for IP-scoped limits (other values may apply for different scopes in the backend).
- `500` — Internal server error

---

[API](https://skmtc.net/metalend/apis/metalend-rebalancing-api.md) · [All operations](https://skmtc.net/metalend/apis/metalend-rebalancing-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metalend/metalend-rebalancing-api/versions/1b9900a9e91e/schema)
