|
1 | 1 | --- |
2 | | -title: "WalletConnect Point of Sale (POS) SDK" |
3 | | -description: "Accept stablecoin payments at point-of-sale with a universal SDK for wallets, PSPs, and merchants." |
| 2 | +title: "WalletConnect Payments Standard" |
| 3 | +metatags: |
| 4 | + description: "Overview of WalletConnect Payments and the `wallet_pay` standard — a universal protocol that enables wallets and payment applications to exchange blockchain-based payment requests in a consistent, secure, and chain-agnostic way." |
4 | 5 | sidebarTitle: "Overview" |
5 | 6 | --- |
6 | 7 |
|
7 | | -The **WalletConnect POS SDK** extends the open WalletConnect protocol into the world of **in-person payments**, enabling seamless, stablecoin-native checkout experiences at physical points of sale. |
| 8 | +Digital payments across blockchains remain inconsistent. Each wallet, merchant, and provider implements its own integration model. This fragmentation slows innovation and limits interoperability. To address this, WalletConnect introduces the **`wallet_pay`** standard. A unified protocol for initiating and processing blockchain-based payments. |
8 | 9 |
|
9 | | -With the same universal interoperability that connects wallets and dapps, the POS SDK allows **Payment Service Providers (PSPs)** and **merchants** to accept stablecoin payments across multiple chains and wallets, no hardware changes or fragmented integrations required. |
| 10 | +## What is `wallet_pay` |
10 | 11 |
|
11 | | ---- |
12 | | - |
13 | | -## Overview |
14 | | - |
15 | | -The **WalletConnect POS SDK** brings the simplicity of “tap-to-pay” to crypto. Using a QR-based flow, any wallet connected through WalletConnect can make real-world payments in seconds. |
16 | | - |
17 | | -- **Merchant:** Selects “Crypto Payment” → POS generates a payment QR |
18 | | -- **Customer:** Scans with their wallet → confirms transaction |
19 | | -- **POS:** Receives instant onchain confirmation and marks payment complete |
20 | | - |
21 | | -This SDK bridges online crypto rails with in-person commerce, making **stablecoin payments** as frictionless as any traditional payment method. |
22 | | - |
23 | | -## Quickstart |
24 | | - |
25 | | -<CardGroup cols={2}> |
26 | | - <Card title="Flutter" icon="flutter" href="/payments/flutter/installation"> |
27 | | - Get started with WalletConnect POS SDK in Flutter. |
28 | | - </Card> |
29 | | -</CardGroup> |
30 | | -## Why WalletConnect POS SDK? |
| 12 | +`wallet_pay` is the open standard that defines how wallets and payment applications communicate to initiate and process blockchain-based payments. |
| 13 | +It provides a consistent way to describe payment requests: who is paying, what asset is being transferred, and under what conditions; regardless of wallet, blockchain, or application context. |
31 | 14 |
|
32 | | -Stablecoins have become the dominant onchain payment medium with **$4T+ monthly transaction volume**, yet real-world checkout remains fragmented: |
| 15 | +At its core, `wallet_pay` enables **interoperable, wallet-native payments** across the entire WalletConnect ecosystem and beyond. |
33 | 16 |
|
34 | | -- Merchants must integrate multiple wallets or blockchains individually |
35 | | -- PSPs lack visibility into transaction states and reconciliation |
36 | | -- Customers face confusing UX with manual address entry and gas settings |
| 17 | +## Why a Standard Matters |
37 | 18 |
|
38 | | -As providers like **Visa**, **PayPal**, and **Stripe** experiment with stablecoin settlements, the next step is **real-world adoption**, where crypto payments feel native at the register. |
| 19 | +Payment interactions between wallets and merchants have often been **fragmented**, each relying on custom APIs, message formats, or user flows. |
39 | 20 |
|
40 | | -**WalletConnect POS SDK turns that vision into reality**. |
| 21 | +This lack of alignment makes it difficult for wallets, service providers, and merchants to work together at scale. |
41 | 22 |
|
42 | | -## What does WalletConnect POS SDK have to offer? |
| 23 | +`wallet_pay` introduces a **shared language** for payments, allowing: |
43 | 24 |
|
44 | | -<Steps> |
45 | | - <Step title="Universal Rail" icon="globe"> |
46 | | - A single SDK for PSPs and merchants to **accept stablecoin payments across any WalletConnect-compatible wallet and supported network**. No separate wallet integrations or new hardware required. |
47 | | - </Step> |
48 | | - <Step title="Seamless Checkout UX" icon="qrcode"> |
49 | | - Customers simply scan, confirm, and pay. Payments settle onchain in seconds with a **familiar checkout experience** similar to Apple Pay or tap-to-pay. |
50 | | - </Step> |
51 | | - <Step title="Multi-Chain with Full Visibility" icon="ethernet"> |
52 | | - Supports **EVM, Solana, and Tron** from day one. Provides standardized transaction statuses for reconciliation and customer support: |
53 | | - |
54 | | - `[new, pending_onchain, confirmed, underpaid, overpaid, expired, failed]`. |
55 | | - </Step> |
56 | | -</Steps> |
| 25 | +- **Wallets** to interpret any standardized payment request without bespoke integration. |
| 26 | +- **Merchants and service providers** to issue payment requests compatible with any wallet that supports the standard. |
| 27 | +- **Ecosystem scalability** for new payment contexts (online checkout, recurring payments, point-of-sale, etc.) can all use the same foundation. |
57 | 28 |
|
58 | | -## How does it work? |
| 29 | +In short, `wallet_pay` abstracts *how* payment information is exchanged, so innovation can focus on *what* experiences are built on top. |
59 | 30 |
|
60 | | - <video |
61 | | - controls |
62 | | - className="w-full" |
63 | | - autoPlay |
64 | | - src="/images/videos/pos-demo.mp4" |
65 | | - ></video> |
| 31 | +## Who Should Use `wallet_pay` |
66 | 32 |
|
67 | | -### Merchant - Point of Sale (POS) |
68 | | -1. Selects **Crypto** as payment method. |
69 | | -2. Chooses **token** (e.g., USDC, USDT). |
70 | | -3. Chooses **network** (e.g., Base, Polygon, Ethereum). |
71 | | -4. POS **generates QR** with payment details (amount, token, network, destination). |
| 33 | +| Stakeholder | How They Benefit | |
| 34 | +|--------------|------------------| |
| 35 | +| **Wallet developers** | Implement a unified payments interface that works across merchants and ecosystems. | |
| 36 | +| **Payment Service Providers (PSPs)** | Use the standard as a bridge between wallets, merchants, and on-chain settlement logic. | |
| 37 | +| **Merchants & Platforms** | Integrate once and accept payments from any `wallet_pay`-compatible wallet. | |
| 38 | +| **Consumer Apps for Payments (POS, web checkout, invoices, subscriptions)** | Build new payment experiences using a common protocol. | |
72 | 39 |
|
73 | | -### Customer (Wallet) |
74 | | -1. **Scans the QR** using a WalletConnect-compatible wallet. |
75 | | -2. Wallet displays **payment preview**. |
76 | | -3. Customer **confirms** the transaction. |
77 | | -4. Transaction broadcasts onchain. |
| 40 | +<Note> |
| 41 | + While CAIP-358 primarily defines wallet-to-merchant interaction, it is extensible to PSPs that relay or implement those interactions. |
| 42 | +</Note> |
78 | 43 |
|
79 | | -### Completion |
80 | | -- POS receives confirmation and displays success/receipt |
81 | | -- Transaction hash available for tracking and reconciliation |
| 44 | +## Role in the WalletConnect Payments Ecosystem |
82 | 45 |
|
83 | | -**This flow can also be simplified to a one-step scan for pre-filled requests.** This is coming soon and more information will be available shortly. |
| 46 | +Within WalletConnect, `wallet_pay` serves as the **foundational protocol** that powers all payment-related features. |
84 | 47 |
|
85 | | -## Who is it for? |
| 48 | +Every SDK or product, such as the **POS SDK**, implements or extends `wallet_pay` to handle request creation, signing, and transaction tracking in a consistent way. |
86 | 49 |
|
87 | | -### Payment Service Providers & POS Integrators |
88 | | - |
89 | | -**DTC Pay**, Square-like or Ingenico-style providers are examples of PSPs that can use the POS SDK to accept stablecoin payments. |
90 | | - |
91 | | -- Reduce cost and complexity of integrating stablecoin payments |
92 | | -- Gain transaction lifecycle visibility for **refunds and reconciliation** |
93 | | -- Stay competitive as stablecoin adoption enters mainstream retail |
94 | | - |
95 | | -<Warning> |
96 | | -WalletConnect POS SDK does not handle refunds or reconciliation directly. It is the responsibility of the PSP to handle these. However, the SDK provides the necessary standardized callbacks to allow the PSP to handle the refund and reconciliation process. |
97 | | -</Warning> |
98 | | - |
99 | | -### Merchants |
100 | | -- Accept stablecoins from any wallet with no new hardware |
101 | | -- Offer customers a **fast, modern checkout** experience |
102 | | -- Maintain compliance and reporting via PSP dashboards |
103 | | - |
104 | | ---- |
| 50 | +This means that any wallet or merchant integrating `wallet_pay` is automatically compatible with the full WalletConnect Payments ecosystem, present and future. |
105 | 51 |
|
106 | | -## Supported Environments |
| 52 | +## Specification Reference |
107 | 53 |
|
108 | | -| Category | Support | |
109 | | -|-----------|----------| |
110 | | -| **POS SDKs** | Flutter, Kotlin, JavaScript | |
111 | | -| **Assets** | Stablecoins (e.g., USDC, USDT) | |
112 | | -| **Networks at Launch** | EVM chains (Ethereum, Optimism, Base, etc.), Solana, Tron | |
113 | | -| **Wallet Coverage** | 500+ WalletConnect-compatible wallets | |
114 | | -| **Transaction Lifecycle** | Standardized callbacks -> `PaymentSuccessfulEvent`, `PaymentFailedEvent` | |
| 54 | +The `wallet_pay` standard is defined in [CAIP-358: Universal Payment Request Method](https://eip.tools/caip/358). It specifies how payment requests are structured and exchanged between merchants and wallets. Lifecycle management and status tracking (e.g., pending, confirmed, failed) are implementation details defined by [WalletConnect’s POS SDK](/payments/point-of-sale). |
0 commit comments