Skip to main content
Buying prediction market outcome tokens requires Proof verification to meet Kalshi compliance requirements. This page covers how verification affects API behavior and how to build around it.
Spot trading does not require Proof.

Which Wallet Needs to Be Verified

The wallet receiving the outcome tokens must be verified:
  • If destinationWallet is specified, that wallet needs to be verified.
  • If destinationWallet is unspecified, userPublicKey needs to be verified, since the user’s wallet is the default destination.
  • The fee payer does not need to be verified.

What Happens Without Verification

If the receiving wallet is not verified through Proof, the /order endpoint returns an error instead of a transaction when buying outcome tokens. Unverified wallets can still sell.

Showing Quotes to Unverified Users

To let unverified users preview pricing before completing KYC, omit userPublicKey from the /order request. The API returns the quote without requiring verification. This lets you build UX where users can browse markets and see prices, then get prompted to verify only when they attempt to execute a trade.

Checking Verification Status

Use the /verify endpoint to check whether a wallet is verified. Cache the response on your backend with a short TTL rather than calling /verify alongside every /order request. See Partner Integration for the full integration flow, including deep linking, signature generation, and code examples.

Geoblocking

KYC alone is not sufficient. Prediction markets are not permitted in all jurisdictions, so your application must also implement geoblocking to restrict access where local regulations apply. See Prediction Market Compliance for details.