FAQ
Quick answers to the questions new integrators hit first.
Do I need a wallet or login to read data?
No. Public catalog/price/analytics reads need no user JWT. You still pass a Builder apiKey to createBentoSdk (required by the factory). Use an empty walletAuthProvider(() => ({})) for reads.
Why is my account address different from my wallet?
Registering / logging in provisions a managed account. Funds and positions live there, not on your signing wallet. Session field address is the managed account. → Accounts
I'm getting 401 Unauthorized.
Markets sdk.user needs Authorization: Bearer <JWT> from eoaLogin / eoaRegister, not raw x-wallet-* headers. → Authentication
I'm getting 400 "Insufficient Credits".
The managed account has no balance. Register/login does not fund you. On testnet: await sdk.public.faucet.mint({ address: managedAccountAddress }). → Money
eoaLogin returns no token.
New wallets get { exists: false }. Call eoaRegister once with a username, then use the returned token.
How do I bet inside a tournament after I enter?
Vault buy-in uses credits/USDC. Match picks use virtual stage chips via submitPicks (not placeBet). → Enter a tournament
How do private markets and invites work?
Create with privacyAccess: 'private', then duelInvitations.create. Invitees must userJoin before betting. → Create a market
Why are there two URLs / hosts?
Markets (BENTO_URL) for bets/packs/create-market; tournaments (PARLAY_TOURNAMENT_URL) for brackets/F1. Markets-only is enough to start. → Environments
getDuelById returns 404.
You passed database id instead of duelId. Use duelId from the list row.
My amounts look enormous / bets fail with tiny stakes.
Amounts are wei (18 decimals on BSC/credits). '10000000000000000000' is 10 units. Platform minimum is 5 units.
Should I use placeBet or placeBetFromEstimate?
placeBetFromEstimate. Hand-building from estimate.min_shares_out causes slippage 400s on larger bets. → Place a bet
credits vs usdc: which do I use?
credits = test/play, not geo-gated. usdc = real collateral, geo-gated. Set collateralMode per market/bet.
How do I get Sportmonks / live sports data?
Use the tournaments-host Sportmonks proxies (server holds the API token). Send x-builder-api-key (BENTO_BUILDER_API_KEY), pass a ttl profile (live, ended, default, …), poll no faster than the fresh window, and expect 60 req/min/IP on the proxy POSTs (429 + Retry-After if exceeded). → Sportmonks sports data