klout Oracle v0
The first Social Engagement Oracle powering Social Dynamic Bonding Curves (SDBCs) and tweet‑to‑trade execution on klout.bet - built to make attention verifiable, timestamped, and tradable across platforms.
Overview
The Klout Oracle started as a fix for tweet‑to‑trade execution issues - API limits, delayed responses, and inconsistent engagement reads. We needed a way to pull tweet metrics fast, verify them, and make sure every trader saw the same numbers at the same block height.
It quickly became much more: a verifiable attention layer for any app wanting to build on top of real‑time social engagement.
Quick Start
What it does
Pulls engagement metrics from X: likes, reposts, replies, quotes, and views.
Signs + timestamps each observation off‑chain.
Publishes a proof on Solana that other contracts can verify.
Exposes the same data via REST + WebSocket APIs.
Who it’s for
Bonding curve markets (SDBCs)
Prediction / attention trading platforms
Indexers, dashboards, or risk engines
5‑Minute Integration Example (yes example)
Output example:
Why It Exists
We’ve built klout.bet around the idea that attention is an asset. But assets need verifiable data to be priced and traded correctly.
API calls from X aren’t deterministic, you can’t settle a market on something that might change or be rate‑limited. So the Oracle signs every observation, publishes it on‑chain, and gives both traders and developers a common source of truth.
This is what allows tweet‑to‑trade markets to execute fairly and lets other projects use the same engagement proofs without trusting our servers.
Architecture
Ingestor: pulls tweet metrics directly from X API shards.
Normalizer: cleans data, deduplicates, and calculates velocity/decay.
Signer: hashes and signs observations with Ed25519 keys held in an HSM.
Relayer: submits Merkle roots to Solana.
API Layer: streams verified observations over REST + WebSocket.
Program ID: KLOUTORACLE1111111111111111111111111111111 (placeholder)
Data Model
Example log during signing:
REST + WS API
REST
Returns latest signed observation.
WebSocket
Pushes real‑time engagement updates within ~250ms of change.
Example stream message:
Verification and Security
Signatures: Ed25519 over canonical JSON (blake3 hash).
Freshness: observations expire after 2 minutes unless refreshed.
Replay Protection: unique
(tweetId, nonce)pair.Key Rotation: controlled by Klout governance, dual‑sign grace period.
Hardware Signing: keys inside a dedicated HSM node.
Merkle Proofs: periodically pinned on-chain for auditability.
Deterministic Transforms
We keep transforms public so anyone can recompute the same price:
All constants (alpha, beta, etc.) are versioned and pinned in the SDK for reproducibility.
Tweet‑to‑Trade Execution
This Oracle directly fixes the issues we had with early tweet‑to‑bet orders:
Before: API delays caused missed fills when a tweet blew up.
Now: trades settle against the latest verified observation signed and timestamped at block height.
Example:
Governance & Roadmap
Governance: parameter updates, key rotations, and curve coefficients are proposed through Klout governance. All SDKs pin to parameter epochs to ensure determinism.
Roadmap:
v0 — tweet observations → Solana proofs (live)
v0.1 — creator‑level streams (aggregated per account)
v0.2 — cross‑chain relay to EVM
v1 — multi‑platform data (TikTok, YouTube)
Contact
Dev support: @faxonchain on X
© Klout.bet — built by humans obsessed with making attention tradable.
Last updated