Mobile app for the SoroWill on-chain inheritance protocol — check in to prove you're alive, manage your will, and protect your crypto legacy from your phone.
Live app: sorowill.vercel.app
SoroWill is a trustless on-chain inheritance ("dead man's switch") protocol on Stellar Soroban: lock USDC, name beneficiaries with percentage splits, and set a check-in period. If you stop checking in, the contract releases your funds to your beneficiaries after a grace period.
This repo is the mobile client — a React Native / Expo app focused on the one action that matters most: the check-in.
A missed check-in isn't a cosmetic bug — it can trigger the release of your entire will. The web
dashboard (sorowill-app) assumes you're at a desk with a browser extension installed; a phone in
your pocket does not. This app exists so a check-in reminder reaches you wherever you are, and
confirming it takes one tap and a Face ID / fingerprint prompt — not a laptop and a browser
extension.
- One-tap check-in with biometric confirmation (Face ID / fingerprint via
expo-local-authentication) - Push notification reminders at 7 days, 3 days, 1 day, 6 hours, and 1 hour before your deadline
- Full will management — create, top up, update beneficiaries, cancel
- Beneficiary overview with calculated USDC shares and allocation validation
- Emergency check-in flow during an active grace period
- WalletConnect v2 and Freighter mobile deeplink wallet connection — no browser extension required
| Layer | Choice |
|---|---|
| Framework | React Native + Expo SDK 51 |
| Language | TypeScript (strict, zero any) |
| Contract reads | @sorowill/sdk |
| Contract writes | @stellar/stellar-sdk (spec-driven encoding), signed via wallet transport |
| Wallet | WalletConnect v2, Freighter mobile deeplink |
| Navigation | React Navigation (native-stack + bottom-tabs) |
| Styling | NativeWind (Tailwind for React Native) |
| Notifications | expo-notifications |
| Secure storage | expo-secure-store |
| Biometrics | expo-local-authentication |
Why not just call
@sorowill/sdk's write methods directly? They hard-import@stellar/freighter-api, which talks to a browser extension viawindow— there is nowindowon React Native. Reads (getWill,getWillsByOwner, ...) have no such dependency and go straight through the SDK; writes are built with@stellar/stellar-sdkagainst the same contract entrypoints and signed through whichever wallet transport is connected. Seesrc/lib/contract.tsfor details.
Prerequisites: Node.js 20+, Expo CLI (npm install -g expo-cli, or just use npx expo), and
Xcode/Android Studio for a simulator or emulator.
git clone https://github.com/SoroWill/sorowill-mobile.git
cd sorowill-mobile
npm install
cp .env.example .env
# fill in EXPO_PUBLIC_CONTRACT_ID once a testnet contract is deployed
npx expo start- iOS: press
ito launch the iOS Simulator - Android: press
ato launch an Android emulator
| Variable | Description | Default |
|---|---|---|
EXPO_PUBLIC_STELLAR_NETWORK |
testnet or mainnet |
testnet |
EXPO_PUBLIC_CONTRACT_ID |
Deployed SoroWill contract address | (empty) |
EXPO_PUBLIC_RPC_URL |
Soroban RPC endpoint | https://soroban-testnet.stellar.org |
EXPO_PUBLIC_WALLETCONNECT_PROJECT_ID |
WalletConnect Cloud project ID | (empty) |
Contributors: add screenshots of your changes here as the app takes shape — see CONTRIBUTING.md.
This is the only mobile app in the entire Stellar Wave Program — it's unique, and it's your opportunity to contribute to Stellar if Rust or web TypeScript aren't your thing. Mobile developers: this repo is for you.
See CONTRIBUTING.md for the full contributor workflow.