# DoNotAct v1.1 Rejection Classes

This is the public taxonomy for `NoTradeReason.class`. It is for agents and builders that need to preserve why a diagnostic response blocked or failed closed.

Source of truth: `/openapi.json`.

Boundary: these classes are diagnostics only. They do not authorize execution, custody, signing, routing, or probability estimation.

This is the public taxonomy for `NoTradeReason.class`. It must stay synchronized with `closeedge/contract/openapi.json`.

## R1_WALLET_BINDING

Scope: wallet identity, signature type, signer/maker/funder consistency.

Codes:

- `BINDING_EVIDENCE_MISSING`
- `UNSUPPORTED_SIGNATURE_TYPE`
- `POLY_1271_ADDRESS_MISMATCH`
- `ADDRESS_FORMAT_INVALID`

Predicted venue strings:

- `invalid signature`
- `invalid signature type`
- `invalid maker`
- `invalid signer`

Sources:

- https://docs.polymarket.com/api-reference/authentication
- https://docs.polymarket.com/trading/deposit-wallets

## R2_ALLOWANCE_BALANCE

Scope: allowance, balance, balance/allowance sync, collateral mode.

Codes:

- `ALLOWANCE_EVIDENCE_MISSING`
- `ALLOWANCE_INSUFFICIENT`
- `BALANCE_SYNC_UNKNOWN`
- `COLLATERAL_MODE_UNKNOWN`

Predicted venue strings:

- `not enough balance / allowance`
- `allowance`
- `balance`

Sources:

- https://docs.polymarket.com/trading/orders/overview
- https://docs.polymarket.com/resources/error-codes
- https://docs.polymarket.com/v2-migration

## R3_TICK_PRECISION

Scope: tick size and price precision.

Codes:

- `TICK_SIZE_MISSING`
- `PRICE_PRECISION_INVALID`
- `PRICE_OUT_OF_RANGE`

Predicted venue strings:

- `invalid tick size`
- `invalid price`
- `price out of range`

Sources:

- https://docs.polymarket.com/api-reference/market-data

## R4_METADATA_READINESS

Scope: public metadata completeness, market state, and neg-risk metadata.

Codes:

- `METADATA_MISSING`
- `MARKET_NOT_ACTIVE`
- `NEG_RISK_METADATA_MISSING`

Predicted venue strings:

- `market closed`
- `market inactive`
- `market archived`

Sources:

- https://docs.polymarket.com/quickstart
- https://docs.polymarket.com/api-reference/market-data

## R5_MARKET_STATE

Scope: venue mode, liveness, authenticated-client readiness, and market-state consistency not covered by metadata readiness.

Codes:

- `KALSHI_RSA_PSS_PATH_SIGNING_ADVISORY`
- `KALSHI_SESSION_LIVENESS_30M_ADVISORY`
- `KALSHI_RATE_LIMIT_TIER_ADVISORY`

Predicted venue strings:

- `market not accepting orders`
- `market disabled`
- `rate limit exceeded`

Sources:

- https://docs.polymarket.com/api-reference/market-data
- https://docs.kalshi.com/getting_started/api_keys
- https://docs.kalshi.com/fix/authentication
- https://docs.kalshi.com/getting_started/rate_limits

## R6_BOOK_STALENESS_LIQUIDITY

Scope: public orderbook presence, freshness, spread, depth, and slippage estimate.

Codes:

- `BOOK_EMPTY`
- `BOOK_STALE`
- `SPREAD_TOO_WIDE`
- `DEPTH_TOO_LOW`
- `SLIPPAGE_TOO_HIGH`
- `BOOK_TIMESTAMP_MISSING`

Predicted venue strings:

- `order match delayed due to market conditions`
- `insufficient liquidity`

Sources:

- https://docs.polymarket.com/api-reference/market-data
- https://docs.polymarket.com/resources/error-codes

## R7_VENUE_MODE

Scope: venue operating mode, maintenance state, session mode, or rule-change evidence that affects integration readiness.

Codes:

- `VENUE_RULE_CHANGE_BREAKING`
- `VENUE_RULE_CHANGE_WATCH`

Predicted venue strings:

- `migration required`
- `deprecated`
- `market not accepting orders`

Sources:

- https://docs.polymarket.com/v2-migration
- https://docs.kalshi.com/getting_started/quick_start_market_data

## R8_RESOLUTION_AMBIGUITY

Scope: ambiguous, disputed, underspecified, or non-appealable resolution terms.

Codes:

- `NO_RULE_TEXT`
- `HIGH_DISPUTE_RISK`

Predicted venue strings:

- `disputed`
- `ambiguous resolution`

Sources:

- https://docs.polymarket.com/markets/resolution
- https://docs.kalshi.com/getting_started/quick_start_market_data
