> For the complete documentation index, see [llms.txt](https://funarchy.gitbook.io/funarchy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://funarchy.gitbook.io/funarchy/security-for-prediction-market/oracle-and-data/ui-oracle-price-mismatch.md).

# UI–Oracle Price Mismatch

#### **Description**

Prediction market UIs typically display prices and charts via off-chain data sources (GraphQL APIs, price APIs, proprietary indexers, external CEX price feeds, etc.). However, the actual market settlement data is determined through a completely different route.

* **Chainlink Data Streams snapshot values**
* **Settlement value reported directly by the operator**
* **Specific timestamp reference values ​​for specific Web2 APIs**
* **Off-chain price snapshots collected by the protocol backend**

In this case, if the reference price used by the UI and the Oracle settlement price used for settlement are structurally different, a resolution discrepancy occurs in which the settlement is LOSE based on the Oracle standard even if the user determines that it is WIN based on the UI standard.

In conclusion, this issue isn't a simple UI error, but rather a s**tructural risk that fundamentally arises when the UI data path and the settle path are separated**.

#### **Attack Scenario**

<figure><img src="https://4210179539-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2DiVEbUgCTsp2iPassR9%2Fuploads%2F2rDLueUu3RLxjMecZwnE%2Fimage.png?alt=media&amp;token=e4dd6f1a-b83f-4e3d-88e0-6d0f1b3ed0c0" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}
**UI Price Display**

Regular users purchase "Up" positions at specific points in time based on the BTC price and graph displayed in the Polymarket UI. \
\
These UI prices are derived from RTDS (WebSocket) or other off-chain price APIs.
{% endstep %}

{% step %}
**Different Settlement Source**

The rules for that 15-minute market state that “settlement is based on the Chainlink BTC/USD Data Stream snapshot.”
{% endstep %}

{% step %}
**Price Divergence**

Even at the same point in time, Binance/Bybit/Coinbase prices and Chainlink Streams snapshot prices may not be identical due to differences in market prices, liquidity, and aggregation methods.
{% endstep %}

{% step %}
**User Perception Gap**

Users perceive that they are “close to WIN” based on the UI price, but the actual settlement is performed based on the Chainlink Data Stream values.
{% endstep %}

{% step %}
**Resolution Discrepancy**

At the final resolution, the Chainlink data stream results are different from the expected results in the UI, causing users to experience a resolution discrepancy where they win based on the UI but lose in the settlement.
{% endstep %}
{% endstepper %}

#### **Mitigation**

* **UI–Settlement Data Path Alignment**
  * If possible, the protocol should be designed so that the UI reference price and the oracle settle price reference the same data source.
  * If complete unification of the UI and Settle structures is not possible, the settlement reference value must be clearly exposed in the UI so that users do not naturally misunderstand that “UI price = settle reference price.”


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://funarchy.gitbook.io/funarchy/security-for-prediction-market/oracle-and-data/ui-oracle-price-mismatch.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
