Use case · Bitcoin social intelligence
Bitcoin social intelligence, built on X/Twitter data
Track narratives, KOLs, and tweet context across Bitcoin X — a read-only API that returns LLM-ready JSON. Find rising narratives, then drill into the exact tweet, author, and amplifiers behind them.
Rising narratives · 24h
- ETF net inflows+210%142
- Lightning capacity+96%88
- OP_CAT / covenants+54%61
- Mempool fee spike-12%40
Top amplifiers
- On-chain research desk1.2M7 quotes
- Core-dev thread430K5 quotes
built from GET /v1/search/recent/enriched
The job
Bitcoin signal is scattered and surfaces first on X — a developer thread, an ETF analyst, a sudden spike in mempool or L2 chatter. Watching it by hand is noisy and context-poor. This radar reads the public data, structures it, and hands you evidence to interpret — not trading advice.
Crypto funds & research
Track ETF, macro, mining, Lightning, L2, and Core-dev discussion before it reaches the headlines.
Project BD & growth
See who discusses your protocol, which accounts move the narrative, and when sentiment turns.
Media & newsletters
Auto-draft a daily Bitcoin-on-X brief from structured tweets and authors.
Community & ops
Watch communities and lists for rising threads, disputes, and high-signal accounts.
Workflow A · Narrative Radar
One always-on call returns matched tweets and a de-duplicated author set — exactly what an LLM summarizer or RAG pipeline wants, with no client-side join.
GET /v1/search/recent/enriched?query=bitcoin OR $BTC&limit=20 Authorization: Bearer <api_key>
{
"data": {
"tweets": [ { "id", "text", "author_id", "quote_count" } … ],
"authors": [ { "id", "username", "verified", "follower_count" } … ]
},
"meta": { "credits": { "charged": 41 }, "pagination": { "next_token": "…" } }
}Workflow B · Tweet Dossier
Paste a hot BTC tweet id. One call returns the tweet, its author, its quotes, and its retweeters — so you can answer why it is spreading, who is amplifying it, and what the counterpoints are. Go deeper with thread and conversation.
GET /v1/tweets/1234567890/context Authorization: Bearer <api_key>
{
"data": {
"tweet": { … },
"author": { … },
"quotes": [ … ],
"retweeters": [ … ]
},
"meta": { "credits": { "charged": 3 } }
}The full radar
KOL Watchlist
Configure account monitors in the dashboard and deliver updates to generic webhooks or Discord incoming webhooks. Included with monthly plans; deliveries are not credit-metered.
dashboard monitors + delivery channels
Community Scanner
Treat Bitcoin communities and curated lists as high-signal sources: search them and pull their tweets.
GET /v1/communities/search
Daily Brief
Combine enriched search with profile lookups and your own LLM to generate a daily summary.
GET /v1/profiles/by-username/:username
What will it cost?
Estimate credits from your monitoring shape. Numbers compute from current pricing; failed calls, rate limits, and service-side errors are never charged.
Estimated monthly credits472,320
Recommended planGrowth monthly
Planning estimate at current pricing, not a billing quote. PAYG-equivalent ≈ $71/mo.
Copy-paste starter
A dependency-free TypeScript starter: query enriched search, tally the loudest authors, and print what the call cost. Clone the full template — coming soon.
/**
* Minimal Bitcoin "Narrative Radar" with xfetch — no dependencies.
* Run: XFETCH_API_KEY=sk_live_... npx tsx radar.ts
*/
const API = "https://api.xfetch.io";
const KEY = process.env.XFETCH_API_KEY;
const QUERY = 'bitcoin OR $BTC OR "Bitcoin ETF"';
async function main() {
if (!KEY) throw new Error("Set XFETCH_API_KEY");
const url = new URL("/v1/search/recent/enriched", API);
url.searchParams.set("query", QUERY);
url.searchParams.set("limit", "20");
const res = await fetch(url, { headers: { Authorization: `Bearer ${KEY}` } });
if (!res.ok) throw new Error(`xfetch ${res.status}`);
const body = await res.json();
const data = body.data ?? { tweets: [], authors: [] };
const authors = new Map();
for (const a of data.authors) authors.set(a.id, a);
const counts = new Map();
for (const t of data.tweets) counts.set(t.author_id, (counts.get(t.author_id) ?? 0) + 1);
const ranked = [...counts.entries()]
.sort((a, b) => b[1] - a[1])
.slice(0, 5)
.map(([id, n]) => `${n}x @${authors.get(id)?.username ?? id}`);
console.log("Top rising authors:\n" + ranked.join("\n"));
console.log("\nCredits charged:", body.meta?.credits?.charged);
}
main().catch((e) => { console.error(e); process.exit(1); });
Boundaries
Intelligence, not advice
This is social intelligence and evidence, not trading signals, price predictions, or investment advice.
Read-only
xfetch reads public data. It does not post, like, repost, follow, or DM. You interpret; a human decides.
Bring your own LLM
xfetch returns normalized JSON. Summarization, clustering, and scoring run in your own pipeline.
Related workflows
Social listening
The general brand- and topic-monitoring workflow this Bitcoin radar is built on.
Coming soonTweet context
Drill into any tweet's author, quotes, and retweeters for research and moderation.
Coming soonFAQ
- Is this a trading or alpha product?
- No. xfetch is a read-only data API. This use case structures public X/Twitter data into evidence; it does not give buy/sell signals or investment advice.
- Which endpoints does the radar use?
- Primarily GET /v1/search/recent/enriched for discovery and GET /v1/tweets/:id/context for drill-down, plus communities, lists, and profile lookups for breadth.
- How are KOL updates monitored?
- Account monitors are configured in the dashboard and deliver updates to generic webhooks or Discord incoming webhooks. They are included with monthly plans and are not credit-metered.
- How much does it cost to run?
- It depends on how many topics you track and how often you poll. Use the calculator above; at the default preset it lands around the Growth plan.