Skip to main content

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.

  • Create a .yarnrc.yml file in the root of your project and add the following line:
npmScopes:
"silencelaboratories":
npmAlwaysAuth: true
npmRegistryServer: "https://registry.npmjs.org"
npmAuthToken: ${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:

GroupWhat's pre-filled
Duo backendEXPO_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
Auth0EXPO_PUBLIC_AUTH0_DOMAIN, EXPO_PUBLIC_AUTH0_CLIENT_ID, EXPO_PUBLIC_AUTH0_AUDIENCE — a demo tenant for email/Google login
FaceTecEXPO_PUBLIC_FACETEC_URL, EXPO_PUBLIC_FACETEC_DEVICE_KEY_IDENTIFIER, EXPO_PUBLIC_ENCRYPTION_KEY — the FaceTec v9 development key
Google Sign-InEXPO_PUBLIC_WEB_CLIENT_ID, EXPO_PUBLIC_IOS_CLIENT_ID, EXPO_PUBLIC_IOS_URL_SCHEME
WalletConnectEXPO_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:

  1. Onboarding — a brief explanation of how MPC wallets work.
  2. 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.
  3. Biometric lock — enable Face ID / Fingerprint / PIN as an app lock.
  4. Create wallet — tap Create Wallet to run MPC key generation. Both ECDSA (EVM/Bitcoin) and EdDSA (Solana) keyshares are generated.
  5. 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