Skip to main content
POST
Use this path when your users connect a wallet instead of verifying by email OTP. The wallet must sign the challenge from Wallet challenge.
string
required
Your StarkFi API key.
string
required
Wallet address that signed the challenge.
string
required
Exact challenge message returned by POST /security/wallet/challenge.
string
required
Signature bytes (base58 for Solana, hex for EVM) proving ownership of wallet.
string
Optional email to link to the wallet. If provided, it must not already belong to a different wallet.

Signing the challenge message

After you receive data.message from Wallet challenge, sign that exact string with the user’s wallet. Send the result as signed_bytes in this request (hex for EVM, base58 for Solana).
In the browser, use your wallet adapter’s signMessage (EVM: personal_sign via ethers or the provider; Solana: sign the UTF-8 bytes and base58-encode the signature). With a provider like Privy, you can sign without exposing private keys in your app.
After a successful prepare, call Create KYC session with wallet instead of email.