Skip to content

Repository files navigation

DexHunter

A gamified AR token discovery app for Solana. Users collect meme coins in AR Hunt mode, track progress per token, and unlock rewards. Built with Expo (React Native) and Zustand.

Overview

DexHunter runs as a single Expo app: after a splash screen with your logo, users sign in and get a tabbed home (Home, AR Hunt, Rewards, Profile). The AR Hunt screen loads 15 meme/trending coins from the Jupiter API and shows them as tappable tokens over the camera; each capture is stored and reflected in the Rewards screen as per-token progress (e.g. 2/5) with a claim-status message. Wallet connection and claim submission are mock only (no real blockchain). All state is persisted locally via Zustand and AsyncStorage.

Features

  • Splash & Auth — App logo from assets/images/, animated splash, then sign-in with username.
  • Home — Welcome, daily login bonus, XP/level, quick entry to AR Hunt.
  • AR Hunt — Camera-based hunt: 15 meme coins from Jupiter spawn as floating tokens; tap to capture. Wallet status (Connect Wallet / connected address) in the top bar.
  • Rewards (Claim) — Scrollable token progress for the 15 allowed coins: name, count (e.g. 2/5), progress bar, per-token claim status. Mock wallet connect and Submit Claim.
  • Profile — User stats, level, XP, inventory of captured tokens; tap for detail; sign out.

Tech Stack

  • Framework: Expo ~54, React 19, React Native 0.81
  • Navigation: React Navigation (native-stack + bottom tabs)
  • State: Zustand with AsyncStorage persistence
  • Data: Jupiter Lite API (lite-api.jup.ag/tokens/v2) for token listing and 15 meme/trending coins
  • Camera/AR: expo-camera, expo-sensors (accelerometer)

Project Structure

Dex_Hunter/
  App.tsx                    # Entry, SafeAreaProvider, NavigationContainer
  app.json                   # Expo config (DexHunter, camera permission)
  assets/images/             # App logo (e.g. image.jpeg) used on splash
  src/
    navigation/              # RootNavigator, MainTabs, types
    screens/                 # Splash, Auth, Home, ARGameplay, Claim, Profile, CoinDetail
    store/gameStore.ts       # Zustand store (auth, XP, tokens, rewards, wallet)
    services/jupiterService.ts  # Jupiter API, fetchMemeCoins(15), checkTokenListed
    components/              # layout, game (HUDBar, GlassCard, NeonButton), ui
    utils/theme.ts           # COLORS

App Flow

  1. Splash — Logo + title + progress bar; after hydration goes to Auth or Main.
  2. Auth — Sign-in with username; daily login bonus applied.
  3. Main Tabs — Home, Hunt (AR), Claim (Rewards), Profile.
  4. AR Hunt — Start Hunt fetches 15 meme coins via fetchMemeCoins(15), stores symbols in allowedRewardSymbols, spawns only those tokens. Tap to capture; wallet UI in top bar (mock).
  5. Rewards — Token progress from capturedTokens filtered by allowedRewardSymbols. Each row: name, count/5, progress bar, claim status. Wallet connect + Submit Claim (mock).
  6. Profile — Stats and inventory; tap token for CoinDetail modal.

State (Zustand)

Persisted to AsyncStorage. Key fields:

  • Auth: isAuthed, username, signIn, signOut
  • Progress: xp, level, addXP
  • Tokens: capturedTokens, captureToken
  • Rewards: tokenCounts, allowedRewardSymbols, setAllowedRewardSymbols, collectedTokens, claimEligible, walletConnected, walletAddress, claimSubmitted, connectWallet, submitClaim
  • Stats: totalScans, totalCaptures, accuracy, streak, claimDailyLogin

Reward rules: only the 15 coins from Jupiter are shown in AR and in Rewards. Per-token threshold is 5 for "unlock" status. Wallet and claim are mock (no backend).


Jupiter API

  • Base: https://lite-api.jup.ag/tokens/v2
  • Endpoints: /search?query=... (listing check), /toptrending?interval=24h&limit=15 (meme coins), /recent (fallback). If both fail, a fixed list of 15 meme symbols is used.

Running

npm install
npx expo start -c

Logo path: assets/images/image.jpeg. Camera permission required for AR Hunt (see app.json).


Config

  • Required tokens per coin: 5 (REQUIRED_TOKENS in ClaimScreen and store).
  • Meme coins count: 15 (fetchMemeCoins(15) in jupiterService, set when starting AR Hunt).

About

DexHunter transforms token discovery into an AR game—users hunt, collect, and track trending Solana meme coins, making crypto engagement fun, visual, and habit-forming

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages