{
    "ucp": {
        "version": "2026-04-08",
        "payment_handlers": {
            "cash.u.detect": [
                {
                    "id": "detect",
                    "version": "2026-04-08",
                    "description": "On-chain pay-and-detect (any coin). Non-custodial."
                }
            ],
            "cash.u.redirect": [
                {
                    "id": "redirect",
                    "version": "2026-04-08",
                    "description": "Card via the seller own Stripe account. Non-custodial."
                }
            ]
        }
    },
    "_forward_compat_note": "UCP profile. On a merchant origin, catalog.lookup is served by /catalog.json (schema.org/Product, the merchant Shop), and the full REST surface is live: checkout sessions (/checkout-sessions, incl. multi-item mixed-currency carts), catalog REST (/catalog/search|lookup|product), and orders (/orders/{id}), settling non-custodially via cash.u.detect (buyer pays the seller wallet on-chain; we detect) and cash.u.redirect (card via the seller own Stripe). Responses are RFC 9421-signed (ES256) with this key, and AP2 mandates (dev.ucp.shopping.ap2_mandate) are verified merchant-side: checkout responses carry an ap2.merchant_authorization detached JWS + a per-session nonce, and a buyer checkout_mandate (SD-JWT-VC) is verified on complete incl. the key-binding JWT holder proof + open-mandate constraints. Remaining (future): mixed-currency carts, identity-linking, RFC 9421 inbound enforcement, per-attempt fresh nonces."
}