Why
Two 2026 incidents look unrelated and are not. Polymarket settled its short-dated crypto contracts on a single price at a single moment, and researchers at Stanford and Singapore Management University documented 821 accounts taking $8.2M out of settlement windows they classified as likely manipulated — with 93% of the losses in those windows, market makers excluded, landing on retail. Balance Coin let its lending contract accept an oracle price without checking it against a plausible range and without any liquidation delay; an attacker wrote an abnormally low bitcoin price, instantly liquidated vaults that were never eligible, and took roughly $912,000, collapsing a $3.5M stablecoin by more than 99%.
Neither was a cryptographic failure and neither required a bug in the contract's arithmetic. Both read one price at one instant and treated it as truth. What makes this a card rather than two postmortems is that the fix is a parameter, not a principle: how long must an averaging window be, and how tight must a validation band be, before moving the input costs more than the payoff it unlocks?
And the other half of the card is why an entire oracle architecture exists to answer that question. The distinction between Chainlink Data Feeds and Data Streams is the boundary between push and pull. A push feed has oracle nodes continuously writing prices on-chain on deviation thresholds or heartbeat intervals; contracts read the latest on-chain state, the price is inherently stale between writes, and the oracle network bears the gas indefinitely. A pull feed keeps high-frequency data aggregated and cryptographically signed off-chain; when a caller settles, they pull the timestamped signed report and submit it with their transaction, and the contract verifies the signature on-chain and executes against that exact moment's price.
That is not a performance improvement, it is the answer to the incident above. Prediction markets resolve on closing price at 16:00:00 UTC or price at event occurrence. A push feed may simply not hold a value for that instant — no deviation triggered an update at that second. A pull feed can fetch a report signed at it. The fix Polymarket shipped is public and specific enough to test rather than invent: the single-price snapshot replaced by a TWAP — 30 seconds for five-minute markets, 60 seconds for 15-minute and four-hour markets — sourced from Data Streams, mirroring what Kalshi already does with regulated indexes and moving averages.
The limit is worth stating plainly, because it decides how much of the problem this solves. Data Streams is a price product. It does not resolve categorical outcomes — who won an election, whether a milestone was met — which remains the domain of decentralised consensus and CRE. Since a large share of event contracts are events rather than prices, this fills roughly half the column in the event-contract-plumbing table.
How it works
Push versus pull, and why the split exists
| Data Feeds (push) | Data Streams (pull) | |
|---|---|---|
| Where the price lives | Written on-chain by oracle nodes | Aggregated and signed off-chain |
| Update trigger | Deviation threshold (e.g. 0.5%) or heartbeat (e.g. hourly) | Continuous, sub-second |
| Staleness between updates | Inherent | None — the caller fetches the instant it needs |
| Who pays gas | The oracle network, indefinitely | The caller, only when a state transition needs it |
| Price at an arbitrary timestamp | May not exist | A report signed at that millisecond |
| Cost predictability | Unbounded, borne externally | Per resolution call — computable per market |
The three knobs, and the curve that decides them
| Knob | What it does | How to size it |
|---|---|---|
| Window length | Averages away a short push | Plot cost-to-manipulate against window length; the crossing point with the payoff is the design output — not the window itself |
| Band width | Refuses an implausible price outright | Cheaper than averaging and independent of it — Balance Coin's contribution |
| Delay | Interval in which a bad price could be noticed | Not latency overhead — it is the detection window |
The cost of moving a reference venue's mid by X for T seconds is a function of book depth; the payoff is the notional held into settlement. Those two curves crossing is the whole model.
The three concrete advantages of pull
- Gas on demand — the oracle does not burn gas writing prices nobody reads.
- Sub-second latency — delivery is not bounded by block time or heartbeat.
- Millisecond granularity — which is what deterministic settlement of a dated contract requires.
Where the oracle lands in the event-contract table
event-contract-plumbing sorts regulated-stack requirements into free, must-build and no-answer. Settlement and audit trail come free on-chain. "The value at a specific moment" does not — and that is precisely what event-contract settlement turns on. Where a regulated venue solves this with market-data vendor contracts and audit-trail obligations, an on-chain venue solves it by verifying a signed report. It also answers the cost-ceiling question: paying per call makes per-market economics computable, the exact property Chainlink Functions could not deliver and the reason it sunset.
The line to carry forward
Treat the interval between oracle finalisation and trading halt as an attack surface with its own atomicity requirement, not an implementation detail. If a position can still be opened after the price that will settle it is already determined, that window is the product — and it is the same reasoning arb-bots-are-the-peg applies to a no-trade band and priced-by-the-wrong-thing applies to an instrument settling against a mark nobody publishes continuously.
Where it lands in Jayverse
- Verex: replace the single-price snapshot with a sized TWAP window. For any market resolving on price-at-an-instant, make window length and validation band explicit parameters in the resolution field (e.g. 30s/60s), and size them by pricing cost-to-manipulate against reference-venue depth first, the way Polymarket's fix does.
- Verex/Auditor: pick push or pull per market type. A market resolving on a price at a specific instant needs a pull-style signed report, not latest on-chain state; a market resolving on a categorical outcome needs decentralized consensus instead, and the resolution field should say which.
- Auditor: record the halt-to-finalization gap as its own field. Treat the interval between oracle finalization and trading halt as a named part of the audited methodology, not an implementation detail — if a position can open after the settling price is fixed, that window is the defect.
Key expressions
| Expression | 뜻 · 쓰이는 자리 |
|---|---|
| ship (verb) | (기능·제품을) 출시하다, 내놓다 · 실제로 배포된 수정 사항을 말할 때. "The fix Polymarket shipped is public" |
| bear the cost/gas | 비용을 떠안다 · 누가 계속 부담을 지는지 말할 때. "the oracle network bears the gas indefinitely" |
| sourced from | ~에서 가져온, 조달된 · 데이터의 출처를 밝힐 때. "sourced from Data Streams" |
| mirror (verb) | ~을 그대로 따라 하다, 본뜨다 · 다른 업체의 방식을 그대로 채택할 때. "mirroring what Kalshi already does" |
| fill a column | (표의 빈칸·부족한 부분을) 채우다 · 문제 해결 범위를 표현할 때. "this fills roughly half the column" |
| attack surface | 공격에 노출된 범위 · 보안상 취약할 수 있는 구간을 지칭할 때. "as an attack surface with its own atomicity" |
| carry forward | (다음 단계로) 이어받다, 계속 적용하다 · 앞으로도 유지해야 할 원칙을 말할 때. "The line to carry forward" |
| sunset (verb) | (서비스를) 단계적으로 종료하다 · 기능·제품이 폐지될 때. "the reason it sunset" |
| crossing point | (두 곡선이) 교차하는 지점 · 비용과 이익이 같아지는 지점을 가리킬 때. "the crossing point with the payoff" |
| land on (someone) | (손실 등이) ~에게 떨어지다, 전가되다 · 피해가 특정 집단에 몰릴 때. "landing on retail" |
| TWAP | 시간가중평균가격(Time-Weighted Average Price) · 단일 순간가 대신 평균가로 결제해 조작을 어렵게 만드는 장치. "the single-price snapshot replaced by a TWAP" |
| CRE | 체인링크 런타임 환경(Chainlink Runtime Environment) · 카테고리형 결과(승패 등) 판정은 이 합의 계층이 맡음. "decentralised consensus and CRE" |
| SlowMist | 슬로우미스트 · 온체인 보안 감사·사고분석 전문 기업, 밸런스코인 사건 분석 출처. "SlowMist on the Balance Coin oracle exploit" |
| SMU | 싱가포르경영대학교(Singapore Management University) · 스탠퍼드와 공동으로 정산조작 연구를 수행한 기관. "Stanford and Singapore Management University documented 821 accounts" |
| Kalshi | 칼시 · 미국 규제 하의 예측시장 거래소, TWAP 방식을 이미 쓰고 있는 비교 대상. "mirroring what Kalshi already does with regulated indexes" |
| Balance Coin | 밸런스코인 · 오라클 가격 검증 없이 청산이 실행돼 사고가 난 렌딩 프로토콜. "Balance Coin's oracle attack are the same defect" |
| notional | 명목 금액(포지션의 총 가치) · 조작 비용과 비교되는 결제 시점의 보유 규모. "the payoff is the notional held into settlement" |