FAQ
Quick answers to the questions new integrators hit first.
Do I need a wallet or login to read data?
No. Public reads — the market catalog, prices, analytics — need no auth. Build a client with an empty auth provider and call sdk.public.*.
Why is my account address different from my wallet?
Logging in provisions a managed account for your key; your funds and positions live there, not on your signing wallet. See Accounts & wallets.
I'm getting 401 Unauthorized.
Markets sdk.user calls need a Bearer JWT from eoaLogin — not raw x-wallet-* headers. See Authentication.
I'm getting 400 "Insufficient Credits".
Your managed account has no balance in the chosen collateralMode. Fund it — in test, mint with sdk.public.autoMint.mint({ userAddress }).
Why are there two URLs / hosts?
The markets host (baseUrl) serves bets, packs, and create-market; the tournaments host (tournamentsBaseUrl) serves parlays, tournaments, F1, and fantasy. You only need markets to start. See Two API hosts.
getDuelById returns 404.
You probably passed id (the database row id) instead of duelId (the on-chain id). Use duelId from the list row.
My amounts look enormous.
Amounts are wei — 18 decimals on BSC / credits. '10000000000000000000' is 10 units, not '10'.
credits vs usdc — which do I use?
credits is the test / play stack and isn't geo-restricted; usdc is real collateral and is geo-gated. Set collateralMode per market or bet.