Verify wallet login¶
POST /api/auth/verify
Complete the wallet login flow. Provide the messageId from POST /api/auth/message and the wallet's EIP-191 signature over the message. On success the account is created if it does not exist yet and a JWT is issued; send it as an Authorization Bearer header to endpoints that accept JWT authentication. Each message can be verified only once.
Request body (application/json)
{
"messageId": "68fa3450539a3c9d28bbca35",
"signature": "0x2f8e6a1c4b7d9e0f3a5c7e9b1d4f6a8c0e2b4d6f8a0c2e4b6d8f0a2c4e6b8d0f1a3c5e7b9d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a0c2e4b6d8f0a1b"
}
Responses
| Status | Description |
|---|---|
200 |
Signature valid; JWT issued. |
401 |
Verification failed. Plausible codes: AUTH_006 (unknown or already-used messageId), AUTH_007 (message expired), AUTH_008 (the signature does not recover to the address that requested the message). |
500 |
Server error. Plausible codes: SYSTEM_001. |