ClaudeExpoNov 11, 2025, 3:00 PM

How Phantom ships a secure, high-performance crypto wallet with Expo

A condensed section focused on the key takeaways first.

Original Post

Quick Digest

Summary

A condensed section focused on the key takeaways first.

claudeenmodel: claude-sonnet-4-20250514

Phantom Crypto Wallet: Building Secure, High-Performance Mobile Apps with Expo

Key Points

  • Weekly mobile releases with no dedicated mobile team
  • 15-minute test optimization using EAS Update
  • Full-stack engineers contributing to mobile via Expo

Summary

Phantom, one of the world's most popular crypto wallets, demonstrates how to build and ship a secure, high-performance mobile app using Expo without a dedicated mobile team. Their approach enables full-stack engineers across the company to contribute to mobile development while maintaining weekly release cycles.

Key Points

  • Team Structure: No dedicated mobile team - platform team maintains foundations while product engineers contribute features
  • Tech Stack: React Native + Expo SDK, React Query, TypeScript, FlashList, and custom Expo modules
  • Release Pipeline: Weekly releases using EAS Build and EAS Submit with GitHub Actions integration
  • Testing Optimization: Uses EAS Update and Expo Fingerprint to reduce e2e test runs from 60 to 45 minutes
  • Developer Tooling: Built wallet SDK enabling other developers to integrate crypto into Expo/React Native apps
  • Security: Custom WebView patches and native modules for Solana Mobile Wallet Adapter while maintaining Expo benefits

Architecture Benefits

  • Enables engineers without React Native background to contribute to mobile
  • Maintains cross-platform consistency in monorepo structure
  • Supports custom native code when needed via Expo Dev Client
  • Scales to millions of users with lean engineering team

Full Translation

Translations

A translation section that keeps the flow of the original article.

claudejamodel: claude-sonnet-4-20250514

PhantomがExpoで安全で高性能な暗号通貨ウォレットを提供する方法

PhantomがExpoで安全で高性能な暗号通貨ウォレットを提供する方法

Users • React Native • November 11, 2025 • 7分で読める

Dan Kelly Marketing

Phantomは、Expoを使用して世界トップクラスの暗号通貨ウォレットの1つを構築し、毎週リリースを行い、セキュリティを維持し、すべてのエンジニアがモバイル開発に貢献できるよう支援しています。

Phantomは世界で最も人気のある暗号通貨ウォレットの1つです。美しくデザインされた高性能なアプリの背後には、大規模なモバイルエンジニアチームが必要だと思われるかもしれません。しかし、Phantomは異なるアプローチを取っています。大きな専任モバイルチームに依存する代わりに、Phantomには基盤を維持するプラットフォームチームと、モバイル体験に直接貢献する多くのプロダクトチームがあります。

Expoがこのモデルを可能にしています。そのアーキテクチャとエコシステムにより、Phantomはアプリを高速、安全、一貫性を保ちながら、会社全体のプロダクトエンジニアがiOSとAndroidの両方で自信を持って構築できるよう支援しています。

このケーススタディでは、Phantomがエンジニアリングチームをどのように構成し、EASを使用してCI/CDを強化し、他のチームが暗号通貨の未来を構築できるよう支援し、なぜExpoがほぼすべての主要な暗号通貨ウォレットのデフォルトスタックになったのかを探ります。

フルスタックプロダクトエンジニアによって構築されたモバイルアプリ

PhantomはReact NativeとExpoを使用してモノレポで構築されています。モバイルアプリはブラウザ拡張機能などの他のプロダクトと並んで存在し、ビジネスロジックとUIの大部分を他のプラットフォームと共有しています。

Phantomには専任のモバイルチームはありません。代わりに、モバイルアプリの基盤はPhantomのプラットフォームチームの経験豊富なReact Nativeエンジニア数名によって維持されています。モバイルアプリの機能は、会社全体のフルスタックプロダクトエンジニアによって構築されています。

Phantomは会社として非常に水平的でオープンです。つまり、エンジニアは自分の中核的な責任に加えて、影響を与え価値を追加できると思う場所であればどこでも貢献することが奨励されています。

「React Nativeの経験を持つエンジニアはそれほど多くありませんが、Phantomのほぼすべてのエンジニアがモバイルアプリに貢献できています。これは私たちが構築した基盤とExpoの力の証です。」 — Jakub Adamczyk、Phantomソフトウェアエンジニア

Phantomのスタックには以下が含まれます:

  • Expo SDK
  • React Query、TypeScript、Signalium(彼らのオープンソースシグナルベース状態管理ライブラリ)
  • 高性能リスト用のFlashList
  • Secure StoreからWebBrowserまでのExpoモジュール、カスタムメイドモジュールとプラグイン
  • Expo dev clientセットアップ

Expo Dev Clientにより、チームはExpo Goを超えて、カスタムネイティブモジュールを有効にしながら、エンジニア間で同じシンプルで一貫した開発ワークフローを維持できるようになりました。

EASによって支えられた週次リリース

Phantomは、コアリリースワークフローにEAS BuildとEAS Submitを使用しています:

  • エンジニアがPRを開き、GitHub ActionsからEAS Buildをトリガー
  • Dev clientビルドは週次ベースで構築され、簡単なインストール用のリンクとQRコードと共に専用のSlackチャンネルに投稿
  • EAS Submit経由で送信されるビルドによる週次本番リリースサイクル

また、エンドツーエンドテストにMaestroを使用しています。テストを高速化するため、PhantomはEAS UpdateとExpo Fingerprintを巧妙に使用して、必要な場合のみe2eテスト用のアプリを構築しています。

「サンドボックス環境でEAS Updateを使用してアップデートをプッシュすることで、60分のテスト実行から約15分短縮しました。テストイテレーション速度の大きな勝利です。」 — Dan Tamas、Phantomソフトウェアエンジニア

他の人が暗号通貨アプリを構築できる開発者ツール

Phantomは単にExpoで独自のモバイルアプリを構築しているだけではありません。他の開発者がユーザーに暗号通貨を提供できるよう支援しています。チームは、他の開発者が独自のExpoとReact Nativeアプリに暗号通貨を直接統合できるwallet SDKを立ち上げました。

Expoがエンジニアが簡単に高品質なネイティブアプリを構築できるよう支援するのと同様に、PhantomのWallet SDKは安全でユーザーフレンドリーな暗号通貨機能の追加を同じように簡単にします。暗号通貨統合をシームレスでアクセシブルにすることで、Phantomは自社製品を超えてミッションを拡張し、安全で使いやすくすることで世界の暗号通貨採用を加速しています。

なぜ暗号通貨アプリがExpoで構築されるのか

ExpoとReact Nativeは暗号通貨ウォレットのデフォルトスタックになっています。今日、この分野のほぼすべてのモバイルウォレットがこの方法で構築されています。Phantomは、このスタックが最高のUX基準を維持しながら数百万のユーザーをサポートするためにどのようにスケールするかの最良の例の1つです。

「何をしているかを知っていれば、React NativeとExpoに精通した数名のエンジニアだけで高性能なアプリを作成できます。チームの残りは、React Nativeの基本的な理解だけでJavaScriptとReactに精通したエンジニアで構いません。」 — Jakub Adamczyk、Phantomソフトウェアエンジニア

暗号通貨アプリには、さまざまな業界に関連するいくつかの重要な制約があります:

  • セキュリティが最重要
  • エンジニアリングチームは多くの場合リーンでアジャイル
  • クロスプラットフォームの一貫性が不可欠

Expoはこれらの制約に完璧に適合します。Phantomは、リーンを維持し迅速に動けるようにしながら、安全で高速で見栄えの良い製品を提供するためにExpoを使用しています。

Expoは、小さな詳細も正しく確実にするためにネイティブコードを使用することをPhantomが止めることはありません。セキュリティのためのカスタムWebViewパッチを構築し、Solana Mobile Wallet Adapterなどの機能をサポートするネイティブモジュールを作成し、さらにExpoを他の暗号通貨アプリにも提供するEmbedded Wallet製品用のSDKも作成しました。

Expo Dev ClientとEASにより、チームの任意のエンジニアが貢献しやすい、高速で安全で簡単なセットアップを作成しました。

「以前は人々に言っていました:高速に開始したい場合のみExpoを使用し、その後純粋なReactNativeにイジェクトしてください。今は単に言います:Expoを使用してください。以上。」 — Dan Tamas、Phantomソフトウェアエンジニア

他のチームへのアドバイス

Phantomのチームは水平的に働きます。エンジニアはオーナーシップを取り、独立して働き、迅速に動くことが期待されています。

「この会社はプロダクトマネージャーからの指導を受けたエンジニアによって運営されており、その逆ではありません。」 — Dan Tamas、Phantomソフトウェアエンジニア

Expoを始めるチームへの彼らのアドバイス:

  • エコシステムを受け入れる:Expoモジュール、dev client、インフラストラクチャは本番環境対応
  • Expo Modules APIを使用する:Expoは日常的にネイティブコードに触れることなく出荷でき、代わりに製品に集中できる
  • シンプルに保つ:彼らのセットアップは特殊ではなく、実用的で効率的

Phantomは、世界最高の暗号通貨アプリの1つを構築するために巨大なチームや深いネイティブ専門知識が必要ないことの証明です。彼らはExpoで高速に動き、安全を保ち、毎週出荷しています。

How Phantom ships a secure, high-performance crypto wallet with Expo | Expo | DocsDigest