Read, do not write
A contract read calls a view or pure function. It does not change blockchain state, does not ask the user to pay gas, and does not open a wallet signature popup.
Use reads for things like name, symbol, totalSupply, balanceOf, owner, proposal count, or a public mapping getter.
What Wagmi does
Wagmi is a React Hooks library for Ethereum. For reading contracts, you use useReadContract from wagmi.
TanStack Query sits under this flow. It handles async state like loading, error, cached data, and refetching. Your UI should show those states clearly, not just console.log the result.