Get challenge nonce
curl --request GET \
--url https://api.vane.xyz/api/auth/siwx/challengeconst options = {method: 'GET'};
fetch('https://api.vane.xyz/api/auth/siwx/challenge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vane.xyz/api/auth/siwx/challenge"
response = requests.get(url)
print(response.text){
"nonce": "b3c1a9e2-4f6d-4a8b-9c2e-1d5f7a3b8c4d"
}Auth
Get challenge nonce
Returns a challenge nonce (a UUID v4) for SIWX wallet-signature authentication. No authentication is required and no cookie is set at this step. Fetch a fresh nonce for each sign-in, sign the message Nonce: <nonce> with the wallet, then submit it to POST /auth/siwx/verify. A 201 from verify consumes the nonce; a failed verify (bad signature, missing or wrong tenant key) does not, so a retry may reuse it.
GET
/
auth
/
siwx
/
challenge
Get challenge nonce
curl --request GET \
--url https://api.vane.xyz/api/auth/siwx/challengeconst options = {method: 'GET'};
fetch('https://api.vane.xyz/api/auth/siwx/challenge', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.vane.xyz/api/auth/siwx/challenge"
response = requests.get(url)
print(response.text){
"nonce": "b3c1a9e2-4f6d-4a8b-9c2e-1d5f7a3b8c4d"
}Response
200 - application/json
Challenge nonce to sign.
SIWX challenge nonce.
Challenge nonce (UUID v4). A successful POST /auth/siwx/verify consumes it, and any later use returns 401 "Invalid or expired nonce.". A failed verify does not consume it. Sign a message containing the line Nonce: <nonce> with the wallet, and request a new nonce for every sign-in.

