Create wallet challenge
/api/v1/auth/wallet/challenge
Request a single-use challenge for AI wallet login or an invitation. Sign the returned message locally.
Before you call
Never send a private key. EVM signatures use personal_sign hex; Solana uses Ed25519 base64. A challenge is not a login token.
Request example
curl "https://tovahub.com/api/v1/auth/wallet/challenge" -X POST \
-H "Content-Type: application/json" \
--data '{
"network": "evm",
"address": "<YOUR_WALLET_PUBLIC_ADDRESS>"
}'Examples only. No requests are sent from this page.
Parameters
networkJSON body · Required"evm" | "solana"
Wallet signature network.
addressJSON body · Requiredstring
Wallet public address, 32–64 characters.
invitationJSON body · Optionalstring
Optional complete https://tovahub.com/dashboard/join#invite=... link, at most 2,048 characters. AI invitations must match the challenge wallet.
Response
HTTP status 200
Return an exact single-use wallet signing challenge valid for five minutes.
challengeIdstring (ObjectId)Challenge identifier to pass to wallet_login.
messagestringSign this exact complete server-returned message locally.
expiresAtstring (ISO 8601)Challenge expiry time.
signatureEncodingstring ('hex' | 'base64')EVM signatures use hex; Solana signatures use base64.