Question: I have noticed by doing some tests that when I publish the same contract on different networks, the address is the same. Then, the "Etherscan" of each network show a link to **blockscan.com** where it show all the EVM networks with the same address.

But I can't find the pattern of how it happens...

How could deploy a contract in several EVM networks with the certainty that all will have the same address?

Answer: 
Your contracts will also have the same address if you deploy them with the same nonce. Let's say you take a fresh wallet that has 0 transactions in it. And you use the very first transaction in each network to deploy your contract, then you will also have the same contract addresses across all networks.
Incoming transactions do not use a nonce, so you can send some ETH or whatever to that fresh wallet to fund the deployment. But do nothing else with it...just deploy. Then you will have same addresses.
**Simple answer:** Create a new clean wallet, and use its private key to deploy the contract.

This will work because;

```
contractAddress = keccak256(userAddress, nonce);
// NOTE: nonce is the number of transactions done by userAddress.

```

Becasue your wallet is new, and hasn't done **any** previous transactions, your nonce will be zero.