<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KeyPair Infra — Field Notes</title><description>Engineering write-ups from KeyPair Infra — LLM applications, blockchain tooling, and edge architecture, from real projects.</description><link>https://keypairinfra.com/blog/</link><atom:link href="https://keypairinfra.com/rss.xml" rel="self" type="application/rss+xml"/><item><title>Showing the work: how TRONORIGIN explains every score</title><link>https://keypairinfra.com/blog/showing-the-work/</link><guid isPermaLink="true">https://keypairinfra.com/blog/showing-the-work/</guid><description>How we built TRONORIGIN&apos;s origin-tracing engine to explain every score — signal by signal — and why an auditable heuristic beats a black box for forensic work.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Shipping a streaming Claude assistant on Cloudflare Workers</title><link>https://keypairinfra.com/blog/streaming-claude-on-workers/</link><guid isPermaLink="true">https://keypairinfra.com/blog/streaming-claude-on-workers/</guid><description>The SSE newline-framing bug that silently corrupts streamed tokens, the fix, plus HMAC-signed history, atomic Durable-Object rate limiting, and why the assistant hydrates lazily.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Welcome to Field Notes</title><link>https://keypairinfra.com/blog/hello-field-notes/</link><guid isPermaLink="true">https://keypairinfra.com/blog/hello-field-notes/</guid><description>Notes from the workshop — what we&apos;re building at KeyPair Infra and what we&apos;ll write about here.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>