POST
/
auth
/
nonce
GET /auth/nonce
curl --request POST \
  --url https://api.example.com/auth/nonce \
  --header 'Content-Type: application/json' \
  --data '
{
  "wallet_address": "<string>",
  "domain": "<string>"
}
'
{
  "nonce": "<string>",
  "message": "<string>",
  "expires_at": "<string>"
}

Overview

Request a nonce (challenge) that must be signed by your Solana wallet to prove ownership.

Request

curl -X POST https://api.agentik.dev/api/auth/nonce \
  -H "Content-Type: application/json" \
  -d '{
    "wallet_address": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
    "domain": "agentikvault.com"
  }'

Body Parameters

wallet_address
string
required
Solana wallet public key (base58-encoded)
domain
string
required
Domain requesting authentication (prevents signature replay across domains)

Response

{
  "nonce": "abc123def456",
  "message": "Sign this message to authenticate with Agentik Vault\nNonce: abc123def456\nDomain: agentikvault.com",
  "expires_at": "2026-02-12T10:35:00Z"
}
nonce
string
Single-use challenge nonce (expires in 5 minutes)
message
string
Formatted message to sign with wallet
expires_at
string
ISO 8601 timestamp when nonce expires

Next Step

Sign the message with your wallet and submit to /auth/login:

Verify Signature

Complete authentication by verifying your wallet signature