Skip to main content
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 before integrating.

Endpoints

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.

Contract registry

Orders are signed under the domain { name: "PredictStreet", version: "1", chainId: 36900, verifyingContract }. Use NegRiskCtfExchange when the market’s negRiskEligible is true, and CTFExchange (binary) otherwise. An order signed against the wrong exchange is rejected with bad_signature. Vault operations (withdrawals, split / merge / convert) are not signed against any address in this table. They use your own vault’s domain (name: "PredictStreetVault", verifyingContract = your vault address from VaultFactory.vaultOf(yourWallet)), never the VaultFactory address. Verified production deployments. These are the authoritative target for every EIP-712 verifyingContract field and the only addresses the platform recognises.
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.

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:
  • usdcEip712 is the name / version of the USDC contract’s EIP-712 domain. Use exactly these values when you build the Permit for a gasless deposit; any other values recover a different signer and the relay answers permit_signer_mismatch.
  • ccipBridge carries { destChainSelector } for cross-chain withdrawals over Chainlink CCIP, or null when the environment has no bridge configured (cross-chain withdrawals are then unavailable).
  • generatedAt is the time the response was generated, not a deploy timestamp — diff the addresses to detect a redeploy.
Public, unauthenticated, rate-limited at 120/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 / Vault typehashes.
  • Full compliance chain — KYC, geo / sanctions screening, and AML screening of withdrawal destinations are enforced. Withdrawals are not limited to addresses that deposited before; to restrict destinations, use the address whitelist.
  • 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

Request access

Sign the partner agreement and receive your API keys + connection runbook.

Web app

The public retail site.