Full Client
createX402r() returns a client with all action groups. No type restrictions.
Role Presets
Role presets callcreateX402r() internally and narrow the TypeScript types so autocomplete only shows relevant methods. All three require walletClient.
Config Reference
| Field | Type | Required | Notes |
|---|---|---|---|
publicClient | PublicClient | Yes | viem public client for reads |
walletClient | WalletClient | No | Required for writes. Role presets throw without it. |
operatorAddress | Address | Yes | Your deployed PaymentOperator |
chainId | number | No | Auto-detected from publicClient.chain |
escrowPeriodAddress | Address | No | Activates escrow group |
refundRequestAddress | Address | No | Activates refund group |
refundRequestEvidenceAddress | Address | No | Activates evidence group (requires refundRequestAddress) |
freezeAddress | Address | No | Activates freeze group |
paymentIndexRecorderAddress | Address | No | Activates query group |
paymentStore | PaymentStore | No | Pluggable storage for payment lookups |
eventFromBlock | bigint | No | Starting block for event-based payment lookups |
Action Groups
| Group | Methods | Requirement |
|---|---|---|
payment | 9 | Always available |
operator | 8 | Always available |
watch | 4 | Always available |
escrow | 3 | escrowPeriodAddress |
refund | 15 | refundRequestAddress |
evidence | 4 | refundRequestEvidenceAddress |
freeze | 3 | freezeAddress |
query | 3 | paymentIndexRecorderAddress |
undefined on the client. Use optional chaining:
Extend
Add custom action groups with.extend():
Next Steps
Merchant Guide
Accept payments and release funds.
Deploy Operator
Get the addresses for your client config.
Smart Contracts
Conditions and recorders that control on-chain access.
