> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adipredictstreet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment

> Base URLs, chain configuration, and contract addresses for the PredictStreet production deployment.

<Warning>
  This documentation describes the **production** PredictStreet
  deployment. Production access is gated by a signed partner agreement
  and an issued API key. Contact
  [partners@predictstreet.com](mailto:partners@predictstreet.com) before
  integrating.
</Warning>

## Endpoints

<CodeGroup>
  ```bash Endpoints theme={null}
  CORE_API         = https://core-api.adipredictstreet.com
  WS_GATEWAY       = wss://ws-gateway.adipredictstreet.com
  EXPLORER         = https://explorer-bls.adifoundation.ai
  ```

  ```bash Chain theme={null}
  CHAIN_NAME       = ADI Mainnet
  CHAIN_ID         = 36900
  RPC_URL          = https://rpc.adifoundation.ai
  NATIVE_CURRENCY  = ADI (18 decimals)
  ```
</CodeGroup>

<Note>
  Hosts and chain ID are filled in by the partner onboarding package —
  copy them once and pin in your client config. The runtime
  `GET /api/platform/contracts` endpoint also exposes them so SDKs can
  read at boot rather than hardcoding.
</Note>

## Contract registry

Verified production deployments. These are the authoritative target
for every EIP-712 `verifyingContract` field and the only addresses
the platform recognises.

| Contract                    | Address                                      | Deployed at block |
| --------------------------- | -------------------------------------------- | ----------------- |
| `ConditionalTokens`         | `0x296B91AF13f317367879aCc1726148481929490E` | 24381             |
| `CTFExchange` (binary)      | `0x3b32619897ae40C79b7086a0EB3F985077e7Fed7` | 24382             |
| `NegRiskAdapter`            | `0xBD9bAEF019793D3326DC2191F21C93Ff2df4ecEC` | 24383             |
| `NegRiskCtfExchange`        | `0x65A068b3C1C3088B1B23499A6104045f2b661B3e` | 24385             |
| `DepositLimitRegistryProxy` | `0x4774FD58De074Eedc21AB14F7bf38EC8ae82a0dc` | 24387             |
| `VaultFactory`              | `0x6Ed1E5787e4667bEf8485cbfC624DFF6FF561BbA` | 24388             |
| `OracleProxy`               | `0xD257F61f62C84928bf45a89a7b92Da3762A62AA2` | 24391             |
| `MulticallExecutor`         | `0x7A860D01E63b1536f2de4C6a607f3bD6d453cD1c` | 24395             |
| `Multicall3`                | `0xBec389b75eD3e16CbAf857D434EC56a9CeE1e663` | 24397             |
| `USDC` (collateral)         | `0x9cb8142aEBBcdc60AF7c97Af897A67A8f3CA71C2` | —                 |

<Tip>
  Every contract is verified on the production block explorer. Paste
  any address into the explorer at
  `https://explorer-bls.adifoundation.ai/address/<address>` to browse
  source, ABI, and events.
</Tip>

## Read-at-runtime — `GET /api/platform/contracts`

The address table above is the human-readable form of the canonical
contract registry. **For SDK code** prefer the runtime endpoint:

```http theme={null}
GET /api/platform/contracts
```

```json theme={null}
{
  "chainId": "36900",
  "rpcUrl": "https://rpc.adifoundation.ai",
  "vaultFactory":              "0x6Ed1E5787e4667bEf8485cbfC624DFF6FF561BbA",
  "usdc":                      "0x9cb8142aEBBcdc60AF7c97Af897A67A8f3CA71C2",
  "ctfExchange":               "0x3b32619897ae40C79b7086a0EB3F985077e7Fed7",
  "ctfExchangeNegRisk":        "0x65A068b3C1C3088B1B23499A6104045f2b661B3e",
  "negRiskAdapter":            "0xBD9bAEF019793D3326DC2191F21C93Ff2df4ecEC",
  "conditionalTokens":         "0x296B91AF13f317367879aCc1726148481929490E",
  "depositLimitRegistryProxy": "0x4774FD58De074Eedc21AB14F7bf38EC8ae82a0dc",
  "oracle":                    "0xD257F61f62C84928bf45a89a7b92Da3762A62AA2",
  "multicallExecutor":         "0x7A860D01E63b1536f2de4C6a607f3bD6d453cD1c",
  "multicall3":                "0xBec389b75eD3e16CbAf857D434EC56a9CeE1e663"
}
```

Public, unauthenticated, rate-limited at 60/min/ip. **Source-of-truth
is the platform deploy environment** — CI/CD updates the env in
lockstep with each contract deploy, so the response cannot lag
platform state. Quickstart code samples should `fetch()` this at boot
rather than hardcoding constants.

## Production guarantees

* **No `MOCK_AUTH_ACCEPT_ALL`** — every EIP-712 signature is verified
  against the on-chain `CTFExchange` / `NegRiskCtfExchange` /
  `VaultFactory` typehashes.
* **Full compliance chain** — KYC, geo / sanctions screening, and
  return-to-source cleared-deposit checks are enforced on every API
  call. Withdrawal destinations not previously cleared are rejected
  with `destination_not_cleared`.
* **HSM-backed oracle signer** — the platform oracle private key never
  leaves a hardware module.
* **Multi-sig administrative controls** — `cancel`, `void`, and
  platform-kill require multiple signatures from documented officers.
* **No in-place redeploys** — any contract change ships as a new
  deployment with a coexistence period and explicit migration
  instructions delivered via the partner channel. Addresses on this
  page are stable for the lifetime of the current deployment.

## Onboarding

<CardGroup cols={2}>
  <Card title="Request access" icon="handshake" href="mailto:partners@predictstreet.com">
    Sign the partner agreement and receive your API keys + connection
    runbook.
  </Card>

  <Card title="Status page" icon="heart-pulse" href="https://status.predictstreet.com">
    Real-time uptime, recent incidents, and scheduled maintenance.
  </Card>
</CardGroup>
