Sourcify runs a "monitor" that listens to certain chains and checks contract creations (currently only checking tx's with
tx.to === null and can't catch evm level contract creations). You can see which chains are monitored in Supported Chains table under "Monitoring" column.
If the monitor notices a contract creation it checks the contract bytecode for the appended metadata hash and will try to fetch the metadata file from Swarm or IPFS. If it succeeds, it further tries to fetch the source files. The source files will be either embedded in the metadata file in text form, or they will have IPFS hashes in the metadata file. If all the files are found, the monitor tries to compile and verify the detected contract with the fetched files.
This means, for the monitored chains, the contract deployer does not even have to manually verify the contract at Sourcify. As long as the metadata and the source files are published around the deploy time (defaults to 30 mins after noticing the new contract), the contract will be verified automatically.
Which chains do we monitor?
Sourcify operates on a non-profit basis. This means that the project does not generate any revenue, and its primary focus is on serving the community.
Despite its altruistic goals, Sourcify faces resource limitations that prevent it from monitoring every single smart contract on every chain. However, the project is committed to supporting the Ethereum ecosystem, including (but not limited to) both the mainnet and testnets.
At present, the Sourcify team decides internally which chains to monitor, based on a set of criteria. Specifically, we prefer chains that rely exclusively on Sourcify verification, as well as those that increase the visibility of Sourcify. Additionally, Sourcify is more likely to support chains that actively contribute to Sourcify.
If you are interested in Sourcify monitoring please reach out to firstname.lastname@example.org