Integration Options
Integrate using the Wallet SDK (Recommended)
If your wallet already uses the WalletConnect Wallet SDK (WalletKit), WalletConnect Pay is automatically available when you initialize WalletKit. This is the recommended approach as it provides a unified API and automatic configuration.Kotlin
WalletKit integration for Android wallets.
Swift
WalletKit integration for iOS wallets.
React Native
WalletKit integration for React Native wallets.
Flutter
WalletKit integration for Flutter wallets.
Standalone Integration
For wallets that don’t currently use the WalletConnect Wallet SDK, you can integrate the standalone Pay SDK directly. This approach requires configuring the SDK with your WalletConnect Project ID.Kotlin
Standalone Pay SDK for Android wallets.
Swift
Standalone Pay SDK for iOS wallets.
React Native
Standalone Pay SDK for React Native wallets.
Flutter
Standalone Pay SDK for Flutter wallets.
API-First Integration
For wallets that prefer direct API integration without using an SDK, you can use the Gateway API directly.Getting Started
To get started with WalletConnect Pay integration:- Get a Project ID: Create a project at the WalletConnect Dashboard to obtain your Project ID.
- Choose your integration approach: Select either the WalletKit integration (if you already use WalletKit) or the standalone Pay SDK integration.
- Follow the platform-specific guide: Use the documentation for your platform to implement the payment flow.
Payment Flow Overview
Regardless of which integration approach you choose, the payment flow follows the same pattern:- Detect Payment Link: Identify when a user scans or opens a WalletConnect Pay link
- Get Payment Options: Fetch available payment options based on user’s accounts
- Get Required Actions: Retrieve the signing actions for the selected payment option
- Sign Actions: Sign the required permits/transactions using your wallet’s signing infrastructure
- Collect User Data (if required): Display a WebView for the user to provide any required compliance information
- Confirm Payment: Submit signatures and complete the payment
Supported Networks
WalletConnect Pay currently supports USDC payments on the following networks:| Network | Chain ID |
|---|---|
| Ethereum | 1 |
| Base | 8453 |
| Optimism | 10 |
| Polygon | 137 |
| Arbitrum | 42161 |
Support for all EVM chains, Solana, and additional native and non-native assets is coming soon.
User Information FAQs
Does the user need to enter their information for every transaction?
Does the user need to enter their information for every transaction?
No. The process is optimised so users don’t have to re-enter information for each transaction. Once collected, the information will be reused.
What if my wallet already has the required data?
What if my wallet already has the required data?
Wallets that already have verified user PII (e.g. a neobank, a card issuing wallet) can prefill the WebView form by appending a
?prefill=<base64-json> query parameter to the WebView URL. The required list from the collectDataAction.schema tells you which fields the form expects (e.g., fullName, dateOfBirth, pobAddress). The user will still see the form but with pre-populated fields, reducing friction.How does this work technically?
How does this work technically?
When processing a payment:
- Check if
response.collectDatais present and has aurlfield - If present, display the URL in a WebView — the hosted form handles rendering, validation, and T&C acceptance
- The WebView communicates completion via JavaScript bridge messages (
IC_COMPLETE/IC_ERROR) - When the WebView completes, proceed to confirm the payment — no
collectedDataneeds to be passed since the WebView submits data directly
Why is user information required?
Why is user information required?
WalletConnect Pay complies with Travel Rule regulations to ensure the payment flow is scalable and future-proof across all regions. This requires capturing some user information like name and date of birth.
What are the requirements before submitting user information?
What are the requirements before submitting user information?
The WebView-based data collection form handles Terms & Conditions and Privacy Policy acceptance as part of the form flow. The user must accept these before the form can be submitted.
What is the WebView data collection approach?
What is the WebView data collection approach?
SDKs now support a WebView-based approach for collecting user information. When
collectData.url is present in the payment options response, wallets display this URL in a WebView instead of building native forms. The hosted form handles:- Form rendering and field validation
- Terms & Conditions and Privacy Policy acceptance
- Data submission directly to the backend
IC_COMPLETE when done, IC_ERROR on failure). See the platform-specific documentation for implementation details.We strongly recommend using the WebView-based flow over building custom native UI. Data collection requirements are driven by regulation and can evolve. The hosted WebView form is maintained and updated centrally so that wallets can automatically pick up changes.Can wallets implement custom UI instead of the WebView form?
Can wallets implement custom UI instead of the WebView form?
Yes, with a caveat.Wallets that choose to implement custom UI assume responsibility for keeping their forms in sync with these changes. When changes are rolled out, wallets must implement them immediately. If the provided data is not what is requested, users in the relevant jurisdiction(s) will be unable to pay until the custom integration is updated. The WebView approach eliminates this overhead and ensures a consistent, up-to-date experience with minimal integration effort.Wallets also must ensure the user has accepted:The required user information can be sent to WalletConnect using schema in the
collect_data object.We strongly recommend using the WebView-based flow over building custom native UI. Data collection requirements are driven by regulation and can evolve. The hosted WebView form is maintained and updated centrally so that wallets can automatically pick up changes.Can wallets pre-fill customer information?
Can wallets pre-fill customer information?
Yes.Wallets can pre-fill user information and it will be shown in the WebView form.If wallets choose to skip the WebView form, they must ensure the user has accepted: