Deep links & auth
Preserve the buy destination across app, web, and login.
Canonical URL
Every session has https://bruce.money/checkout/{sessionId}. Prefer HTTPS over bruce:// so missing-app installs fall through to web.
Universal Links / App Links
/checkout/* is claimed by the Bruce iOS/Android apps. Tapping Buy with Bruce on mobile opens the native escrow fund flow when Universal Links work; otherwise the same URL stays on bruce.money.
Not logged in
Unauthenticated buyers see a preview and are sent to /login?next=/checkout/{id}. After Privy auth and setup, they return to the same session and can fund escrow. The session lives on the server — login cannot lose the cart if the id is preserved.
Return to merchant
Optional redirectUrl is used after successful fund (when safe HTTPS). Merchants should still rely on webhooks for truth.