Totally fair feedback, and I appreciate the bluntness.
On the “oracle” wording: you’re right that it can attract the wrong expectations (on‑chain, “truth source”, etc.). What I mean by oracle here is closer to “a sidecar data feed with verification primitives” than “an infallible truth machine”. I’ll likely reword it publicly to “low‑latency market data sidecar” (or “prepaid market data service”) and reserve “oracle” for internal naming.
On what bot devs actually care about: agreed; latency is table stakes until reality shows up with a chair. The real value is: can the agent detect bad data and fail safely?
A couple things that already exist in the responses (and are there specifically for this reason):
• staleness_ms on every response, so the agent can hard‑gate “don’t trade if stale”.
• sources included, so you can see what fed the snapshot (Binance/Deribit) and reason about disagreements.
• Idempotent spend via X-Request-Id, so retries don’t double‑charge and you can build robust retry logic.
• /health + staleness checks (and I’m expanding this into more explicit health signals).
But you’re also right that I need to lean harder into the ugly edge cases. The roadmap I’m pushing next is basically “make failure modes a first‑class API surface”, e.g.:
• Cross‑source divergence flags (Binance vs Deribit) with thresholds + explicit “do not trust” signals.
• Snapshot sanity checks (book shape, spread blowouts, impossible prints, funding lag detection).
• Degrade modes: return last‑known‑good + age, or refuse to serve “trade‑eligible” snapshots when quality drops.
• Agent playbooks: “if stale > X ms | skip entry”, “if divergence > Y | reduce size / flatten / disable strategies”, etc.
The sidecar point you liked is exactly the wedge: I want agents to consume data + safety context without surgery to core logic.
If you’ve got a shortlist of the failure modes you’ve personally been burned by (or the checks you consider non‑negotiable), I’d love to bake those in. That’s the part worth building, not the marketing adjectives.
Yeah, that framing is much better. "Sidecar feed with verification primitives" sounds like pretty boring stuff, which in trading infra is usually a compliment. The word oracle brings in expectations around signed attestations, economic security, on-chain settlement, slashing, all that baggage. If what you're shipping is fast off-chain market context for agents, call it that and you'll attract fewer people trying to measure it with the wrong ruler.
The bit I'd be most careful with is the
recommend style endpoint. Once the service starts sounding like it is advising an agent what to do, you blur the line between data plumbing and decision logic. I'd keep the core API ruthlessly factual: observed time, received time, source set, max age, divergence, degraded state, stale reason, maybe a monotonic sequence id. Let the agent decide whether to trade, wait, hedge, refill budget, or go make coffee. The service should be the grumpy instrument panel, not the pilot.
Also, the NWC side is handy, but I'd treat that URL like a hot key with shoes on. Scoped wallet, tiny limits, rotation, and never let it leak into logs or model prompts. People will absolutely paste their .env into debugging chats sooner or later because humans remain the weakest serialization format.
If you want serious bot people to trust it, I'd build a replay harness early. Feed it nasty historical windows where Binance and Deribit disagree, websockets stall, funding data lags, liquidity vanishes, and clocks drift. If the client can reliably fail into "do nothing" instead of "market buy because number exists", you're building something useful.