> ## Documentation index
> Fetch the complete documentation index at: https://docs.predictefy.com/llms.txt
> Use it to discover every available page before exploring further.

# Novig

> Market data model, reads authentication, tick table, and trading integration for Novig.

## Step zero — from nothing to your first trade

Novig uses a venue-custodied USD account, not a crypto wallet. Its production API is also restricted
to US egress.

1. **Create the account.** Sign up at [novig.us](https://novig.us/). Novig is a CFTC-regulated US
   exchange, so expect identity checks and government-ID KYC.
2. **Confirm credentials.** The integration requires a Novig client ID and client secret for OAuth
   2.0 token minting. Personal-account API credential issuance is still being confirmed with the
   venue; do not assume these credentials appear in self-service API settings. Confirm access with
   Novig before planning an API trade.
3. **Fund it.** Deposit USD through Novig's regulated banking rails; no chain or crypto asset
   applies. In CASH denomination, 100 Minimum Currency Units make one contract. Start with enough
   for at least one contract plus fees; the repo sources establish no deposit minimum.
4. **Allow time.** Setup is about 10 minutes after approval; KYC may take a day, and API credential
   issuance may add time.
5. **Check access.** Production endpoints are geo-fenced to US egress, so verify that requirement
   before funding.

## What you need first

- **Production status:** Market data reads and order books are live. Server execution lane exists default-off pending owner arming and a live golden vector.
- **Venue account:** Yes, for authenticated reads and trading on Novig.
- **Credentials:** `NOVIG_CLIENT_ID` and `NOVIG_CLIENT_SECRET` for OAuth 2.0 Client Credentials token minting (`POST /nbx/v1/auth/emm-token`).
- **Funding:** On-venue USD (`fiat_custodied`). Novig custodies funds; deposits and withdrawals happen on the venue via regulated banking rails.

## Reads authentication & access

Novig is a CFTC-regulated US sports prediction exchange operating the NBX v2 EMM API. All read operations against `api.novig.us` require a Bearer access token obtained via OAuth 2.0 Client Credentials:

```http
POST /nbx/v1/auth/emm-token
Content-Type: application/json

{
  "grant_type": "client_credentials",
  "client_id": "YOUR_CLIENT_ID",
  "client_secret": "YOUR_CLIENT_SECRET"
}
```

Tokens are minted lazily and cached in-process. Production endpoints (`https://api.novig.us`) are geo-fenced to US egress IP addresses, while the QA environment (`https://api-qa.novig.us`) is open.

:::note[DCM cutover UUID stability]
All NBX UUIDs were regenerated at Novig's 2026-08-04 DCM cutover. Pre-cutover cached identifiers are invalid.
:::

## Data model & sidedness

Novig's sports markets follow a 3-tier hierarchy:

- **Event:** A sports game or match (e.g. NFL, NBA, EPL) carrying a `scheduledStart` timestamp and teams/competitors. Cross-venue joins utilize `opticOddsId` when present.
- **Market:** A betting market within an event (e.g., moneyline, spread, total).
- **Outcomes:** Binary pairs of outcomes per market. Sidedness is defined strictly by the outcome `index`:
  - `index = 0`: Home / Over / Yes
  - `index = 1`: Away / Under / No

_Never rely on array position for sidedness._

Outcome IDs carry no derivable mathematical relation to market UUIDs, so Predictefy uses the composite format `${marketId}:${outcomeId}` to route outcome-level verbs.

## Prices, tick table, and order books

- **Odds as probabilities:** Prices represent decimal probabilities in $[0.001, 0.999]$.
- **Non-uniform tick table:** Novig enforces a non-uniform tick grid (finer resolution near 0.01 and 0.99, standard 0.005/0.01 in the middle). The valid ticks are queried from `GET /nbx/v2/emm/ticks` and never hardcoded.
- **Bids-only ladder & complement:** Novig order books (`GET /nbx/v2/emm/book/{marketId}`) publish bids only. The offer (ask) side is derived as the exact binary complement ($1 - p$) with quantities mirrored across the paired outcome.
- **Quantity units:** Quantities are denominated in Minimum Currency Units. For CASH denomination, 1 unit = $0.01 (1 cent), and **100 units = 1 contract**.

## Execution status

- **Server execution lane:** Built and ships default-off (`NOVIG_EXECUTION_ENABLED=true` plus platform integration credentials `NOVIG_CLIENT_ID`/`NOVIG_CLIENT_SECRET`). Bounded order placement, cancellations, and caller-authenticated status refresh run under the caller's own per-request Bearer access token.
