What happens if the user doesn't have the Coinbase app installed?
What happens if the user doesn't have the Coinbase app installed?
canOpenCoinbaseOnramp() before showing your buy button (see Detect the Coinbase app). If it isn’t installed, fall back to Coinbase-hosted Onramp so the user can still complete a purchase.Does the user need an existing Coinbase account?
Does the user need an existing Coinbase account?
If the user has an old version of the Coinbase app installed, are they supported?
If the user has an old version of the Coinbase app installed, are they supported?
What payment methods and countries does App2App support?
What payment methods and countries does App2App support?
paymentMethod and paymentCurrency on the purchase challenge are prefill hints, not restrictions. For a quick lookup by region, see the Onramp Asset Availability tool or query Buy Config / Buy Options directly.What do paymentMethod, paymentCurrency, country, and subdivision actually do?
What do paymentMethod, paymentCurrency, country, and subdivision actually do?
paymentMethod and paymentCurrency prefill the Coinbase app’s funding-source selection; if you omit them, Coinbase lets the signed-in user pick from their own available sources instead. country and subdivision are accepted on the request but aren’t currently used for anything: they’re not validated, not forwarded to the Coinbase app, and don’t gate eligibility. Actual eligibility, payment methods, and limits are always determined from the signed-in user’s own Coinbase account after handoff, not from anything you send on the challenge.What's the difference between paymentAmount and purchaseAmount?
What's the difference between paymentAmount and purchaseAmount?
paymentAmount is how much fiat the user spends (for example, "25.00" to spend $25). purchaseAmount is how much crypto the user receives (for example, "0.01" to receive 0.01 ETH). Send exactly one; Coinbase computes the other side of the trade at purchase time.Can I reuse a session URL?
Can I reuse a session URL?
Is Android supported?
Is Android supported?
Why does @coinbase/cdp-app-attest throw or fail silently in Expo Go?
Why does @coinbase/cdp-app-attest throw or fail silently in Expo Go?
expo run:ios, expo prebuild, or EAS Build) instead. See Prerequisites in setup.Is there a Flutter or React Native SDK for App2App?
Is there a Flutter or React Native SDK for App2App?
@coinbase/cdp-app-attest handles the on-device App Attest ceremony directly and works from React Native or native iOS. @coinbase/cdp-react-native adds canOpenCoinbaseOnramp() for detection and handleOnrampReturn() for the redirect. Neither one wraps the full challenge/session exchange end to end: that function (openCoinbaseOnramp()) exists but doesn’t support the CDP API key your backend now needs to mint challenges, so it isn’t part of the setup guide. See setup for the client + backend pattern to build instead, or onramp-v2-mobile-demo for a full reference implementation. Flutter isn’t supported yet.How do I confirm a purchase actually settled?
How do I confirm a purchase actually settled?
onramp.transaction.success, the primary way to know a purchase settled. You can also query the transactions API directly if you’d rather pull. Either way, don’t rely on the redirect alone: it’s for updating your UI, not for confirming that funds moved.Do sandbox purchases generate a webhook or show up in the transactions API?
Do sandbox purchases generate a webhook or show up in the transactions API?
transactionId) is the only confirmation signal you get in sandbox. See Sandbox testing.Do I need a CDP API key for App2App?
Do I need a CDP API key for App2App?
Why did my purchase assertion fail after working before?
Why did my purchase assertion fail after working before?
clearOnrampAttestation(), register a new key (Register each device), and retry the purchase once. See the self-heal pattern in setup for the retry logic to wrap this in.