# Outcome delivery
Source: https://docs.chain.link/solutions/prediction-market-resolution-engine/overview/outcome-delivery

> For the complete documentation index, see [llms.txt](/llms.txt).

Chainlink delivers each market's outcome to your platform. How it is delivered is set in your agreement with Chainlink, not through the Market Registry API: the API is a catalog and does not return outcomes.

## What is delivered

Each market resolves to one of three outcomes:

| Outcome | Meaning                                                                          |
| ------- | -------------------------------------------------------------------------------- |
| `YES`   | The market's condition held.                                                     |
| `NO`    | The market's condition did not hold.                                             |
| `PUSH`  | A tie, on a market whose rule pays out 50/50 on a tie. Both sides are paid half. |

A market whose evidence never supports an answer receives no outcome. An absent outcome is not `NO`.

The DON also records a SHA-256 hash of each outcome in an onchain contract, so the outcome has a public record independent of Chainlink's systems. TODO: Add the network, contract addresses, and how platforms can check a delivered outcome against the record.

## Where outcomes go

Chainlink sends outcomes to the destination agreed for your platform: an API your platform operates, or a contract. The delivery format, credentials, and market identifiers are set up with Chainlink during onboarding.

If your platform holds outcomes for a dispute window before they are final, delivery follows that window in two steps:

1. When the outcome is determined, Chainlink sends it as an indicative outcome. The event's status becomes `final`.
2. After the dispute window, Chainlink sends the final outcome. It reuses the outcome and evidence already decided; providers are not queried again, so the final outcome cannot drift from the indicative one. The event's status becomes `completed`.

Discuss your platform's settlement flow with the Chainlink team.

TODO: Confirm which delivery destinations and formats are offered without custom work.

## Follow progress in the registry

The Market Registry API does not return outcomes, but each event's `event_status` shows where resolution stands:

| `event_status` | Delivery                                                    |
| -------------- | ----------------------------------------------------------- |
| `live`         | No outcome yet. The event is in progress.                   |
| `unsafe`       | No outcome. The evidence cannot support an answer yet.      |
| `final`        | Outcomes are determined. Delivery can still be in progress. |
| `completed`    | Resolution and delivery are complete.                       |
| `cancelled`    | The event will not occur. No outcome is delivered.          |

See [Track event status](/solutions/prediction-market-resolution-engine/tutorial/track-event-status) to read these statuses from the API.

## One answer for every platform

A market's slug identifies the underlying question. When several platforms list the same market, the engine decides the outcome once and delivers the same outcome to each platform.

## Next steps

- [Before you begin](/solutions/prediction-market-resolution-engine/tutorial/before-you-begin): Start using the Market Registry API.
- [Market lifecycle](/solutions/prediction-market-resolution-engine/reference/lifecycle): Every event status and transition.

## Disclaimer

Please note, this repo contains community examples only — these are not Chainlink products or services and are not supported or maintained by Chainlink. This code represents an example of using a Chainlink product or service, and is intended for demonstration and educational purposes only. It is provided “AS IS” and “AS AVAILABLE” without warranties of any kind, may not have been audited, and may omit checks or error handling. Each party intending to use this example code does so entirely at their own risk and must perform its own audits, security and code review, key management, and testing before any production deployment and ensure the operation and performance of such code matches expectations. Neither Chainlink Labs nor the Chainlink Foundation deploys, operates, monitors, maintains or endorses any deployment of this code. Note that this is not a Chainlink product, feature or service, and there are no commitments made with respect to the code, including compatibility with future Chainlink releases. You should not rely on this code without first conducting your own technical, engineering, and security review. This code is also outside the scope of any Chainlink bug bounty programs. Neither Chainlink Labs, the Chainlink Foundation, nor Chainlink node operators are responsible for outcomes due to errors in this example or how it is deployed or operated, or liable for any resulting claims or damages. Use of the Chainlink Network is subject to the Chainlink Foundation [Terms of Service](https://chain.link/terms), which provides important information and disclosures. By using this code, you acknowledge and agree to these terms.