On-chain state read from the contract via dry-run queries (no tx needed).
Submit transactions to the contract. Each action does a dry-run first, then signs and submits.