Where your B3 is held
Deposited B3 sits in a vault contract on Base. Who controls it, the limits it enforces, how to check reserves and find your transactions on Basescan.
All the B3 players deposit sits in one contract on Base, Basement's vault. Your Basement B3 balance is the share of it that Basement's ledger records as yours. This page covers who controls the vault, what it lets out, and how to check it holds what it should.
Real B3 is for adults 18 and over who've accepted the in-app terms, and it isn't offered in every region. Every B3 pick is a bet you can lose, and play credits never become B3. See Play responsibly.
The vault contract
The vault on Base:
0x596e...3374
↗
The full address, to check against Basescan: 0x596e501A1018B549Eb302911e37cE068fbC33374
The contract can't be upgraded. Only Basement's operator key can send B3 out of it, within the caps below, and the vault pays each withdrawal id at most once, so a repeated or replayed payment can't go out twice. The contract doesn't check who receives a withdrawal. Basement's server does: it sends a player's withdrawal only to an address that player added and that has finished its wait, and checks that again right before the withdrawal is signed.
| Role | Held by | Can |
|---|---|---|
| Owner | A multisig Safe | Set the operator, the guardian and the caps. Pause and unpause. Send back tokens other than B3 that were sent by mistake. |
| Operator | Basement's withdrawal key | Send withdrawals within the caps, each withdrawal id once |
| Guardian | A separate key | Pause the vault, and nothing else |
B3 only leaves the vault through the operator's withdrawals. The owner can send back other tokens, but never B3. While the vault is paused, deposits and withdrawals stop on-chain, and only the owner can unpause it.
Basement is custodial. The caps limit what a stolen operator key could take, and the reserves check below stops B3 when the numbers don't add up. The owner can still replace the operator and change the caps, so you're trusting Basement to keep the owner Safe and the ledger honest. Only deposit what you're comfortable trusting Basement to hold.
Limits the vault enforces
Today the vault allows at most 100,000 B3 in one withdrawal and 500,000 B3 a day across all players. The daily total refills evenly over 24 hours. A player's withdrawal that hits the daily total isn't refused. It waits in line until the total refills (see Withdraw B3).
You can read these on the contract as maxPerWithdrawal, dailyCap and availableToday. Values on-chain are in B3's smallest unit, because the token has 18 decimals, so 100,000 B3 reads as 100000000000000000000000. The owner can change the caps. Lowering one takes effect at once, and raising one only makes the allowance refill faster from then on.
Check the reserves
Basement publishes its reserves at a public URL:
bashcurl https://basement.fun/api/b3/reserves
| Field | What it is |
|---|---|
ok | true when the vault covers everything the ledger says it holds |
vault | Whole B3 in the vault right now |
owed | B3 that belongs to players: balances, B3 riding on open picks and Drops, withdrawals not yet confirmed, and deposits sent for an address no account owns yet |
house | B3 in the house account, which pays winning picks and takes losing stakes |
inFlight | B3 in withdrawals that have been sent but not yet confirmed |
paidInFlight | The part of inFlight the vault has already paid out |
surplus | B3 in the vault that nobody is credited with, such as fractions under 1 B3 and plain transfers |
checkedAt | When the check ran, in milliseconds since 1 January 1970 (UTC) |
vaultAddress | The vault contract |
token | The B3 token contract |
The check passes when vault plus paidInFlight is at least owed plus house, and the ledger balances: owed plus house equals all B3 ever deposited minus all B3 withdrawn. The response is cached for 30 seconds. Now and then it answers "Reserves are being checked. Try again in a moment." while a fresh check runs.
Basement runs this check every minute and again right before each withdrawal is sent. If it fails, B3 pauses by itself (see When B3 is paused) and resumes once the numbers match again.
To check the vault side without relying on Basement, open the vault on Basescan and compare its B3 balance with vault.
B3 on its way from your deposit address
B3 you send to your Basement address sits there until Basement moves it into the vault, usually within a minute once at least 5,000 B3 is there (see Deposit B3). Until then it isn't in vault and isn't in owed: it isn't in your balance yet. Your address is run by Basement, which moves only B3 from it, and only into the vault, credited to you.
Find your transactions on Basescan
- In the wallet's B3 tab, each deposit and withdrawal in Activity has a link icon that opens the transaction on Basescan.
- On the deposit screen, a deposit on its way has a View on Basescan link to your send while it shows "Arrived at your address" or "Moving into your balance". A deposit sent with Send from in the wallet gets its link as soon as it's sent and shows "Waiting for Base". A withdrawal gets its link once it has landed.
- The bottom of the deposit screen links the vault itself.
On Basescan, look at the B3 token transfer in the transaction. A deposit shows up twice: your send to your Basement address, then that address moving it into the vault. A deposit made with Send from goes from your wallet straight into the vault. A withdrawal moves B3 from the vault to the address you picked.
Don't send B3 to the vault yourself
The B3 token on Base is
0xB3B3...B3B3
↗
, with 18 decimals. Basement credits whole B3 only.
B3 sent straight to the vault address with an ordinary transfer credits nobody and can't be sent back. It shows up in surplus, not in your balance. Send B3 to your Basement address instead (Deposit in the wallet).