Skip to main content
Concepts learning path · 5 of 5 (final). The security model behind the Trading API: how Turnkey holds keys, what Predexon can and can’t do, what end-users own.

Overview

The Predexon Trading API uses a managed wallet model. Every account has a dedicated deposit wallet (a Base USDC address that holds all inbound funds) plus per-venue trading addresses that get configured as you enable each venue. You never handle private keys, manage gas, or sign transactions yourself.

How It Works

Wallet creation

On the accounts path, wallet provisioning is two-stage:
  1. POST /api/accounts/create creates the account and provisions the deposit wallet (Base USDC). Returned on every account in depositWallet.address, also available via Get Deposit Info.
  2. POST /api/accounts/{accountId}/enable with { "venue": "polymarket" | "predict" | "opinion" | "limitless" | "hyperliquid" } provisions venue-specific configuration (per-venue address on the correct chain, on-chain approvals, CLOB credentials where applicable).
  3. Poll GET /api/accounts/{accountId} - each enabled venue’s status moves from provisioning to active, and the on-chain address is populated.
VenueChainCollateral
PolymarketPolygonpUSD (Polymarket USD)
Predict.funBSCUSDT (BEP-20)
OpinionBSCUSDT (BEP-20)
LimitlessBaseUSDC (native)
HyperliquidHyperCoreUSDH (USDC-pegged)
The deposit wallet is a distinct on-chain address from any venue trading wallet - its balance (returned by Get Deposit Info) reflects only the deposit wallet’s USDC, not commingled venue balances.

Key security via Turnkey

Private keys are managed by Turnkey, a hardware-backed key management infrastructure.
  • Keys are generated and stored in secure enclaves
  • Keys never leave the enclaves
  • Predexon never has access to private keys
  • All transaction signing happens server-side automatically

What the API handles

ConcernManaged By
Key generationAutomatic on account creation + venue enablement
Transaction signingServer-side via Turnkey
Gas feesHandled by platform
Nonce managementHandled by platform

Deposit Flow

Recommended flow - fund the account’s deposit wallet (a Base USDC address), then call POST /transfers with from: "deposit" and to: "<venue>" to route funds to Polymarket, Predict, Opinion, or Limitless. The transfer delivers the venue’s native collateral to its trading wallet. To deposit from another chain (Ethereum, Arbitrum, Polygon, BSC, Optimism), call Quote Transfer with from: "external". The response includes a signed transactionRequest your end user submits from their own wallet; the bridge delivers USDC to the deposit wallet on Base. Direct deposits to a venue trading wallet still work if you’d rather skip the deposit wallet: Polymarket accepts pUSD on Polygon directly to its wallet (USDC.e and native USDC sent there will not credit the trading balance), Predict and Opinion accept BEP-20 USDT on BSC, and Limitless accepts native USDC on Base. Use Get Accountvenues[venue].address for the destination. Hyperliquid - bridge USDC to your Hyperliquid wallet using Across - select Hyperliquid (HyperCore) as the destination chain. Funds arrive as USDH (HL’s USDC-pegged stablecoin) in your trading balance in ~1-2 minutes.
Sending the wrong token or using the wrong chain will result in lost funds. Always verify the token standard and chain before depositing.

Withdrawal Flow

External withdrawals route through the deposit wallet. Drain the venue’s balance back to the deposit wallet, then send to any supported chain - both directions use POST /transfers:
POST /transfers  { from: "polymarket", to: "deposit", amount: "50" }
POST /transfers  { from: "deposit", to: "external", amount: "50",
                   destination: { address, chain, token } }
Before withdrawing:
  1. Cancel open orders (Predict, Opinion, Limitless, and Hyperliquid lock collateral on resting buy orders).
  2. Redeem any resolved winning positions.
  3. Verify available balance with Get Balance.
Hyperliquid is the exception - withdraw via the per-venue POST /withdraw with venue: "hyperliquid". Delivers USDC on Arbitrum, 10minimum,10 minimum**, **1 USDC fee deducted before delivery (recipient receives amount - 1), settles in ~3-4 minutes.

Security Boundaries

  • Each API key can only access accounts it created.
  • Attempting to access another API key’s account returns 403 Forbidden.
  • The deposit wallet and venue trading wallets are isolated per account - no cross-account access.

You’re done — what’s next?

Get started in 5 minutes

Sign up, get a key, make your first call.

Pick your path

Quant, Builder, Active Trader, or AI Agent — go to the persona guide that fits.