readCircuit

suspend fun readCircuit(contractJs: String, contractAddress: String, circuitName: String, circuitArgs: List<String> = emptyList(), initialPrivateState: String, coinPublicKey: ByteArray, onChainStateHex: String, constructorArgs: List<String> = emptyList(), networkId: String = "undeployed", witnesses: Map<String, WitnessProvider> = emptyMap()): String

Run a view/getter circuit against the on-chain state and return its RETURN value as JSON — no proving, no transaction, no submit. BigInt → decimal string, Uint8Array → hex, nested structs preserved (see jsonSafe). Lets a dApp read a contract's computed views (balances, proposals, thresholds) that aren't exposed as raw ledger fields.