A mint page can be technically available and still be wrong: the wallet is on another network, the displayed price is stale, or the page points at a contract address that does not match the deployment. My pre-deploy check is about catching those mismatches before a transaction can take money.
The pre-deploy checklist: one address, checked chain, live price
I keep the contract address in exactly one place: the page’s configuration. The mint flow reads it from there; it does not duplicate the address in a component, a helper, and a deployment note. That makes address changes reviewable and prevents different parts of the page from quietly targeting different contracts.
Before every mint, I check the wallet’s chainId against the expected chain. A check on page load is not enough: the user can switch networks after loading the page. The check belongs immediately before sending the transaction.
I also read the mint price from the contract at runtime.…