Docs/Getting started/Balance markets
Balance markets
Resolve a market from one account's exact ERC20 balance using a strict Below or inclusive At least boundary.
Observed balance#
The resolver calls balanceOf(account) for one ERC20 token and one nonzero account whenever the market is checked.
A Balance Market can observe a wallet, treasury, bridge, vault, protocol contract, burn address, or any other nonzero EVM account. It asks whether that account's exact token balance is below or at least a token-denominated threshold.
Condition and units#
| UI language | Contract operator | YES when |
|---|---|---|
| Below | LT / 0 | balanceOf(account) is strictly below the threshold. Equality is NO. |
| At least | GTE / 3 | balanceOf(account) is equal to or greater than the threshold. |
The interface reads the token's metadata and decimals, validates a nonzero 20-byte account, previews its current balance, and encodes the human threshold into the token's smallest units.
Creation and settlement#
initialize(
address token,
address account,
uint256 threshold,
StateComparators.Operator operator // LT (0) or GTE (3)
)Balance Markets use the same Before deadline and At deadline modes, collateral, order book, fees, resolution, and redemption mechanics as every other State Market. The observed token, account, threshold, and comparator cannot change after creation.
Security and interpretation#
- The verified implementation rejects a zero token, zero account, unsupported comparator, and token addresses without deployed bytecode.
- Transfers, flash loans, rebases, wrappers, token-specific accounting, and upgradeable token behavior can change the observed balance.
- The value is the ERC20 contract's own return; it does not include economically related balances held by other accounts.
- A revert or malformed return follows the protocol's normal reader-failure and deadline rules.