I'm building ChainPay, a stablecoin checkout for WooCommerce, SaaS products, Telegram sellers, and agent workflows.

The wallet UI is only one part of the problem. The part I keep coming back to is payment state: webhook retries, late payments, partial payments, duplicated events, and what happens when the customer closes the checkout tab.

Here is the checklist I am using right now:

exact payment within the expiry window

payment after expiry