BentoSDK
Concepts

Money (credits, USDC & amounts)

The two collateral stacks, geo-gating, and why amounts are in wei.

Two things to get right before you move money: which collateral stack you're on, and that amounts are base units (wei), not whole tokens.

Credits vs USDC

Markets and bets carry a collateralMode of 'credits' or 'usdc':

StackWhat it isGeo
creditsa platform-managed balance (test / play)not geo-gated
usdcreal on-chain USDC collateralgeo-gated: restricted regions get 403 with code GEO_BLOCKED (detect with isGeoblockError)

Either way, your managed account needs a funded balance, or writes fail with 400 "Insufficient Credits" (or insufficient balance). Fund it before trading.

Testnet faucet (register does not fund you)

eoaRegister / eoaLogin only provision the managed account and return a JWT. They do not credit USDC or credits. On testnet, mint via the SDK faucet after you have the managed address:

await sdk.public.faucet.mint({
  address: managedAccountAddress, // from eoaLogin / eoaRegister — not your EOA
});
// Testnet success: ~1000 USDC + ~1000 Credits on the managed account.

Optional readiness check: await sdk.public.faucet.status().

Without this (or another funding path), placeBet, paid tournament create/enter, and similar writes fail with insufficient balance.

Amounts are in wei

betAmount and betAmountUsdc are base units of the collateral token, not whole tokens. On BSC / credits that's 18 decimals:

const tenUnits = '10000000000000000000'; // 10 units, NOT '10'

Passing '10' means 10 wei, effectively zero. Scale by the token's decimals (e.g. viem's parseUnits('10', 18)), or use collateralDecimals from your onchain.contracts.

On this page