+ );
+}
+
+```
+
+---
+
+## 5. Deployment & Integration
+
+Telegram require **HTTPS**. Localhost won't work without tunneling (like ngrok), so deploying to Vercel is easiest.
+
+1. **Deploy Frontend:** Push `base-tma-app` to GitHub and deploy on **Vercel**.
+* *Note: Add `NEXT_PUBLIC_CDP_API_KEY` to Vercel Environment Variables.*
+* Copy your deployment URL (e.g., `https://base-tma-app.vercel.app`).
+
+
+2. **Configure Bot:**
+* In your `base-tma-bot` folder, create `.env`:
+```env
+BOT_TOKEN=123456:ABC-DEF...
+WEB_APP_URL=https://base-tma-app.vercel.app
+
+```
+
+
+* Run the bot: `node bot.js`
+
+
+3. **Test:**
+* Open your bot in Telegram.
+* Send `/start`.
+* Click the **"🚀 Open Onchain App"** button.
+* The app opens. Click **"Connect Wallet"**.
+* **Create a Passkey** (FaceID/TouchID). You are now connected!
+
+
+
+---
+
+## 6. Common Pitfalls
+
+1. **"Web App setup failed":**
+* **Context:** Telegram shows a blank screen.
+* **Fix:** Ensure you are using `https`. Also, check the Vercel logs to ensure the build succeeded.
+
+
+2. **Smart Wallet Popup Blocked:**
+* **Context:** Some strict browser settings inside Telegram might block popups.
+* **Fix:** OnchainKit handles this well, but ensure `preference: 'smartWalletOnly'` is set to avoid triggering legacy connector logic that might fail in webviews.
+
+
+3. **Hydration Errors:**
+* **Context:** "Text content does not match..."
+* **Fix:** Ensure your `Providers` component waits for `mounted` state (useEffect) before rendering the SDK provider, as Telegram injects the `window.Telegram` object asynchronously.
+
+
+