Model
available + locked. unsettled and quarantined
are reserved for future settlement modes and currently always zero.
Reading balances
How locked moves
SELL orders don’t move USDC
balances — they reserve the
outcome shares you are selling instead. After you place a
SELL, your available and locked USDC are unchanged; what does
change is the available-to-promise outcome-share balance for the
underlying token. When the SELL fills on-chain, USDC proceeds land
in available per the table above.Inspect outcome-share balances via GET /api/me/positions.
Each position row carries three quantity fields:quantity— mirror total (matches on-chain ERC-1155 balance). Use for “what do I own”.availableQuantity— post-encumbrance, the amount you can currently sell or burn. Use for “what can I trade”.encumberedQuantity— shares reserved by your open SELL orders and pending co-signed vault operations (such as a merge or convert) on the same(vault, tokenId).nullwhen nothing has ever been reserved on that token. ReadavailableQuantitydirectly rather than computingquantity − encumberedQuantity: it is floored at0.
Append-only ledger
Every balance change is recorded in an append-only balance-event ledger on the platform side. The conservation invariant holds for any(user, token):
SUM(deltaAvailable) + SUM(deltaLocked) === current(available) + current(locked)
Getting testnet balance
The faucet is not an endpoint on the partner API surface. Mint testnet USDC by calling theMockCollateral contract’s public
mint(address, uint256) method directly, or use the operator-run
faucet web UI:
- Web faucet:
https://faucet.ab.testnet.adifoundation.ai/— paste the EOA, receive testnet ADI gas + mUSDC. - Direct contract mint: call
mint(yourEOA, amountWei)on the collateral address listed in Environments — no signature, no allowlist.
vault.depositERC20(...) —
the faucet flow does not credit /api/me/balances until you deposit.
See Environments — getting testnet USDC for the full step-by-step.