Mobile-native AI-powered DeFi companion on Solana.
Automate yield strategies. Onboard web3 novices through collaborative AI mentor swarms.
| Criteria (25% each) | How Swarmi Delivers |
|---|---|
| Stickiness & PMF | Gamified swarm mentoring, SKR badges, leaderboard hooks |
| User Experience | 3-tap onboarding, natural language mentor chat, biometric signing |
| Innovation / X Factor | RL-inspired on-device swarm mentoring β turns DeFi education into guided participation |
| Presentation & Demo | Polished APK, live devnet transactions, recorded walkthrough |
| Layer | Technology |
|---|---|
| Framework | Expo + React Native (create-solana-dapp β Solana Mobile template) |
| Blockchain | @solana/kit, @solana-mobile/mobile-wallet-adapter |
| Protocols | Kamino (yield vaults), Jupiter (swaps), SPL Token (USDC transfers) |
| Styling | Uniwind (Tailwind for React Native) |
| State | Zustand |
| AI / ML | TensorFlow.js React Native β on-device, quantized model |
| Navigation | Expo Router (file-based) |
| Build | EAS β APK (buildType: apk) |
| RPC | Helius (primary) β public mainnet (fallback) |
swarmi/
βββ src/
β βββ app/ # Expo Router β file-based screens
β β βββ _layout.tsx # Root layout (providers, nav shell)
β β βββ index.tsx # Splash / entry redirect
β β βββ (onboarding)/
β β β βββ welcome.tsx # Splash + CTA
β β β βββ connect.tsx # Wallet connect (MWA)
β β β βββ swarm-intro.tsx # First mentor chat
β β βββ (main)/
β β βββ _layout.tsx # Bottom tab navigator
β β βββ dashboard.tsx # Balances + live feed
β β βββ optimizer.tsx # AI yield optimizer
β β βββ payments.tsx # Micropayment scheduler
β β βββ simulate.tsx # Offline simulation mode
β β
β βββ components/ # Shared UI primitives
β β βββ GlassCard.tsx
β β βββ ParticleSwarm.tsx
β β βββ SwarmAvatar.tsx
β β βββ PrimaryButton.tsx
β β βββ BalanceDisplay.tsx
β β βββ YieldFeedItem.tsx
β β βββ ProgressBar.tsx
β β
β βββ features/ # Feature-scoped logic + UI
β β βββ onboarding/
β β β βββ SwarmMentorChat.tsx
β β β βββ BadgeUnlock.tsx
β β β βββ useSwarmMentor.ts
β β βββ vault/
β β β βββ YieldCard.tsx
β β β βββ ExecuteFlow.tsx
β β β βββ useYieldVault.ts
β β βββ payments/
β β β βββ PaymentForm.tsx
β β β βββ usePayments.ts
β β βββ simulation/
β β βββ SimChart.tsx
β β βββ useSimulation.ts
β β
β βββ hooks/ # Cross-feature hooks
β β βββ useWallet.ts # MWA session + auth state
β β βββ useSolanaRpc.ts # RPC queries via @solana/kit
β β βββ useOnChainBalance.ts # SOL + USDC balance polling
β β
β βββ stores/ # Zustand state slices
β β βββ walletStore.ts
β β βββ portfolioStore.ts
β β βββ swarmStore.ts
β β
β βββ lib/
β β βββ solana/
β β β βββ client.ts # RPC connection factory (Helius β public fallback)
β β β βββ mwa.ts # MWA helpers (connect, sign, disconnect)
β β β βββ tokens.ts # SPL token utils (USDC transfers)
β β βββ ai/
β β β βββ swarmModel.ts # tfjs model loader + inference runner
β β β βββ mentorRules.ts # Rule-based NLP fallback (MVP)
β β βββ utils/
β β βββ format.ts # Number/address formatting
β β βββ cache.ts # Offline data caching (AsyncStorage)
β β
β βββ constants/
β βββ colors.ts # Design system palette
β βββ fonts.ts # Typography config
β βββ config.ts # RPC endpoints, program IDs, feature flags
β
βββ assets/
β βββ fonts/ # Space Grotesk + Inter (local)
β βββ icons/ # SVG icon set (24Γ24)
β βββ animations/ # Reanimated configs
β βββ models/ # Quantized tfjs model (bundled)
β
βββ app.json
βββ eas.json
βββ babel.config.js
βββ tsconfig.json
βββ package.json
AI Onboarding Swarm β Natural language mentor chat that guides novices from zero to first yield position. Gamified with SKR badges and a sandbox mode before going live.
AI Yield Optimizer β Suggests and executes auto-compound strategies across Kamino vaults. One-tap execution with MWA biometric signing. Real transactions on Solana.
Micropayment Scheduler β Sub-$0.01 USDC transfers via SPL Token. Demonstrates Solana's sub-400ms finality and near-zero fees in a concrete, visual way.
Offline Simulation Mode β Risk-free strategy sandbox powered by on-device tfjs inference. No wallet, no RPC β runs fully local. Bridges to live execution when the user is ready.
Real-Time Dashboard β Live SOL + USDC balances via RPC, yield feed, offline cache with last-sync timestamp.
| Token | Value | Usage |
|---|---|---|
| Background | #0A0E17 |
Primary BG (OLED-optimized) |
| Surface | #1A1F2E |
Glassmorphic cards |
| Primary | #9945FF |
CTAs, active states |
| Accent | #14F195 |
Yields, success, badges |
| Warning | #FF6B6B |
Risk labels, errors |
| Info | #03E1FF |
Charts, tooltips |
| Text Primary | #F5F7FA |
Headlines |
| Text Secondary | #A0AEC0 |
Body |
Fonts: Space Grotesk (headlines, CTAs) + Inter (body, data).
- Node.js 18+
- Android Studio + Pixel 8 emulator (API 36) or physical Android 13+ device
- EAS CLI:
npm install -g eas-cli - Phantom or Backpack wallet installed on the same device
npm create solana-dapp@latest
# Select: Solana Mobile β Exponpm installCreate .env.local:
EXPO_PUBLIC_RPC_URL=https://rpc.helius.xyz/?api-key=YOUR_KEY
EXPO_PUBLIC_NETWORK=mainnet-beta
EXPO_PUBLIC_AI_ENABLED=false
AI_ENABLED=falseuses rule-based mentor responses (faster iteration). Flip totruewhen the tfjs model is bundled underassets/models/.
npm run androideas build --platform android --profile dapp-storeProfile config in eas.json:
{
"build": {
"dapp-store": {
"android": {
"buildType": "apk"
}
}
}
}Feature-first structure. Each feature (onboarding, vault, payments, simulation) owns its components, hooks, and types. Cross-cutting concerns (wallet, RPC, state) live in hooks/, stores/, and lib/. Two devs can work on separate features without file conflicts.
Blockchain is the backend. No custom server. Wallet identity = pubkey via MWA. Balances and transactions go directly to Solana RPC. Kamino and Jupiter APIs are consumed read-only for strategy data.
AI is feature-flagged. mentorRules.ts handles the MVP mentor chat. swarmModel.ts wraps tfjs for the quantized model β swapped in via EXPO_PUBLIC_AI_ENABLED. No model training on the critical path.
Offline-first. Dashboard caches via AsyncStorage. Simulation runs entirely local. RPC failures degrade gracefully with cached data and a sync timestamp.
MWA for all signing. Private keys never enter the app. All transactions are assembled client-side and sent to MWA for biometric signing β follows the Solana Mobile security model exactly.
- Solana Mobile Docs β Create a Project
- Mobile Wallet Adapter
- Kamino Finance
- Jupiter Aggregator
- Helius RPC
MIT β Built for Solana Mobile Hackathon 2026.