> For the complete documentation index, see [llms.txt](https://sm-fund.gitbook.io/sm-fund-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sm-fund.gitbook.io/sm-fund-docs/guides/pending-data.md).

# Work with pending data

A pending transaction is an observation before confirmation. It can be replaced, revert, or be dropped. Neither feed emits subsequent confirmation, replacement, or drop events. Decide how your application will verify the final outcome independently.

## Identify transactions and fills

In the Polymarket feed, one frame contains one transaction's complete `fills` array. Use `tx_hash` to deduplicate a batch and `(tx_hash, fill_index)` to identify a fill. Do not count the taker and maker entries as unrelated transactions.

Keep deduplication state bounded by your application's processing window. There is no cursor, replay, ACK, or exactly-once delivery contract. Message arrival order does not establish chain order.

In the raw feed, the transaction hash is in `params.result.hash`. The surrounding subscription identifier is opaque and can change after a reconnect; it is not an identity for a transaction or a user.

## Filter wallets locally

Use **`fills[].maker`** to find a participating wallet in the Polymarket feed. The transaction's `from` address can be an operator or gas payer and is not a reliable substitute for an order's maker.

```js
const watchedMakers = new Set([
  "0x1111111111111111111111111111111111111111",
]);

function matchingFills(batch) {
  return batch.fills.filter((fill) =>
    watchedMakers.has(fill.maker.toLowerCase()),
  );
}
```

Each connection receives its chosen feed without server-side wallet filtering. Filter in your application after receiving the complete transaction message.

## Preserve precision

Polymarket token IDs, prices, sizes, and raw amounts are strings. Keep them as strings at ingestion. Use decimal arithmetic for `price` and `size`, and integer arithmetic such as JavaScript `BigInt` for raw integer amounts. Do not convert token IDs or raw quantities to JavaScript `Number`.

For raw notifications, preserve the original text when recording or forwarding. Parsing and serializing again can change whitespace, field order, or large numeric values. Unknown transaction fields should remain available to your parser.

## Know the data boundary

The [Polymarket reference](/sm-fund-docs/reference/polymarket-feed.md) describes decoded pending `matchOrders` batches. It is not a confirmed trade history, order book, order execution API, or a historical query service.

The [raw reference](/sm-fund-docs/reference/raw-feed.md) describes the original pending notifications visible to the service. It does not promise visibility of every transaction in the network. Messages missed during a disconnect or overload are not backfilled.
