Use the deployment nonce for native EraVM CREATE predictions
A ZKsync account can submit many transactions and deploy only a few contracts. Native contract creation uses a deployment nonce distinct from the transaction nonce.
Separate the two counters
For the deploying account and a pinned state, inspect the deployment nonce through the relevant system-contract interface or supported SDK. Identify the account that actually performs CREATE; a user calling a factory is often not that account.
account transaction nonce = 18
account deployment nonce = 3
ordinary native CREATE uses the deployment sequence
In the example, feeding 18 into an address prediction because it came from eth_getTransactionCount selects the wrong sequence. Use the native CREATE derivation with the deployment nonce three and confirm the result against a controlled deployment trace.
Recheck the state before relying on the address
Another intervening deployment by the same creator can change the expected nonce. A successful address calculation does not reserve it. For EVM-interpreted deployments, use the rules for that execution path rather than copying native assumptions. docs.zksync.io ZKsync documentation