How Phantom ships a secure, high-performance crypto wallet with Expo
Key Points
- Weekly production releases via EAS
- Platform team + full‑stack engineers model
- Expo Dev Client + EAS for fast, secure CI/CD
Summary
Phantom builds a high-performance, secure crypto wallet using Expo and React Native while shipping weekly. A small platform team maintains app foundations in a monorepo, and full‑stack product engineers across the company contribute features. Expo (Dev Client + EAS) provides a consistent developer workflow, fast CI/CD, and the ability to add custom native modules where needed.
Key Points
- Team & ownership: platform team handles foundations; product engineers ship features without deep native expertise.
- Tech stack: Expo SDK + React Native, TypeScript, React Query, Signalium, FlashList, and custom Expo modules.
- Dev workflow: Expo Dev Client gives custom native support with the same developer experience as Expo Go.
- CI/CD: EAS Build and EAS Submit power weekly production releases; dev-client builds distributed via Slack with QR codes.
- Testing & speed: Maestro for e2e; use EAS Update + Expo Fingerprint to avoid full rebuilds and cut test time (~15 min saved).
- Security & native: custom WebView patches, native modules for Solana Mobile Wallet Adapter, and careful module use to meet security constraints.
- Platform output: Phantom publishes a Wallet SDK so other apps can embed secure crypto functionality built on Expo.
- Practical advice: embrace Expo ecosystem and Modules API, keep the setup simple, and prioritize reproducible foundations so many engineers can contribute safely.