| @assertions:absdiff! | number | Absolute difference |
| @assertions:balance! | number | Read a balance on-chain at assertion time: the native balance for ETH, or an ERC-20 balanceOf for any token symbol or address. |
| @assertions:blocknumber! | number | The block number at assertion time (not at script build time). |
| @assertions:bool! | bool | Compose live comparisons with on-chain logic (and, or, xor, not), evaluated at assertion time via the combinators contract. |
| @assertions:bytelen! | number | The raw byte length of the return data of a call, on-chain (a uint256[] with n items is 64 + n*32 bytes). |
| @assertions:bytes! | number | Bitwise word operations computed on-chain (& ` |
| @assertions:chainid! | number | The chain id at assertion time, read on-chain — unlike assert-chainid it composes into expressions. |
| @assertions:charset! | bool | Whether every byte of the string return of a call is in a character class, checked on-chain — only-lowercase is @charset!(call a-z). |
| @assertions:codehash | bytes32 | Read the code hash of an address at script build time, with EXTCODEHASH semantics: bytes32(0) for a nonexistent account (zero nonce, balance and code), keccak256 of the code otherwise. Matches what @codehash! reads on-chain at assertion time. |
| @assertions:codehash! | bytes32 | The EXTCODEHASH of an account, read on-chain at assertion time: bytes32(0) for a nonexistent account, keccak256 of the code otherwise. The account can be a :: call resolving to an address, such as a proxy implementation. |
| @assertions:hash! | bytes32 | keccak256 of the raw return data of a call, computed on-chain — compare structs, arrays or long strings against a precomputed hash. |
| @assertions:includes! | bool | Whether the string return of a call contains a substring, checked on-chain — exact byte sequence, case-sensitive, no wildcards. |
| @assertions:invoke! | any | Call a read-only function with live arguments at assertion time: the target and any argument may be a :: call or an on-chain helper, compiled to the combinators invoke primitive. |
| @assertions:len! | number | The decoded length of the dynamic return value of a call, on-chain: element count for arrays, byte length for string/bytes. |
| @assertions:max! | number | Maximum of two or more values, computed on-chain at assertion time. |
| @assertions:min! | number | Minimum of two or more values, computed on-chain at assertion time. |
| @assertions:not! | any | Negation computed on-chain, dispatched on the operand: logical not for booleans (stays a bool), bitwise complement of the raw 32-byte word for numbers and bytes32. Never a conversion — cast explicitly with @bytes!(x) first if needed. |
| @assertions:num! | number | Compose live calls and constants with on-chain arithmetic (+ - * / % ^, xor), evaluated at assertion time via the combinators contract. |
| @assertions:split! | string | Split the string return of a call on a delimiter and select one segment, on-chain. A negative index counts from the end (-1 = last segment). |
| @assertions:timestamp! | number | The block timestamp at assertion time (not at script build time). |