Skip to documentation
DocumentationAPI referenceCreate wallet challenge
POSTNo authentication

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
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 · Required

string

Wallet public address, 32–64 characters.

invitationJSON body · Optional

string

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.

messagestring

Sign this exact complete server-returned message locally.

expiresAtstring (ISO 8601)

Challenge expiry time.

signatureEncodingstring ('hex' | 'base64')

EVM signatures use hex; Solana signatures use base64.