Skip to main content

Verify Wallet Signature

POST /v1/users/auth/wallet/verify

Auth: None

FieldTypeRequiredDescription
addressstringYesSame address used to request the nonce
signaturestringYesSignature produced by signing message
curl -X POST https://api.2settle.io/v1/users/auth/wallet/verify \
-H "Content-Type: application/json" \
-d '{ "address": "0xabc1234567890def1234567890abcdef12345678", "signature": "0x..." }'
{
"success": true,
"data": {
"user": { "...": "same shape as OTP verify" },
"accessToken": "eyJhbGciOi...",
"refreshToken": "9d3f7b2a...",
"expiresInSec": 900
}
}

Notes:

  • Only the most recent, unconsumed, unexpired nonce for that address is accepted, and each nonce can be used exactly once — a missing, stale, or already-consumed nonce fails with WALLET_NONCE_EXPIRED (400).
  • If the recovered signer doesn't match the requested address, fails with INVALID_WALLET_SIGNATURE (401).
  • First-time addresses auto-create a user with a verified wallet identity — the signature itself is the proof of ownership, no separate OTP step.