Filters and subscription scope
Filters choose which permitted data you need. They do not grant additional access.
OR within lists, AND between facets
This filter fragment selects owner A or B, AND token 7 or 8, AND the included stage. Addresses and tokens are synthetic.
An omitted facet imposes no predicate. Current parsing also treats a facet set to null as omitted; prefer omission when constructing requests. Empty arrays are rejected. Each provided array has at most 256 entries before normalization; account and combined resource caps apply separately. Unknown fields are rejected.
Owners and conditions use canonical lowercase hex. Slugs contain lowercase letters, digits or hyphens, are 1–256 ASCII characters, and cannot start or end with a hyphen. Detailed shapes are in frames.
Access modes
Owner allowlist requires permitted owners. Market-filtered mode requires market_data and at least one entity selector. Full stream requires separate firehose permission. Stage and replay scopes are independent; an empty filter does not authorize firehose.
Frozen mappings
subscribed.frozenMarkets and frozenConditions record the selected mapping. Condition selectors can match their condition facet or a token in that condition’s frozen mapping, allowing supported receipt-only executions to match without a condition facet. Slug and condition groups remain independent AND predicates.
Catalog refresh cannot reinterpret an old cursor. Frozen snapshots do not promise freshness or completeness of the whole Polymarket catalog. Change a predicate using rebind; reconnect using the previous predicate and resume.
Quality notices route by entitled source/network/contract scope before wallet/token trade predicates. A quiet wallet can therefore receive a source notice without a matching trade.
