Quick Start
Get the boilerplate running against our already-deployed Duo sandbox in a few minutes. The app ships with a pre-filled .env.example — you don't need to create any Auth0, FaceTec, Google, WalletConnect, or backend accounts to try it out.
Everything the app needs to talk to the sandbox — the backend URLs, Auth0 tenant, FaceTec dev key, Google client, and WalletConnect project — is already filled in .env.example. Just copy it and run. Wiring the app to your own backend is covered in Run Your Own Backend.
Prerequisites
- Node.js 20+ and Yarn
- Xcode (iOS) or Android Studio (Android)
1. Clone and install
git clone https://github.com/silence-laboratories/examples-hub.git
cd examples-hub/silent-shard-sdk/with-react-native
Configure Your Package Manager
Configure your package manager with a private token provided by us to access the private registry.
If you don't have NPM token, please contact us at [email protected].
Use a consistent install workflow throughout (either npm install or yarn add). Note that .npmrc configuration applies to both npm and Yarn v1, while Yarn v2+ uses .yarnrc.yml.
- yarn v2
- yarn v1 / npm
- Create a
.yarnrc.ymlfile in the root of your project and add the following line:
npmScopes:
"silencelaboratories":
npmAlwaysAuth: true
npmRegistryServer: "https://registry.npmjs.org"
npmAuthToken: ${NPM_TOKEN}
- Create a
.npmrcfile in the root of your project and add the following line:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
- Add the npm token as an environment variable, e.g., in a terminal session run:
export NPM_TOKEN=your-npm-token
Then install dependencies:
yarn install
2. Copy the environment file
cp .env.example .env
That's it — no editing required for the sandbox. .env.example comes pre-filled with working demo credentials that point at our deployed Duo backend:
| Group | What's pre-filled |
|---|---|
| Duo backend | EXPO_PUBLIC_DUO_BACKEND_BASE_URL, EXPO_PUBLIC_DUO_CLOUD_NODE_URL, EXPO_PUBLIC_DUO_CLOUD_NODE_VERIFYING_KEY — the deployed sandbox auth-svc + duo-server |
| Auth0 | EXPO_PUBLIC_AUTH0_DOMAIN, EXPO_PUBLIC_AUTH0_CLIENT_ID, EXPO_PUBLIC_AUTH0_AUDIENCE — a demo tenant for email/Google login |
| FaceTec | EXPO_PUBLIC_FACETEC_URL, EXPO_PUBLIC_FACETEC_DEVICE_KEY_IDENTIFIER, EXPO_PUBLIC_ENCRYPTION_KEY — the FaceTec v9 development key |
| Google Sign-In | EXPO_PUBLIC_WEB_CLIENT_ID, EXPO_PUBLIC_IOS_CLIENT_ID, EXPO_PUBLIC_IOS_URL_SCHEME |
| WalletConnect | EXPO_PUBLIC_WALLET_CONNECT_PROJECT_ID |
.env.example also includes a Trio Demo preset (EXPO_PUBLIC_TRIO_*). This guide focuses on Duo; the app defaults to the Duo Demo backend.
3. Build and run
Generate the native projects, then launch on your target platform:
# Generate native code for iOS and Android
npx expo prebuild --clean
# Run on a specific platform
yarn ios # iOS Simulator
yarn android # Android Emulator
4. First run walkthrough
When the app launches for the first time:
- Onboarding — a brief explanation of how MPC wallets work.
- Sign in — tap Sign in to authenticate with the demo Auth0 tenant (email/password or Google). The app defaults to the Duo Demo backend; to change it, open Server settings from the top of the sign-in screen and pick Duo Demo, Trio Demo, or a Custom Backend.
- Biometric lock — enable Face ID / Fingerprint / PIN as an app lock.
- Create wallet — tap Create Wallet to run MPC key generation. Both ECDSA (EVM/Bitcoin) and EdDSA (Solana) keyshares are generated.
- Home — your addresses are displayed and the wallet is ready.
We recommend testing on a physical device. WalletConnect needs the camera to scan QR codes, and backup/recovery uses FaceTec's 3D face scan — both require real camera hardware.
Because the sandbox is served over public https, you do not need to change any URLs to reach it from a simulator or a physical device. (The localhost / LAN-IP rewrite only matters when you run your own backend locally.)
Next steps
- Code Walkthrough — how the app implements auth, keygen, signing, backup, and recovery.
- Run Your Own Backend — replace the sandbox with your own
duo-server+auth-svc.