BentoSDK
Concepts

Accounts & wallets

Why your Bento account address differs from your signing key — the

The surprise that trips up most first integrations: the address you sign with is not the address your funds and positions live on.

  your wallet (EOA)                 Bento managed account
  0xAAA…  (your key)                0xBBB…  (provisioned for you)
      │                                    ▲
      └──────── sign the login ────────────┘
                ↳ funds · bets · positions · payouts live here

When you register or log in, Bento provisions a managed account for your signing key. You keep custody of your key; your trading runs through the managed account.

Register / login does not fund that account. On testnet, call sdk.public.faucet.mint({ address: managedAccountAddress }) to receive USDC and credits. → Money

What it means for you

  • Read positions by the managed address, not your signing key:
// `address` is your managed account (returned with your session), not your EOA
const shares = await sdk.user.bets.getUserShares({ duelId, address });
  • Fund the managed account before bets or paid tournament flows (testnet: auto-mint faucet). An empty account returns 400 Insufficient Credits.
  • Sign with your key, settle on the managed account. You sign the login (and any wallet-signed payloads); bets and payouts execute against the managed account.

Your session response (eoaLogin / eoaRegister) includes the managed address; keep it around.

On this page