Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.proof.community/llms.txt

Use this file to discover all available pages before exploring further.

Use this checklist to confirm your integration is complete and production-ready.

Onboarding

Provided company name, registered origins, partner type, allowed crypto currencies, and (if applicable) initial wallet addresses to the Proof team
Received partner_id, client_token, widget_id, and base URL from the Proof team
Confirmed whether off-ramp (sell) is enabled for your partner record

Access control

Every server-side caller uses Authorization: Bearer <client_token>
Every browser-side caller sends a registered Origin header
You understand that there is no partner-IP allowlist — any IP gating is your responsibility

Core integration

POST /widget/session is called with partner_user_id, user_email, network, currency, amount, and (if needed) type
Widget script (https://widget.proof.community/widget.2.0.js) loaded
proofWidget.run() called with every parameter from the session response, passed verbatim
At least one server-observable status channel implemented: polling, WebSocket, or webhook
Polling or WebSocket stops on terminal statuses (completed, failed, cancelled)

Currency and wallet coverage

Confirmed with Proof that every (currency, network) pair your users will request is enabled for your integration
Tested a session for each supported (currency, network) and received an address in the response

Error handling

Surface wallet_not_supported and currency_not_allowed to your operator dashboard — these usually mean Proof needs to enable something for your integration
Retry 502 upstream_error with a small exponential backoff
Treat 403 forbidden_origin as a configuration bug, not a runtime error

Identity verification

Tested a first-time user flow (document upload + liveness check) end to end
Tested a returning verified user — confirmed the verification step is skipped

Payments

Tested on-ramp (buy) end to end and observed a completed status
Tested a failure path and observed a failed status
Tested off-ramp (sell) end to end, if enabled

Webhook (if webhook_url configured)

Your endpoint responds 2xx quickly and processes asynchronously
Your handler is idempotent on merchant_transaction_id — Proof may redeliver

Mobile

iOS: NSCameraUsageDescription set in Info.plist
iOS: allowsInlineMediaPlayback enabled in WKWebView config
iOS: verification camera tested
iOS: Apple Pay tested in Safari / WKWebView
Android: widget opened via Chrome Custom Tabs
Android: verification camera tested
Android: Google Pay tested in Chrome Custom Tabs

Go live

Confirmed go-live readiness with Proof team
Completed first live transaction with Proof team monitoring