> Documentation index: https://pmdata.dev/llms.txt. Full docs in one file: https://pmdata.dev/llms-full.txt

# On-Chain Fills

Source: https://pmdata.dev/docs/schemas/predict-fun/onchain-fills

> Schema for Predict.fun fills recorded on chain.

Each row is one `OrderFilled` event from Predict.fun's exchange contracts on BNB Smart Chain. The columns are the Polymarket [on-chain fills](https://pmdata.dev/docs/schemas/onchain-trades) columns plus `market_id`.

**Data type:** `onchain_fills` (`predict_fun`)

One file per market per UTC day of block time, only for days the market has fills. Only finalized blocks are read.

## Schema

| Field | Type | Description |
| --- | --- | --- |
| `market_id` | `int64` | Predict.fun numeric market id. |
| `timestamp` | `timestamp[us]` | Block time, millisecond precision. |
| `maker` | `string` | Maker address, lowercase. |
| `taker` | `string` | Taker address, lowercase. When it is one of Predict.fun's exchange contracts (below), the row is the taker order's own fill. |
| `outcome` | `string` | Outcome label of the token, for example `Yes`, `Up`, `Over 13.5` or a team name. |
| `maker_side` | `string` | `BUY`: the order pays USDT and receives outcome tokens. `SELL`: the reverse. |
| `taker_side` | `string` | The opposite of `maker_side`. |
| `price` | `double` | USDT amount / token amount, from 0 to 1. |
| `usd_amount` | `double` | USDT amount. |
| `token_amount` | `double` | Outcome token amount. |
| `transactionHash` | `string` | Transaction hash, lowercase hex. |
| `_log_index` | `int64` | Log index of the event within the block. |

- One match writes one row per maker order, plus one row for the taker order itself, whose `taker` is the exchange contract and whose `token_amount` is the sum of the maker rows. **To count volume, drop rows whose `taker` is one of the contracts below**, or every match is counted twice.
- A maker row can be on the other outcome and on the same side as the taker (a mint or merge match): a maker "BUY No @ 0.40" is economically selling Yes @ 0.60 to the taker.
- Rows are in chain order, `(timestamp, _log_index)`. `(transactionHash, _log_index)` is unique.
- Not included: block number, contract address, order hash and fees. Look them up on chain by `transactionHash`.

Predict.fun's exchange contracts:

| Contract | Address |
| --- | --- |
| Standard | `0x8bc070bedab741406f4b1eb65a72bee27894b689` |
| Standard NegRisk | `0x365fb81bd4a24d6303cd2f19c349de6894d8d58a` |
| Yield-bearing | `0x6beb5a40c032afc305961162d8204cda16decfa5` |
| Yield-bearing NegRisk | `0x8a289d458f5a134ba40015085a8f50ffb681b41d` |
