# User Flow – MetaMiles Spend-to-Reward Journey

### &#x20;**User Flow**

#### 1. **Onboarding**

* User visits the **MetaMiles dApp**
* Connects **MetaMask Wallet** via MetaMask SDK
* Verifies MetaMask **Card Ownership** using signed message&#x20;
* Enrolls in **Circle Wallet** for rewards delivery

#### 2. **Spending & Tracking**

* User makes purchases via **MetaMask Card**
* Spend data is retrieved securely via **Chainlink Functions**
* On-chain **SpendTracker Contract** is updated (stores only total spend, not full tx history)

#### 3. **Proof Generation (ZK)**

* User opens MetaMiles dApp to **claim tiered rewards**
* ZK circuit runs locally:\
  \&#xNAN;*“Prove I’ve spent > $X this month without revealing where or what”*
* Generates a **ZK-SNARK proof** using pseudonymous identity
* Submits proof on-chain to **ZKVerifier Contract**

#### 4. **Reward Unlock**

* ZKVerifier confirms proof
* **Soulbound NFT**  is minted, representing the user’s **tier** (e.g., Bronze, Silver, Gold)
* NFT grants access to:
  * Token-gated ticketing
  * IRL discounts (NFC/QR based)
  * Merch or digital perks

#### 5. **Cross-Chain / Custody**&#x20;

* If reward is on another chain:
  * **LI.FI SDK** bridges asset using **Circle CCTP V2**
  * Delivered to user’s **preferred chain or Circle Wallet**

#### 6. **Ongoing Use**

* Spend tracking **resets monthly**
* Users repeat cycle: spend → prove → unlock
* Can view progress & perks dashboard
