Skip to main content
Using an AI coding agent? The dflow-proof-kyc skill teaches Claude Code to build a Proof integration end-to-end. See Agent Skills.
This page describes how partner applications can integrate with Proof to verify users. Partners can redirect users to Proof for verification and query the Proof API to check verification status.

Integration Overview

Deep Linking

Partners can redirect users to Proof with pre-populated data to streamline the verification flow. When the user completes verification, they are redirected back to your application.
Redirect URIs must use https: or chrome-extension: schemes. Custom URL schemes (e.g. myapp://) are not supported and the redirect will not fire. Native mobile apps should use universal links (iOS) or app links (Android), which use https: URLs that deep link into your app.
Build the deep link URL with query parameters:

Generating the Signature

The user must sign a message proving wallet ownership. The message format is:
Where {timestamp} is the Unix timestamp in milliseconds (13 digits).

Handling the Return

When the user completes verification (or cancels), they are redirected to your redirect_uri. Query the verification API to confirm their status. When verification succeeds, Proof also sends an “Identity Verification Complete” email to the user.

Verification API

The verification API lets you check if a wallet address is linked to a verified identity. This is a public endpoint that does not require authentication.

Endpoint

Parameters

Response

Example: Checking Verification Status

Example: Gating Features

Integration Flow

Here’s a complete integration flow combining deep linking and the verification API:

Best Practices

Cache Verification Status

Verification status is stable once a user is verified. Consider caching the result to reduce API calls:

Showing Order Quotes to Unverified Users

To show order quotes to unverified users, omit userPublicKey from /order requests.

Handle Edge Cases

  • Signature expiration: Generate fresh signatures close to redirect time
  • User cancellation: Handle cases where users return without completing verification
  • Network errors: Implement retry logic for API calls

Security Considerations

  • Always verify wallet ownership server-side when performing sensitive actions
  • Do not trust client-side verification status alone for security-critical operations
  • Use HTTPS for all API calls and redirects

API Reference

For complete API documentation, see the Proof API Reference: