Oracle3
Oracle3: 예측시장 거래 엔진·MCP 서버
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Most AI apps ask for a monthly subscription to one company's models. Synaps works the other way round:
| 💬 Chat | Streaming replies with Markdown and code blocks, model name and cost on every reply, synced history per wallet |
| 🌐 Web search | One toggle; the model reads live results and cites numbered sources |
| 📎 Attachments | Photos, PDFs and text/code files, with a capability check and a one-tap switch to a model that can handle them |
| 🎨 Image generation | Image mode for models that create pictures, with download |
| 🧭 Custom instructions | Default language, tone and context applied to every reply, synced across devices |
| 🔗 Share links | Read-only public snapshot of a chat, with Stop sharing |
| 🔑 API keys | OpenAI-compatible /api/v1, per-key daily spend limits, streaming, tool calling, JSON mode |
| 💸 Top-ups | ETH on Robinhood Chain or Base, USDC on Base, verified on-chain and credited once per transaction |
| 🎁 Referrals | Invite link on the Wallet page; both sides get bonus credit on the friend's first top-up |
| 🪙 $SYNAPS ready | The token is detected automatically when the treasury launches it on Pons, then becomes a top-up option with bonus credit |
| 📱 Installable | PWA with offline screen and app shortcuts on Android, iOS and desktop |
| 📊 Admin dashboard | OpenRouter credit and runway, treasury balances, revenue and profit, top models, alerts |
Create a key on the API keys page, then point any OpenAI client at Synaps.
curl https://www.synaps.chat/api/v1/chat/completions \
-H "Authorization: Bearer $SYNAPS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5.5",
"messages": [{ "role": "user", "content": "Hello!" }]
}'
from openai import OpenAI
client = OpenAI(base_url="https://www.synaps.chat/api/v1", api_key="syn_...")
reply = client.chat.completions.create(
model="anthropic/claude-sonnet-5.5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(reply.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://www.synaps.chat/api/v1", apiKey: process.env.SYNAPS_API_KEY });
const stream = await client.chat.completions.create({
model: "google/gemini-3.8-flash",
messages: [{ role: "user", content: "Write a haiku about block times." }],
stream: true,
});
for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
GET /api/v1/models lists every model with its live price, context length and input/output modalities. Every response includes usage.cost, the amount charged in USD. Full reference: synaps.chat/docs.
flowchart LR
W[Wallet] -- sign message --> S[Synaps]
W -- ETH / USDC / $SYNAPS --> T[(Treasury)]
S -- verify receipt on-chain --> C[Robinhood Chain / Base]
S -- credit USD balance --> DB[(Supabase)]
U[Chat or API key] --> S
S -- route request --> OR[OpenRouter] --> M[Claude · GPT · Gemini · …]
M -- reply + usage.cost --> S
S -- debit cost × (1 + fee) --> DB
All balances are stored in micro-dollars (USD × 10⁶) and changed only inside database functions, so credits and debits are atomic.
Requirements: Node.js 20+, a Supabase project, an OpenRouter key and a Privy app.
git clone https://github.com/onsynaps/Synaps-.git synaps
cd synaps
npm install
cp .env.example .env.local # fill in the required values
supabase/schema.sql. It creates the tables and functions and locks them to the service role.http://localhost:3000 (and your domain) to Allowed domains.npm run dev
The landing page is at http://localhost:3000, the app at /app, the docs at /docs and the admin dashboard at /app/admin (for the wallets in ADMIN_ADDRESSES).
| Variable | Required | Purpose |
|---|---|---|
OPENROUTER_API_KEY | ✓ | Routes requests to model providers |
SUPABASE_URL / SUPABASE_SERVICE_ROLE_KEY | ✓ | Database (server only) |
SESSION_SECRET | ✓ | Signs session cookies |
NEXT_PUBLIC_TREASURY | ✓ | Wallet that receives top-ups |
NEXT_PUBLIC_PRIVY_APP_ID | ✓ | Wallet connection |
NEXT_PUBLIC_SITE_URL | ✓ | Canonical URL for links, sitemap and the API base |
MARKUP | Fee on top of provider cost (default 0.2) | |
FREE_DAILY_LIMIT / FREE_GLOBAL_DAILY_LIMIT | Free-model allowance per visitor and in total | |
WEB_SEARCH_FEE_USD | Flat fee per web-search message | |
REF_* | Referral percentages, cap and minimum | |
SYNAPS_* | $SYNAPS bonus and manual token or pool override | |
ADMIN_ADDRESSES, LOW_CREDIT_USD | Admin access and the credit alert level | |
RH_RPC_URL, BASE_RPC_URL | RPC endpoints (a private RPC is recommended in production) |
See .env.example for every option and its default.
app/
page.tsx landing page
app/ the app: chat, wallet, API keys, models, admin
api/ chat, auth, top-ups, keys, chats, share, referral, token, admin
api/v1/ OpenAI-compatible API (chat/completions, models)
models/ public, indexable model pages
docs/ documentation
s/[id]/ shared chats
components/ UI: landing, app shell, docs kit, logo, PWA
lib/ billing relay, models, sessions, chains, pricing, token detection
supabase/schema.sql database schema and functions
public/ icons and service worker
Found a vulnerability? Please report it privately by DM to @onsynaps rather than opening a public issue.