Skip to main content

Testnet (open)

Testnet is the default environment for all examples in this documentation. Access is open — no partner agreement required.
CORE_API         = https://core.api.dev.predictstreet.sde.adifoundation.ai
WS_GATEWAY       = wss://ws-gateway.dev.predictstreet.sde.adifoundation.ai
ADMIN_API        = https://admin.api.dev.predictstreet.sde.adifoundation.ai
BLOCKSCOUT       = https://blockscout.ab.testnet.adifoundation.ai

Testnet contract addresses

These are the verified deployments on ADI testnet. They are the authoritative target for every EIP-712 verifyingContract field.
ContractAddress
ConditionalTokens0xB12c3c5573d9379dC7f6EE47C148E4C1695A0416
MockCollateral (mUSDC)0x9bC8244c0F531F27fe3636FFdAf2C586d11241e1
CTFExchange (binary)0xc3c197e42AfE809a7f34D3a7eE6aDE0cF7613D2b
VaultFactory0xFFFBE32fF7B8a2AFD4FA2Af0C480FE59206A8ba3
DepositLimitRegistry0xA18a1ed7139a94654535EC5A5a8Aa803E694cDbb
NegRiskAdapter0xe8573F401a1fa30c3Df0e7F427C7f25a68E1Ec98
PredictStreetNegRiskCtfExchange0xB1A9274D2a9bd8a8CDd4D836e4f5273d3870211a
PredictStreetOracle0x24731ADFe7FB28E037c04D71f89f52974Ae76ee1
Every testnet contract is verified on Blockscout — paste any address above into blockscout.ab.testnet.adifoundation.ai to browse source, ABI, and events.

Getting testnet USDC

MockCollateral (0x9bC8244c0F531F27fe3636FFdAf2C586d11241e1) exposes a public mint(address to, uint256 amount) on testnet — anyone can mint themselves mUSDC. After minting, you still need to deposit into your vault: see Vaults.
import { Wallet, JsonRpcProvider, Contract, parseUnits } from 'ethers';

const provider = new JsonRpcProvider('https://rpc.ab.testnet.adifoundation.ai/');
const wallet   = new Wallet(privateKey, provider);
const usdc     = new Contract(
  '0x9bC8244c0F531F27fe3636FFdAf2C586d11241e1',
  ['function mint(address to, uint256 amount)'],
  wallet,
);

await (await usdc.mint(wallet.address, parseUnits('1000', 6))).wait();

Testnet caveats

Testnet runs without MOCK_AUTH_ACCEPT_ALL — every EIP-712 signature is verified for real (ethers.verifyTypedData against the on-chain CTFExchange ORDER_TYPEHASH). Code that signs a placeholder will be rejected with 400 bad_signature. The schema is identical to staging / production — see EIP-712 signing.
Testnet has compliance guards relaxed for integration testing — KYC, geo, and the return-to-source cleared-deposit check are not enforced. Practical consequences:
  • Multi-wallet sub-accounts transact without per-wallet KYC.
  • Every depositing EOA is auto-cleared as a withdrawal destination — no destination_not_cleared rejection.
  • Sanctions / geo blocks do not fire.
Production enforces the full compliance chain. Don’t rely on testnet outcomes to validate your prod compliance flow — sanity-check against the staging / production controls before going live.
  • Matcher state is not persisted across redeploys. After a testnet restart, your open orders may disappear (warm-restart of the matcher is planned for staging+).
  • Oracle on testnet resolves against mock data. Do not use testnet resolution for real backtesting.
  • Faucet, admin pause / resume / cancel, and platform kill-switch can be triggered at any time during partner testing windows — expect occasional disruptions.

Staging (on request)

Production-like environment with real AML provider, real data-source adapters, real on-chain deployments on a production-ready chain. Used for the pre-launch dry-run before a new market opens to real users. Access requires:
  1. A signed partner agreement (NDA + API access terms).
  2. A whitelisted source IP for the internal network (staging surfaces are gated behind VPN).
  3. A dedicated partner account provisioned by ops.
Contact partners@predictstreet.com for staging access.

Mainnet (partner onboarding)

Production environment. Base URL, chain ID, and contract addresses are delivered to partners at onboarding as part of the live-rollout runbook. Do not hardcode mainnet values from this documentation — always read them from the onboarding package so configuration remains auditable.

Partner onboarding

Request mainnet access and onboarding runbook.

Status page

Real-time status of all environments.

Environment capability matrix

FeatureTestnetStagingMainnet
HTTP REST (core-api)
WebSocket (ws-gateway)
/api/docs OpenAPI UIon request❌ (internal only)
Faucet
MOCK_AUTH_ACCEPT_ALL
Real AML screening (Global Ledger)mock
Real sports data sources (SDDP, etc.)mock
On-chain settlement✅ (testnet chain)
HSM-backed oracle signer
Admin multi-sig on cancel / void
Platform kill-switch