Frontend wallet app for the TITAN / YieldBoost AI stack.
This project is a standalone Vite + React + TypeScript app intended to live in its own repository and deploy separately from the main YieldBoost codebase.
- In-memory wallet session management with
ethers - Network management with custom RPC support
- Token detection and custom token import
- Swap flow with pre-swap TITAN security checks
- YieldBoost Integrity API integration for health, records, proofs, and security actions
- Install dependencies:
npm install- Create a local env file:
cp .env.example .env.local- Start the dev server:
npm run devSee .env.example.
Important values:
VITE_TITAN_API_BASE_URLVITE_TITAN_MILITARY_GRADE_BASE_URLVITE_TITAN_DEV_PORTAL_URLVITE_TITAN_API_KEYVITE_TITAN_API_ENVVITE_PRIVY_APP_ID
This wallet can optionally use Privy for Google / Apple authentication and embedded MPC wallet creation.
Frontend:
- Set
VITE_PRIVY_APP_IDin.env.local - The React app never needs the Privy App Secret
Server-side / developer auth notes:
- Keep
PRIVY_APP_SECRETonly on the server - Verify Privy-issued JWTs against the app JWKS endpoint:
https://auth.privy.io/api/v1/apps/<your-privy-app-id>/jwks.json - The current app can safely use Google / Apple login in the browser while any privileged verification stays in your backend or agent runtime
- For third-party developers building their own app on top of TITAN rails, they must bring their own Privy app and credentials rather than reuse the TITAN Wallet Privy app
We pin ws through npm overrides so the wallet stays on patched 8.21.x without forcing a breaking downgrade of ethers, viem, or Privy's wallet stack.
uuid may still appear in npm audit as a moderate transitive issue through MetaMask / WalletConnect dependencies pulled in by the wallet connector stack. We are intentionally leaving that as a documented upstream exception until Privy / x402 / wagmi / connector dependencies publish a compatible non-breaking upgrade path.
npm run buildThe static output is generated in dist/.
Recommended target:
- app path:
/opt/titan-wallet/current - domain:
titanwallet.net - web server:
nginx - serve static files from
dist/
Production should prefer same-origin proxy routes on the wallet domain:
Use a managed API key from https://dev.yieldboostai.xyz/console and point the wallet at the live endpoints:
https://api.yieldboostai.xyzhttps://dev.yieldboostai.xyz/api/dev/store/aws-nitro-fortress
- This repo is intentionally separate from the main YieldBoost app for easier maintenance and GitHub management.
- Private wallet secrets are kept in memory only and are not persisted by default.