Monitoring Service
Sourcify runs a "monitor" that listens to certain chains and checks 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 tries metadata-based verification first. This flow is Solidity-specific because it depends on Solidity metadata.
For Solidity contracts, the monitor will try to fetch metadata from Swarm/IPFS and then fetch sources referenced in the metadata. If all files are found, the monitor compiles and verifies the contract automatically.
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.
If metadata-based verification is not possible or doesn't produce a match, the monitor also triggers a delayed similarity verification job. This is also relevant for Vyper contracts.
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 hello@sourcify.dev