记忆

Oracle-X API

试用

Read live market intelligence from a running Oracle-X terminal — spot prices and candles for crypto (BTC, ETH, SOL) and equities, computed support/resistance zones, news with its LLM analysis, macro regime, per-chain metrics, liquidations, funding rates, open interest, whale flow, institutional ownership, Polymarket prediction-market odds, and a vector memory of past market events. Use this whenever the user asks what an asset is doing, why it moved, where its levels are, what the news means, how the macro backdrop looks, who is holding it, what the market odds on an event are, or what happened last time conditions looked like this — and whenever ORACLE_X_URL is set or something is listening on localhost:8000. Prefer it over generic web search for anything the terminal already tracks, because the terminal's numbers are cached, cross-checked and timestamped. Borsa İstanbul is deliberately not here — BIST, TEFAS, KAP and VİOP are the sibling skill oracle-x-bist, on the same instance.

它能做什么

Read live market intelligence from a running Oracle-X terminal — spot prices and candles for crypto (BTC, ETH, SOL) and equities, computed support/resistance zones, news with its LLM analysis, macro regime, per-chain metrics, liquidations, funding rates, open interest, whale flow, institutional ownership, Polymarket prediction-market odds, and a vector memory of past market events. Use this whenever the user asks what an asset is doing, why it moved, where its levels are, what the news means, how the macro backdrop looks, who is holding it, what the market odds on an event are, or what happened last time conditions looked like this — and whenever ORACLE_X_URL is set or something is listening on localhost:8000. Prefer it over generic web search for anything the terminal already tracks, because the terminal's numbers are cached, cross-checked and timestamped. Borsa İstanbul is deliberately not here — BIST, TEFAS, KAP and VİOP are the sibling skill oracle-x-bist, on the same instance.

技能文档

Oracle-X

Oracle-X is a self-hosted financial intelligence terminal: a FastAPI backend that pulls equities and digital assets into one universe, keeps a vector memory of what it has seen, and reasons over both through an LLM layer the operator chooses. This skill is the read side of that backend.

Prerequisite: an instance has to be running. This skill talks to a server; it is not a data source of its own. If nothing answers, say so — do not fall back to remembered prices. A number invented for a trading question is worse than no number.

Setup

Two environment variables, and neither belongs in a file you write:

VariableMeaning
ORACLE_X_URLInstance base URL. Default http://localhost:8000.
ORACLE_X_TOKENSupabase JWT, only for the authenticated endpoints.

Confirm the instance is alive before the first real call:

curl -sf "${ORACLE_X_URL:-http://localhost:8000}/api/system/health" | head -c 400

/api/system/health is passive — it reports what the last real call to each upstream did and issues no requests of its own, so polling it costs nothing. A category reporting degraded there explains an empty payload downstream better than any retry will.

If the connection is refused, tell the user the terminal is not running and stop. If a specific category is down, answer with what the healthy categories returned and name the gap.

Choosing an endpoint

Most requests are one call. Find the row, read the endpoint's full parameters in references/endpoints.md, call it.

The user wantsCallWhy this one
A current priceGET /api/price/{symbol}Resolves crypto and equities through whichever upstream answers; 404 means unresolved, never a placeholder.
The state of the marketGET /api/market-overviewTop coins, dominance, global volume and sentiment in one payload.
Index levels (S&P, NASDAQ, DXY, …)GET /api/market/indicesShares the macro board's cache, so it agrees with the macro page.
Support, resistance, RSI, trendGET /api/technical/{symbol}Zones are built per timeframe and scored by how many horizons confirm them. Do not recompute this from candles.
Raw OHLCVGET /api/market/candles/{symbol}Only when you genuinely need the series — for levels, use /api/technical.
Company fundamentalsGET /api/asset-detail/{symbol}?type=stockP/E, sector, 52-week range, analyst targets. type=stock is required for equities; the crypto branch resolves through CoinGecko and 404s on a symbol it cannot map.
SentimentGET /api/fear-greedBoth the crypto and equity gauges.
Latest newsGET /api/news?limit=…&asset_type=…Served from the scheduler's cache.
What a specific article meansGET /api/news/{news_id}/analysisThe cached LLM read. If absent, start a job (below).
A market-wide written reportGET /api/analysis/report/{timeframe}The stored daily/weekly report. Reading never triggers generation.
Macro backdropGET /api/macro/boardIndices, metals, commodities, ratios.
"What kind of market is this?"GET /api/macro/regimeA computed label and score, plus a written note. The label is always present; the note may not be.
Chain activity, fees, congestionGET /api/chains/boardPer-chain metrics under one adapter contract.
Something unusual on-chainGET /api/chains/anomaliesMeasured against each chain's own baseline, not a global threshold.
LiquidationsGET /api/home/liquidations, GET /api/liquidations/map/{symbol}Aggregate first, then the per-symbol map. /levels/ is a histogram of what already happened and needs price_min and price_max; /map/ is the forward-looking estimate and needs neither.
Funding / leverage positioningGET /api/home/funding-rates
Whale movementGET /api/onchain/whalesLarge-transaction flow with direction.
Who holds this stockGET /api/ownership/assets/{symbol}Institutional positions for one ticker.
What holders are doing overallGET /api/ownership/consensus, GET /api/ownership/movesConsensus is the state; moves are the deltas.
"Has this happened before?"GET /api/rag/query?q=…&symbol=…The vector memory. This is the reason to prefer Oracle-X over a search engine.
History behind one symbolGET /api/rag/insights/{symbol}
Two assets comparedGET /api/rag/compare/{a}/{b}
A briefing to start the dayGET /api/rag/daily-brief
"What if X happened?"POST /api/rag/scenarioGrounded in stored history rather than free speculation.
An open-ended questionPOST /api/chat (auth)The terminal's own reasoning layer, with tools over everything above.
The user's tracked symbolsGET /api/home/watchlist (auth)

Anything not in this table is in references/endpoints.md — read that before inventing a path. Guessed URLs return 404s that look like missing data.

Rules that keep the answer honest

These matter more than endpoint coverage, because the failure they prevent is the one that costs the user money.

Report what the API returned, and nothing else. A 404 from /api/price or /api/technical means the symbol could not be resolved — the backend deliberately refuses to emit a placeholder. Say "the terminal has no price for that symbol" rather than supplying one from memory.

Do not recompute what the terminal computed. /api/technical already builds zones per timeframe and scores them by confluence. Deriving your own support level from candles produces a number that contradicts what the user sees on their own screen, which is worse than not answering.

Reach for /api/chat deliberately. It runs the full planner and costs an LLM call on the operator's own provider budget. For "what is BTC trading at", call /api/price. For "should I be worried about this setup", the chat endpoint is the right tool — it has the same data plus the memory and the reasoning. Check GET /api/chat/status first; it says whether a provider is actually serving.

Timestamps are part of the answer. Most payloads carry one. Market data without a time is a claim about now that may be about an hour ago; quote it.

Send the symbol in the form the endpoint expects. Crypto pairs are BTCUSDT or BINANCE:ETHUSDT; equities are the plain ticker with ?type=stock where the route takes one. A 404 on a symbol you believe exists is usually the wrong form rather than missing data — references/endpoints.md records which routes care.

Fan out rather than asking one endpoint to do everything. There is no single "tell me about X" call. A full read on an asset is four independent requests — price, technicals, leverage, memory — and since none depends on another they cost one round trip when issued together. references/recipes.md has the sequence.

Long-running work: the job pattern

Analysis and chat generation take minutes, so they are not held open on a connection. Three endpoints follow the same shape — start, then poll:

StartPollNote
POST /api/analysis/jobs/{timeframe} (auth)GET /api/analysis/jobs/{job_id}An in-flight job returns its existing id rather than starting a second run.
POST /api/news/{news_id}/analysis/jobsGET /api/news/analysis/jobs/{job_id}Check GET /api/news/{news_id}/analysis first — it may already be cached.
POST /api/chat/jobs (auth)GET /api/chat/jobs/{job_id}Same pipeline as POST /api/chat, but the steps are reported while they run.

Poll on an interval of a few seconds and give up after a couple of minutes with an explanation, rather than blocking indefinitely. examples/03_chat_job.py implements this loop.

Authentication

Most of what an agent needs is open on a default instance: prices, technicals, news, macro, chains, liquidations, ownership, RAG. Authentication is needed only for endpoints scoped to a person — chat, watchlist, and starting an analysis job.

Send the JWT as Authorization: Bearer $ORACLE_X_TOKEN. Read it from the environment; never write it into a file, a URL, or a log line. If it is absent and the user's question needs an authenticated endpoint, ask them for it rather than falling back to an unauthenticated call that will 401.

A 404 on GET /api/chat/jobs/{job_id} may mean the job belongs to someone else — the backend answers 404 rather than 403 there on purpose, so do not read it as "the job vanished".

references/auth.md covers where a token comes from and how to test one.

A first call

BASE="${ORACLE_X_URL:-http://localhost:8000}"

curl -sf "$BASE/api/price/BTCUSDT"
curl -sf "$BASE/api/technical/AAPL"
curl -sf "$BASE/api/rag/query?q=bitcoin%20halving%20price%20behavior&symbol=BTC"
curl -sf -H "Authorization: Bearer $ORACLE_X_TOKEN" \
     -H 'Content-Type: application/json' \
     -d '{"message":"How does the current BTC setup compare to March?"}' \
     "$BASE/api/chat"

Symbols follow the venue: crypto pairs are BTCUSDT or BINANCE:ETHUSDT, equities are the plain ticker, AAPL. Passing AAPL where a pair is expected used to route an equity through the crypto path; the backend now decides by inspecting the symbol, but sending the right form is still cheaper.

When something goes wrong

SymptomReading
Connection refusedNo instance. Say so and stop; do not answer from memory.
404 on a price or technical callThe symbol could not be resolved. Check the form (BTCUSDT vs BTC).
Empty list, 200 statusThe scheduler has not filled that cache yet. Check /api/system/health for the category.
401Missing or expired ORACLE_X_TOKEN.
503 on chatNo LLM provider is currently serving. GET /api/chat/status names it.
A stale flag in the payloadReal data, but the upstream last answered a while ago. Quote it as such.

Reference files

Read these on demand rather than upfront:

  • references/endpoints.md — every allowlisted endpoint with its parameters, request body and response fields. Generated from the running schema, so it matches the deployed API. Consult it before any call that is not a plain path from the table above.
  • references/auth.md — obtaining and using a token, and which endpoints need one.
  • references/recipes.md — the multi-step reads: a full asset workup, a news-to-thesis pass, a macro-plus-chains regime check.
  • examples/ — runnable Python (httpx) for the client, the job polling loop, and a complete asset workup.

相关技能

Use this skill when the user wants to query cryptocurrency market data, sentiment, ETF flows, funding rates, OI, long/short ratios, or asks to use UEXX Data...

13 次安装

Use CoinMarketCap MCP through UXC for crypto market quotes, technical analysis, on-chain metrics, global market overview, narratives, macro events, news, and...

19 次安装

Fetch cryptocurrency OHLCV candle data and judge whether the market is in a one-way bullish or bearish trend. Use when the user asks to pull crypto market da...

5 次安装1 星标

Polymarket intelligence for AI agents — track smart money, see what others miss. Real-time prediction-market signals across 42K markets: quality-gated repric...

1 次安装

Pulls prediction-market odds, order books, and forecast questions from Polymarket, Kalshi, and Metaculus via the Crawlora API, returning clean JSON. Use when the user asks what the market thinks will happen, wants current odds/prices for an event, wants a market's price history or order book, or wants a forecasting community's aggregate prediction on a question.

1 次安装

Crypto & DeFi market data for AI agents — spot prices, market data, DEX liquidity, DeFi protocol TVL, gas prices, Fear & Greed sentiment, trending coins, and...

1 次安装