Skip to main content

React Native Boilerplate

The Silent Shard React Native Boilerplate is a production-quality reference app that shows you how to integrate MPC-based wallets into a mobile application. It is built with Expo and demonstrates the full user journey — from authentication and key generation to multi-chain signing, dApp connectivity, biometric backup, and recovery.

There is no full private key anywhere. The wallet works by splitting key material between the user's device and a cloud MPC node (duo-server). Every signing operation is a collaboration between these two parties.

How the app, auth-svc, and duo-server interact

The app talks to auth-svc for user and device registration, then talks to duo-server for MPC key generation and signing. Before duo-server participates in either MPC protocol, it calls an auth-svc hook to confirm the registered device is allowed to continue.

Loading Diagram...
Onboard screen
Onboarding
Sign-in screen
Sign in
Create wallet
Create wallet
Home screen
Home
Backup screen
Backup
Restore screen
Restore
Multi-chain support
Multi-chain
Send transaction
Send
Receive Screen
Receive

Features

FeatureDetails
MPC SigningNo full private key — device + cloud co-sign together; supports DUO (2-of-2) and TRIO (2-of-3)
Multi-ChainEVM (viem), Solana (@solana/kit), and Bitcoin Testnet4 (bitcoinjs-lib)
Post-QuantumPost-quantum signing (ML-DSA) and verification using ZKNOX contracts
Token SupportUSDC — ERC-20 on EVM and SPL on Solana — alongside native ETH / SOL / BTC
Configurable BackendIn-app Server settings to switch between Duo Demo, Trio Demo, or a custom deployment at runtime
WalletConnect v2Connect to dApps, approve sessions, sign EVM and Solana requests
Biometric LockFace ID / Fingerprint / PIN via expo-local-authentication
Biometric BackupFaceTec 3D face scan encrypts and backs up keyshares
RecoveryRestore wallet on new device using face scan + Google Drive key
AuthAuth0 email login + optional Google Sign-In

Key Libraries

LibraryPurpose
@silencelaboratories/silent-shard-sdkMPC key generation and signing sessions
@silencelaboratories/dkls-sdkECDSA signing for EVM and Bitcoin
@silencelaboratories/schnorr-sdkEdDSA signing for Solana
@silencelaboratories/mldsa-sdkML-DSA signing for Post-Quantum security
viemEVM account creation, transaction building, and signing
@solana/kitSolana transactions and address derivation
bitcoinjs-libBitcoin Testnet4 P2WPKH address derivation and PSBT signing
@reown/walletkitWalletConnect v2 wallet-side integration
react-native-auth0Auth0 authentication and credential management

What you'll need

The app ships with a pre-filled .env.example that points at our already-deployed Duo sandbox (backend, Auth0, FaceTec, Google, and WalletConnect are all configured for you). So for a first run you only need the basics:

RequirementSandbox (Quick Start)Self-hosting (Advanced)
Node.js 20+ and Yarn✅ Required✅ Required
Xcode (iOS) or Android Studio (Android)✅ Required✅ Required
NPM access token (for @silencelaboratories packages)✅ Required — email [email protected]✅ Required
Auth0 / Google / WalletConnect / FaceTec accounts❌ Not needed — demo credentials are pre-filledRequired — see Third-Party Services
Your own backend (duo-server + auth-svc)❌ Not needed — the sandbox is deployedRequired — see Run Your Own Backend

Start here → Quick Start. Clone the repo, cp .env.example .env, and run against the deployed sandbox — no third-party setup required. Self-hosting your own backend is an optional, advanced path covered later.