Skip to main content

Vyper verification

Sourcify supports Vyper verification via the /verify/vyper API endpoint, you can find more information in the APIs documentation.

Vyper doesn't support metadata, so most of Sourcify features are not available for Vyper.

Vyper Feature Support

  • 🟢 Partial match: Sourcify uses the metadata hash as a compilation fingerprint (you can read more about it here), since Vyper doesn't support metadata, every Vyper match will result in a partial match. Starting from version 0.4.1 Vyper implements a similar concept called integrity, but Sourcify doesn't support it yet.
  • 🟢 Database transformations: For more details, see the Sourcify Database section. Currently, Vyper verification supports cborAuxdata, immutable and constructorArguments transformations.
  • 🟢 Generated metadata: Sourcify generates a metadata file for Vyper contracts, but it's used only for compatibility with the Sourcify File Repositories.
  • 🟡 IPFS support: Sourcify automatically uploads all verified contract's sources to IPFS. Even if the files are on IPFS, there is no link to them in the Vyper contract's bytecode. This is because Vyper doesn't include the metadata IPFS CID in the bytecode's auxdata.
  • 🔴 Full match: Not possible due to lack of metadata support.
  • 🔴 Verification via UI: Sourcify UI is based on the metadata and uses the statfull /session/* API endpoints, currently Sourcify support Vyper verification only via the stateless /verify/vyper API endpoint.
  • 🔴 Monitoring: Monitor listens for create operations on many chains. It attempts to fetch the sources of deployed contracts from IPFS using the metadata embedded in the bytecodes. Since Vyper doesn't support metadata, Sourcify can't fetch the sources from IPFS.