x402 Protocol — Episode 7: Zero Services Offered Korean Crypto Sentiment. So I Built One.
I counted how many services in the world offer Korean-language crypto sentiment analysis as an API. Santiment — English only, $49–349/month. LunarCrush — English only, $49–299/month. The Tie — English only, institutional pricing. Messari — English only, x402 pay-per-request. Sentiment402 — English only, $0.10/call.
Korean? Zero. Not one service where an AI agent can call an API and get "here's what Korean retail investors are feeling right now" in a structured JSON response.
And there's an academic paper from April 2026 that says Korean news sentiment is the only one that predicts global crypto returns. Not US sentiment. Not Chinese. Korean.
So I built it.
What This Post Covers
Building a Korean crypto sentiment analysis endpoint from scratch — the market research that confirmed zero competition exists, a data source that turned out to be useless, the realization that exchange data I was already collecting was the real sentiment signal all along, and getting the whole thing running at $0.003 per AI call with a lazy caching system that keeps costs near zero.
The Data Source That Wasn't What I Expected
My first instinct was news. Korean crypto news, fed through an AI model, turned into an English sentiment report. Simple enough.
Coinness runs a public Telegram channel (@coinnesskr) that pushes Korean crypto headlines in real-time. Their web mirror lets you scrape the last 20 messages without authentication. I tested it from my server — worked perfectly. Headlines plus full article text, no API key needed.
Then I actually read the messages.
Justin Sun depositing 300 million JST. Canaan mining 89 BTC in March. UK crypto regulation update. Pakistani stablecoin announcement. Federal Reserve commentary.
Twenty messages. Every single one was a Korean translation of global news. Not a single headline about Upbit policy changes, Korean regulatory moves, Bithumb listing decisions, or anything a global trading agent couldn't already get from English sources.
If I scraped Coinness and translated it back to English, I'd be offering... the same news everyone already has, with an extra translation step. Zero value added.
That was a deflating 30 minutes. I had my data pipeline ready and the data was worthless for my use case.
The Reversal: The Data I Already Had
Then it hit me. I'd been thinking about sentiment wrong.
News tells you why something is happening. But exchange data tells you what is actually happening. And for a trading agent making real-time decisions, the "what" matters more than the "why."
Look at what I was already collecting every 60 seconds from Episode 5:
Kimchi premium at +5% with volume surging? That's Korean retail FOMO — bullish sentiment, plain as day. Premium crashing to -10% with investment warnings popping up? That's panic selling — bearish. DEPOSIT_AMOUNT_SOARING flags active on multiple tokens? Capital flowing in — bullish. Reverse premium widening across the board? Korea's weaker than global — bearish.
My exchange intelligence data was the sentiment. I just hadn't framed it that way.
The final design combined both: exchange data as the core signal (the stuff nobody else has), plus Coinness headlines filtered by Korean keywords (60+ terms covering exchanges, regulators, politicians, and crypto-specific Korean terminology) for context. Feed both into Claude Haiku, get an English report with a sentiment score from -1.0 to +1.0.
Price: $0.05 per call. Half of what Sentiment402 charges, and they don't cover Korean at all.
$0.003 Per Call — Making It Sustainable
Here's the problem with AI-powered endpoints: every call costs money. Claude Haiku isn't free. If I ran sentiment analysis every 5 minutes like I originally considered, that's 288 calls per day, roughly $0.86 daily, $26/month. For a service with zero paying customers, that's just burning cash.
The solution: lazy calling with a 1-hour cache.
The API doesn't call Claude until someone actually requests sentiment. When a request comes in, it checks the cache. If there's a result less than an hour old, it returns that instantly (0.0001 seconds). If the cache is stale or empty, it calls Claude, caches the result, and returns it.
Safety measures I added after reading too many "my API bill exploded" horror stories: an asyncio lock so 10 simultaneous cache misses don't trigger 10 Claude calls (only the first one fires, the rest wait). Retry logic with exponential backoff for 429 rate limits. Graceful degradation — if Claude fails entirely, the API returns the last cached result even if it's expired, with a _stale: true flag. And a disk backup so server restarts don't lose the cache.
Cost per Claude call: $0.003. Input: ~2,000 tokens. Output: ~200 tokens. Maximum daily cost even with constant traffic: $0.07. With zero traffic (the current reality): $0.
"BEARISH (-0.65)"
First real test. Here's what came back:
That's exchange data (kimchi premium -1.38%, 13 tokens flagged) combined with news context (Q1 market crash, VC contraction) — synthesized into a paragraph that a trading agent can actually use. The -0.65 score gives a quick read; the text gives the reasoning.
The European Journal of Finance paper I mentioned earlier found that Korean news sentiment uniquely predicts both Korean and global crypto returns. Their analysis covered 500,000+ news articles. The prediction power disappeared when Korean won trading volume exceeded dollar volume — meaning Korean sentiment is most useful precisely when it's a leading indicator, not a lagging one.
RootData's market analysis backs this up: Korean political and regulatory changes surface in Korean media first, show up in Upbit/Bithumb KRW pairs next, and reach English media hours to days later.
That time gap is the entire value proposition of this endpoint.
The Data You Already Have
I spent 30 minutes building a Coinness scraper before realizing the data I actually needed was already flowing through my existing polling system. The exchange intelligence from Episode 5 — 189 token premiums, volume surges, deposit anomalies, investment warnings — turned out to be a better sentiment signal than any news feed.
v1.3.0 went out across all 11 platforms. Eleven tools now, up from 10. The kr-sentiment endpoint joined the lineup at $0.05/call. Every platform picked it up — Smithery saw 11 tools, xpay.tools updated to 11, Glama maintained AAA 100 points with the new build.
Eleven endpoints. Eleven platforms. Server cost: still $0. The only variable cost is Claude at $0.003 per sentiment call, and that only runs when someone asks.
Sometimes the best data source isn't the one you go looking for. It's the one that's been sitting in your database the whole time, waiting to be read differently.
What's Next
Eleven endpoints, eleven platforms, and now one feature that literally nobody else offers — Korean crypto sentiment analysis as an API. Paid requests are still at zero, but the product is getting harder to ignore. The next episode will cover what happens when I start pushing this into channels where real agents actually make buying decisions. The $0 bet continues.
← Previous: Episode 6: 10 Platforms, Zero Paid Requests Next: Episode 8: 9/9 Indexed on Agentic.market →
More updates on the way. If you're working on something similar or found a smarter way to do it, drop it in the comments — the more we share, the faster we all move.
Disclaimer: This blog documents my personal learning journey. Nothing here is financial advice.
Comments
Post a Comment