This gives you in-app subscriptions through Adapty: src/lib/payments.ts implements the shim on react-native-adapty (its active list holds access-level ids such as premium), a PaymentsProvider (order 70) activates the SDK once and listens on onLatestProfileLoad, and /paywall ships as a modal with your feature bullets, the placement's products with localized price and period, Buy, Restore, and Terms/Privacy links from readynative.config.ts urls. If you set up with --with-examples there's an example at /examples/paywall and a jest mock for the SDK. @/lib/payments keeps the same API whichever option you pick - pick Adapty when you want its no-code Paywall Builder and A/B tests on placements.
When to pick Adapty
Pick Adapty if the no-code Paywall Builder and A/B tests on placements are what you want to iterate on; it's the same store billing underneath.
At a glance
- Runs in Expo Go
- No - needs a development build
- Files added
- 8
- npm packages
- 2
- Keys to paste
EXPO_PUBLIC_ADAPTY_PUBLIC_KEY,EXPO_PUBLIC_ADAPTY_PLACEMENT_ID- Included in
- Pro
- Screens added
/paywall/- Tests included
- 1
Set it up
bun run setup --payments adaptySetup copies the module in, installs SDK-matched versions and removes the options you did not pick. Then bun run doctor lists every key still missing, with a link to where you get it. The step-by-step guide is in the Adapty docs.
Wiring it by hand instead? Read the guide: Best paywall tools for Expo in 2026.
Adapty vs other payments options
| Option | Expo Go | npm packages | Keys to paste | Included in |
|---|---|---|---|---|
| Adapty | Dev build | 2 | 2 | Pro |
| RevenueCat | Dev build | 2 | 2 | Pro |
| Stripe Checkout | Yes | 1 | 2 | Pro |
Questions
Can I use Adapty in Expo Go?
No. This module needs a development build: npx expo run:ios or npx expo run:android locally, or eas build --profile development in the cloud.
What do I need to set up Adapty in an Expo app?
Run bun run setup --payments adapty, then paste 2 keys into .env: EXPO_PUBLIC_ADAPTY_PUBLIC_KEY, EXPO_PUBLIC_ADAPTY_PLACEMENT_ID. bun run doctor lists any that are missing, with a link to where you get each one.
Does the ReadyNative free tier include Adapty?
No. Payments is a Pro category: the free tier and Starter ship it switched off. Pro is one payment with lifetime updates.
Can I build the app without Adapty?
Yes. Pick none for payments (bun run setup --payments none) - payments.useEntitlements() shim returns none.
Adapty or RevenueCat for Expo?
Pick Adapty if the no-code Paywall Builder and A/B tests on placements are what you want to iterate on; it's the same store billing underneath. Pick RevenueCat for the default path to store subscriptions - it handles StoreKit and Play Billing, and its remote paywalls can be edited without shipping an update.
Adapty or Stripe Checkout for Expo?
Pick Adapty if the no-code Paywall Builder and A/B tests on placements are what you want to iterate on; it's the same store billing underneath. Pick Stripe if you're selling to the web too, or if what you sell isn't digital goods that Apple and Google require in-app purchase for - it runs on hosted Checkout in the system browser, needs backend/api-routes, and is the one option that works in Expo Go.
What does Adapty mean for the App Store and Google Play privacy forms?
It collects: Purchase history; Profile id (anonymous by default); Device info. Shared with: Adapty (processor). Setup adds its data types to the iOS privacy manifest; the docs page lists the answers for Play's Data safety form.
Which Adapty version does it install?
For Expo SDK 57: expo-build-properties ~57.0.17, react-native-adapty ^4.1.0. Setup installs Expo packages with expo install, so they match the SDK.
Get it
Adapty ships in Pro: one payment, lifetime updates. See pricing or browse every module.