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"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_wallet",
"message": "Wallet challenge failed"
}
KYC
Wallet challenge
Request a signable message to prove wallet ownership before KYC prepare-wallet.
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"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_wallet",
"message": "Wallet challenge failed"
}
string
required
Your StarkFi API key.
string
required
Payer wallet address (EVM or Solana). The server normalizes the format.
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"
}
}
{
"statusCode": 400,
"success": false,
"status": "invalid_wallet",
"message": "Wallet challenge failed"
}
message returned, then call Prepare KYC (wallet) with signed_bytes..png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)