Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Trench — B20 launchpad on Base. ETH or stock-paired launches.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Instant B20 launchpad on Base.
One transaction creates an admin-less B20 (1,000,000,000 supply) and seeds a locked Uniswap v4 pool against ETH or a Base stock B20.
Every swap pays 1% of the quote asset (ETH, or the stock you paired against):
No referrer → the 20% goes to the platform. For the first 20 seconds the total fee starts at 99% and decays to 1%; the extra above 1% is anti-snipe and goes to the platform.
Launch is free — Base gas only. No protocol creation fee.
Claim from Profile → Claim fees. Balances sit in TrenchEscrow until claimed.README 전문 보기 ↗Instant B20 launchpad on Base.
One transaction creates an admin-less B20 (1,000,000,000 supply) and seeds a locked Uniswap v4 pool against ETH or a Base stock B20.
Every swap pays 1% of the quote asset (ETH, or the stock you paired against):
| Recipient | Share of the 1% |
|---|---|
| Creator | 50% |
| Platform wallet | 30% |
| Referrer | 20% |
No referrer → the 20% goes to the platform. For the first 20 seconds the total fee starts at 99% and decays to 1%; the extra above 1% is anti-snipe and goes to the platform.
Launch is free — Base gas only. No protocol creation fee.
Claim from Profile → Claim fees. Balances sit in TrenchEscrow until claimed.
| Contract | Role |
|---|---|
TrenchFactory | create B20, seed pool, token profiles |
TrenchLocker | owns the v4 position forever (no withdraw) |
TrenchRouter | buy/sell, 1% fee, referral, anti-snipe |
TrenchEscrow | claimable quote (ETH or stock) for creator / platform / referrer |
TrenchProfiles | user identity + first-write-wins global referrer |
Platform wallet (30% of swap fees):
0x8564d4849A520D9373f3FB3BCC91c7400E3089B6
cd contracts
export RPC_URL=https://mainnet.base.org
export PRIVATE_KEY=0x...
export PLATFORM=0x8564d4849A520D9373f3FB3BCC91c7400E3089B6
forge script script/Deploy.s.sol --rpc-url $RPC_URL --broadcast --verify
Live on Base (chain 8453), ETH + stock pairs:
Factory tx: 0xec4e1b5b…6f4a
On a stock pair, buyers spend that stock B20 (approve + transfer), not ETH. ETH is still required for gas. The deployer private key lives only in gitignored contracts/.env and is never sent to Vercel.
Login is Privy (wallet, Google, or Farcaster). Create an app at dashboard.privy.io, allow localhost:3000, and set NEXT_PUBLIC_PRIVY_APP_ID.
cd web
cp .env.example .env.local
npm install
npm run dev
/ board — live fill tape, spotlight token, stat strip, sortable tile grid/dashboard full board — grid or table, search, sort and pair filters/launch create/token/[address] chart, market stats, live fills, trade panel, referral link/profile/[address] identity, fee claim, global referral, launches/mini Farcaster mini app (no extra login — uses the in-app wallet)Farcaster Mini App lives at /mini. It auto-uses the in-client wallet (no Privy login). Preview in Warpcast developer tools after deploying, then sign /.well-known/farcaster.json for the live domain.
Sort by New, Top volume or Most traded; filter by ETH or stock pairs. Volume on a tile is denominated in that pool's own quote asset, so an AAPL-paired token reads in AAPL and never gets added to an ETH total.
The site is browsable without NEXT_PUBLIC_PRIVY_APP_ID — the board, charts
and contract reads all work from Base, and only login is disabled. Set the key
to enable wallet, Google and Farcaster login.
Next.js route handlers under web/app/api. Base is the source of truth; the
database is an index in front of it.
Every write is proved against the chain first. A client posts a tx hash and
nothing else that counts — the server pulls the receipt, finds the Launched
event from our factory or the Trade event from our router, and stores what
those say. Amounts, side, trader and quote asset are never taken from the
request body, so the volume on the board cannot be inflated by anyone holding
the anon key (it ships in the bundle — it always was public).
| Route | Does |
|---|---|
GET /api/tokens | board, with ?q=, ?creator=, paging |
POST /api/tokens | index a launch from { tx_hash } |
GET /api/tokens/[address] | one token + its rolled-up stats |
GET /api/trades | fills, by ?token= or ?trader= |
POST /api/trades | index a fill from { tx_hash } |
GET /api/stats | totals + top tokens, aggregated in Postgres |
GET /api/profiles/[address] | cached profile, falls back to a live read |
POST /api/profiles/[address] | refresh that cache from TrenchProfiles |
POST /api/upload | launch logo, type-sniffed, service-role write |
GET /api/health | which env vars actually landed on this deploy |
Stock pairs count now. The old client hardcoded amount_eth: 0 for
anything not paired against ETH, so every AAPL- or TSLA-paired fill recorded as
zero volume. Trades carry quote and amount_quote scaled by that asset's own
decimals (8 for a stock B20, 18 for ETH); amount_eth stays populated only for
ETH pairs, so "volume in ETH" never sums Apple shares into it.
Setup:
supabase/schema.sql. Upgrading an existing
database instead: run supabase/migrations/0001_backend.sql first, then
schema.sql (it is idempotent).SUPABASE_SERVICE_ROLE_KEY in Vercel. Server-side only — the
NEXT_PUBLIC_ prefix would publish it, and it bypasses RLS./api/health after deploying. ready: true means the keys, the RPC and
the database all answered.RLS is now read-only for the anon key; writes happen with the service role
behind the API. npm test in web/ covers the decode and the amount scaling.
Do not commit .env, .env.local, or .env.production. Copy web/.env.example locally, and paste the same NEXT_PUBLIC_* keys into the Vercel project settings. Never add PRIVATE_KEY.
Import the app on Vercel from GitHub:
Hamxxer33/trench-b20 (public) or Hamxxer33/trench-launchpad (private; GitHub app must be allowed).web.Unaudited. Use at your own risk.