Summary
SEP-0007 payment URIs embed an exchange rate that is only cryptographically valid for a narrow window (e.g., 5 minutes). Currently, the QR code remains on screen indefinitely, leading customers to scan expired codes and triggering confusing payment failures on the backend.
We must implement a highly visible, real-time expiration visualizer. This involves a shrinking progress bar anchored below the QR code. Once the TTL (Time To Live) expires, the QR code must be aggressively hidden and replaced with an overlay prompting the merchant to 'Tap to Refresh Rate'. The StalenessIndicator component must also be refactored to eliminate hydration mismatch errors.
Acceptance Criteria
Tech Stack
Next.js 14, React, Tailwind CSS.
Summary
SEP-0007 payment URIs embed an exchange rate that is only cryptographically valid for a narrow window (e.g., 5 minutes). Currently, the QR code remains on screen indefinitely, leading customers to scan expired codes and triggering confusing payment failures on the backend.
We must implement a highly visible, real-time expiration visualizer. This involves a shrinking progress bar anchored below the QR code. Once the TTL (Time To Live) expires, the QR code must be aggressively hidden and replaced with an overlay prompting the merchant to 'Tap to Refresh Rate'. The
StalenessIndicatorcomponent must also be refactored to eliminate hydration mismatch errors.Acceptance Criteria
Date.now()calculations.Tech Stack
Next.js 14, React, Tailwind CSS.