Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Multi-chain crypto discovery board with paid boosts, community votes and an admin panel. Built with Next.js 16 + React 19 + Tailwind 4, data in Supabase, market data from DexScreener and CoinGecko. English and 中文 throughout.README 전문 보기 ↗
Multi-chain crypto discovery board with paid boosts, community votes and an admin panel. Built with Next.js 16 + React 19 + Tailwind 4, data in Supabase, market data from DexScreener and CoinGecko. English and 中文 throughout.
| Page | What it does |
|---|---|
/ ThunderTrend | Live trending board. Boosted tokens are pinned by Thunder Points; Tier 3+ names shimmer gold (Thunder Ticker); Tier 5 gets the glowing Thunder Elite frame and the front-page spotlight. Live banner carousel (paid banners → running boosts, including ones the admin adds → whatever is trending on DexScreener right now, refreshed every 30s). Top 10 Hot Spot (votes), newest listings. |
/trenches | Fresh launches, newest first. |
/hottest | Largest stablecoins ranked by 24h volume. |
/advertising | Thunder Advertising: Thunder Profile (Free / Elite $148), Thunder Trend Tiers 1–5, Banner Ads (1500×500, 24h / 3d / 7d). Checkout creates an order. |
/coin/[chain]/[address] | Token page: chart, stats, links, votes. Elite Profiles get a banner, gold frame and every social link. |
/submit, /dashboard | Free listing submission; a user's own listings and orders. |
/admin | Overview (revenue, pending work), listing review (approve / reject / feature / add votes / edit), orders (mark paid & activate, extend, end), Add trending (put any token on the board + carousel for free, instantly), pricing editor (prices, "was" prices, points, durations, sale toggle), users (grant admin). |
tx_hash column for when on-chain payments are wired in.npm install
cp .env.example .env.local # leave the Supabase values empty to use demo mode
npm run dev # http://localhost:3000
Demo mode. With no Supabase keys, accounts, listings, orders and votes live in the browser's localStorage, so every screen works, admin included (sign up with the username admin). Demo mode is for previews only: nothing is shared between visitors.
Offline market data. MARKET_FIXTURES=1 npm run dev serves sample tokens instead of calling DexScreener and CoinGecko.
supabase/schema.sql and run it. It creates the tables, security rules, pricing rows and functions, and is safe to run again.anon public key into your env (step 2).update profiles set is_admin = true where username = 'YourName';
| Variable | |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anon key. It is meant to be public; the database rules protect the data. |
NEXT_PUBLIC_ADMIN_TELEGRAM / _URL | Where buyers are sent to complete payment |
Import the repo at vercel.com/new, add the env vars, deploy. No other config is needed.
Old passwords can't be carried over, so everyone signs up again. Listings and votes do come across.
node scripts/migrate-from-sheets.mjs listings.csv votes.csv > supabase/import.sqlsupabase/import.sql in the Supabase SQL editor, after schema.sql.Each imported listing keeps its old username. When that person signs up again with the same username, their listings are re-attached to the new account automatically.
src/
├── app/ pages (one folder per route) + /api/market/[kind]
├── components/ board, chrome (nav/footer/dialogs), checkout, home sections
└── lib/
├── config.ts networks, pay tokens, banner spec, site settings
├── tiers.ts default product catalog + perk rules per tier
├── i18n/ en.ts + zh.ts (every visible string)
├── market/ DexScreener/CoinGecko (server, cached) + client hooks
└── store/ data layer: supabase.ts (live) and demo.ts (localStorage)
supabase/schema.sql tables, row-level security, triggers, RPCs
scripts/ Google Sheets → Supabase import
tiers table inside the database. Whatever price a browser sends is ignored. Regular users can only create pending listings and unpaid orders; approving, activating and pricing are admin-only, enforced by row-level security.src/app/globals.css.src/lib/i18n/en.ts and zh.ts.robinhood (src/lib/config.ts). Change it there if their listings use a different id.