- Email + password – classic form
- Gmail OAuth – quick sign-up
- Solana wallet – Phantom, MetaMask (Solana), etc.
- Free: 5 new pairs, 5 trending coins only
- Paid: Full dashboard
- $250/month
- 3 months: $50 off → $700 total
- 6 months: $100 off → $1,400 total
- User provides their Solana wallet address.
- You provide your payment wallet address + amount (SOL/USDC).
- User sends payment.
- System detects the payment and grants access.
- User pastes transaction signature (tx hash).
- Backend fetches tx via Solana RPC (Helius, QuickNode, etc.).
- Check: sender = user wallet, recipient = your wallet, amount ≥ required.
- If valid → mark user as paid, set expiry.
Pros: No webhooks, simple.
Cons: User must paste tx; no automatic detection.
- Use Helius or QuickNode webhook for incoming transfers.
- When a transfer hits your wallet from a known user wallet → verify amount → grant access.
Pros: Automatic.
Cons: Needs webhook setup, webhook endpoint, and linking user wallet to account.
- Periodically check your wallet’s recent transactions via RPC.
- Match sender wallet to user account and verify amount.
Pros: No webhook.
Cons: Delay, extra RPC calls, not ideal at scale.
- NextAuth.js – email/password + Google OAuth
- Wallet connect – @solana/wallet-adapter for Phantom, etc.
- Database – Prisma
User+Subscriptionmodels
- Phase 1: Manual tx verification (paste tx hash).
- Phase 2: Helius webhook for automatic detection.
model User {
id String @id @default(cuid())
email String? @unique
passwordHash String?
walletAddress String? @unique // Solana wallet for payments
plan String @default("free") // free | pro
planExpiresAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Subscription {
id String @id @default(cuid())
userId String
txSignature String? // Solana tx hash used for payment
amount Float // USD paid
months Int // 1, 3, or 6
startsAt DateTime
expiresAt DateTime
}- Add User + Subscription models to Prisma.
- Set up NextAuth – credentials + Google provider.
- Add
/registerand/loginpages. - Wallet connect – connect Phantom/MetaMask, save
walletAddresson user. - Subscription page – show pricing, your payment wallet, amount in SOL/USDC.
- Payment verification API – POST
/api/verify-paymentwith tx signature. - Apply free-tier limits – cap at 5 new pairs and 5 trending when
plan === "free". - Protect routes – redirect unauthenticated users to
/login. - Optional: Helius webhook for automatic payment detection.
| Plan | Price | Total |
|---|---|---|
| 1 month | $250 | $250 |
| 3 months | $250×3 − $50 | $700 |
| 6 months | $250×6 − $100 | $1,400 |
- Run
npx prisma migrate devto addsourcecolumn and any new models. - Decide whether to start with manual tx verification or a webhook-based flow.
- Add auth (NextAuth + wallet) and then payment verification + plan enforcement.