BlacklistKeeper
BlacklistKeeper maintains a dual-registry of banned market condition IDs and banned counterparty wallet addresses.
What it does
BlacklistKeeper maintains a dual-registry of banned market condition IDs and banned counterparty wallet addresses. On every OrderIntent it checks both registries and hard-rejects any intent whose target market or counterparty appears on either list. The bot also monitors for ambiguity signals (undefined resolution sources, prior dispute history, time-to-resolution below threshold) and rejects structurally hostile markets before execution. It is fail-closed: if the registry cannot be read, the intent is rejected.
Pipeline placement
Applies to: Every OrderIntent — screens the target market and counterparty wallet against operator-maintained banned-market and bann
Why it matters
| If this fails | Consequence |
|---|---|
| Intent routed to a banned market | Trading a market that has been operator-banned (due to ambiguous resolution rules, prior disputes, or platform policy) exposes the system to unresolvable settlement risk and potential fund loss. |
| Order matched against a banned counterparty wallet | Engaging with a blacklisted counterparty (e.g. a wallet flagged for manipulation, wash-trading, or prior sanctions escalation) introduces regulatory exposure and may contaminate position records. |
| Market with ambiguous resolution rules passes through | Markets using vague trigger words (“substantial”, “primary”) or undefined resolution sources frequently go to UMA dispute. Each dispute costs a $750 pUSD bond and 24–48 h of DVM voting delay, eroding capital efficiency. |
| Single-source resolution market accepted | A market that resolves on a single oracle feed is vulnerable to feed manipulation or temporary outage; the bot blocks these when block_single_source is enabled. |
| Fail-open on registry outage | If BlacklistKeeper approves orders when the registry is unavailable, banned markets and counterparties can trade undetected. The bot must never approve when its data source is unreachable. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Gamma API market metadata — resolution rules text, single-source flag, time-to-resolution, negRisk flag, prior dispute history | gamma | required | Evaluate market for ambiguity keywords, single-source resolution, time-to-resolution threshold, and structural hostility signals. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Banned-market registry — operator-curated list of banned condition_ids | internal | required | Hard-reject any intent whose market_id appears in the banned-market set. |
| Banned-counterparty registry — operator-curated list of banned wallet addresses | internal | required | Hard-reject any intent whose counterparty wallet appears in the banned-counterparty set. |
| Community / shared dispute history feed | internal | optional | Supplement the operator-curated list with cross-platform dispute signals to identify markets with a track record of resolution failure. |
| KillSwitch active flag | KillSwitch | required | If KillSwitch is active, reject all orders immediately without consulting the registry. |
| ObservationReport stream | internal | optional | Consume ObservationReports from intel/disc bots to trigger registry additions when new market anomalies are detected. |
Authority
What this bot is permitted to do
State
Readiness
Limited live
Status
beta
Class
Guardrail
Default mode
limited_live
Developer owner
Polytraders core — Risk pod
Capital impact
Direct
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| KILL_SWITCH_ACTIVE | HARD_REJECT | Global kill switch is active; no orders may proceed. | Immediately return HARD_REJECT without consulting the registry or Gamma API. |
| BLACKLIST_KEEPER_MARKET_BANNED | HARD_REJECT | The target market condition ID appears in the operator-maintained banned-market registry. | Return HARD_REJECT; log market_id and registry entry for audit trail. |
| BLACKLIST_KEEPER_COUNTERPARTY_BANNED | HARD_REJECT | The counterparty wallet address appears in the operator-maintained banned-counterparty registry. | Return HARD_REJECT; log counterparty address (redacted in user-facing messages) for audit trail. |
| BLACKLIST_KEEPER_NEAR_RESOLUTION | HARD_REJECT | The market resolves within the configured min_hours_to_resolution window, which is below the UMA 2-hour challenge period. Emitted as WARN when hours_to_resolution is between 2 and 4h. | Return HARD_REJECT when below hard threshold; emit WARN annotation and APPROVE when between warning and hard thresholds. |
| BLACKLIST_KEEPER_SINGLE_SOURCE | HARD_REJECT | The market resolves on a single data source and block_single_source is enabled, indicating unacceptable feed manipulation and outage risk. | Return HARD_REJECT; log market_id and single_source flag. |
| BLACKLIST_KEEPER_AMBIGUOUS_RULES | HARD_REJECT | The market resolution rules text contains one or more ambiguity keywords (e.g. 'substantial', 'primary') that indicate high dispute risk. | Return HARD_REJECT; log the matched keyword and market_id for the risk team to review registry addition. |
| BLACKLIST_KEEPER_PRIOR_DISPUTE | HARD_REJECT | The market has a recorded prior dispute in its history, indicating structural resolution instability. | Return HARD_REJECT; log market_id and prior_disputes count. Risk team should review whether to add to banned-market registry. |
| BLACKLIST_KEEPER_DATA_UNAVAILABLE | HARD_REJECT | One or more required data sources (banned-market registry, banned-counterparty registry, or Gamma market metadata) are unavailable or returned stale data beyond TTL. | Return HARD_REJECT (fail-closed). Log which source failed. Alert on-call if sustained > 60s. |
| BLACKLIST_KEEPER_PASS | INFO | All registry and structural checks passed for this market and counterparty. | Emit APPROVE and continue to next guardrail. |
Related bots in Risk Guardrail
Used by
Reverse index — strategies that currently reference risk.blacklistkeeper. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| NBA props — line-shop | demo-wired | last triggered 39m ago |
| Crypto Q2 — basket rebalance | frozen | last triggered 46m ago |
| US Elect — book-builder | demo-wired | last triggered 6m ago |
Showing 3 of 3 · demo-wired ≠ production-live
Why this matters
Risk Guardrail bots does NOT propose intents or sign orders; only permits or blocks. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →