Oracle3
Open-source trading engine and MCP server for prediction markets. Fee-aware no-arbitrage trading across related contracts, live on Kalshi, Polymarket and Solana or on paper.
Buy, sell and manage Bitcoin, Ethereum, Solana and more on Lunobase - a secure, regulated-grade digital asset platform with live markets, bank-level security and 24/7 support.
FinanceTypeScript · PLpgSQLGitHub @codewithmuideenOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Crypto exchange platform built with Next.js 16 (App Router), TypeScript, Tailwind CSS v4, Supabase and Resend.
| Area | Highlights |
|---|---|
| Public site | Home, live markets (top 100), SEO page per coin (/price/[id]), security, fees, about, help center, legal |
| Auth | Sign-up with branded verification email, password + email OTP on every login (users and admins), password reset, Cloudflare Turnstile "I am not a robot" |
| User dashboard | Portfolio overview, candlestick trading terminal, markets + watchlist, wallet, deposit (crypto address + QR, or bank), withdraw (with lock period), full history + CSV, support tickets, security center, settings, notifications |
| Realtime | Balances, deposits, withdrawals and notifications update live through Supabase Realtime. When an admin confirms a payment, the user's dashboard updates instantly. |
| Admin panel | KPIs + volume chart, users (search, freeze, suspend, promote, credit/debit, set unlock date / unlock now), deposit & withdrawal review queues, trades, support inbox, audit log, platform settings (fees, lock days, deposit addresses, bank details) |
Every new account gets withdrawal_unlock_at = signup + N days (N set in Admin → Platform settings, default 90).
Until then, users can deposit and trade but the Withdraw page shows the unlock date and a Contact support button that opens a pre-filled ticket.
Admins can move the date or tick Override: allow withdrawals per user. Unlocked withdrawals still need the user's password, and funds are held until an admin marks them sent.
SECURITY DEFINER Postgres functions that only the service role can call. The browser can't change balances.Metadata + Open Graph + Twitter cards, a generated OG image, robots.txt, sitemap.xml (includes every coin page), web manifest, JSON-LD (Organization, WebSite, FinancialService, FAQPage), canonical URLs, and noindex on private pages.
npm install
Copy .env.example to .env.local and fill it in. You need:
SUPABASE_SECRET_KEY: Supabase → Project Settings → API Keys → Secret keys. Required.AUTH_SECRET: any random 48+ character string.lunobase.com and localhost).Supabase → SQL Editor → paste all of supabase/migrations/0001_lunobase_core.sql → Run.
https://lunobase.com; add http://localhost:3000/** and https://lunobase.com/** to Redirect URLs.Resend → Domains → add lunobase.com → add the DNS records it shows (SPF, DKIM, and optionally DMARC) at your domain registrar → wait for Verified.
Until the domain is verified, Resend only delivers to the account owner's own address. In local development, login codes are also printed to the terminal.
npm run dev
Register and verify your email, then run this in the SQL Editor:
update public.profiles set role = 'admin' where email = '[email protected]';
Sign in again and you'll land on /admin. Next, go to Platform settings and add your deposit addresses and bank details.
.env.local under Project → Settings → Environment Variables, with NEXT_PUBLIC_SITE_URL=https://lunobase.com.lunobase.com in Vercel → Domains and point DNS to Vercel.src/
actions/ server actions (auth, trade, wallet, account, support, admin)
app/
(marketing)/ public site
(auth)/ login, register, verify (OTP), password reset
dashboard/ user app
admin/ admin panel
api/ cached market-data endpoints
components/ ui, marketing, market, dashboard, trade, admin, support
lib/ supabase clients, auth guards, market data, email, security
proxy.ts session refresh + route protection (password + OTP)
supabase/migrations/ schema, RLS, money-moving functions
src/app/(marketing)/legal) with lawyer-reviewed copy.COINGECKO_API_KEY) for production traffic.