Skip to main content
POST
/
security
/
wallet
/
challenge
curl --request POST \
  --url https://api.starkfi.io/security/wallet/challenge \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api_key>' \
  --data '{
    "wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
    "purpose": "kyc"
  }'
{
  "statusCode": 201,
  "success": true,
  "status": "challenge_created",
  "message": "Sign this message with your wallet",
  "data": {
    "message": "StarkFi KYC verification\nWallet: FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm\n...",
    "wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
    "wallet_chain": "solana"
  }
}
x-api-key
string
required
Your StarkFi API key.
wallet
string
required
Payer wallet address (EVM or Solana). The server normalizes the format.
purpose
string
Challenge purpose. Use kyc for the KYC wallet flow (default).
curl --request POST \
  --url https://api.starkfi.io/security/wallet/challenge \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api_key>' \
  --data '{
    "wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
    "purpose": "kyc"
  }'
{
  "statusCode": 201,
  "success": true,
  "status": "challenge_created",
  "message": "Sign this message with your wallet",
  "data": {
    "message": "StarkFi KYC verification\nWallet: FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm\n...",
    "wallet": "FmTGYpzX27fDqaiytXUdFVaphC5o68G61Q3uhVM2d8bm",
    "wallet_chain": "solana"
  }
}
Challenges expire after 10 minutes. Sign the exact message returned, then call Prepare KYC (wallet) with signed_bytes.