Overview
Sourcify provides a public server API for verification, and checking if a contract is verified, and a repository API for retrieving files.
Repository
- Get file from repo.sourcify.dev:
GET http://<repository-host>/contracts/:full_match | partial_match/:chain/:address/:filePath
- Get repository stats:
GET http://<repository-host>/stats.json
Server
Deployed server APIs are: https://sourcify.dev/server
and https://staging.sourcify.dev/server
.
- Check by addresses (full match) :
GET /check-by-addresses?addresses={addresses}&chainIds={chainIds}
- Check by addresses (full or partial match) :
GET /check-by-all-addresses?addresses={addresses}&chainIds={chainIds}
- Get file tree (full match) :
GET /files/tree/:chain/:address
- Get file tree (full or partial match) :
GET /files/tree/any/:chain/:address
- Get source files (full match) :
GET /files/:chain/:address
- Get source files (full or partial match) :
GET /files/any/:chain/:address
- Get contract addresses (full or partial match) :
GET /files/contracts/:chain
- Get file from /repository:
GET /repository/contracts/:full_match | partial_match/:chain/:address/:filePath
Verification API
- Verify :
POST /
orPOST /verify
- Verify from Etherscan :
POST /verify/etherscan
- Create2 Verification :
POST /verify/create2
Session-based Verification API
note
Session-based API is only meant for the sourcify.dev UI. Because it makes use of session cookies and it is not possible have Access-Control-Allow-Origin: *
with credentials: true
, meaning these endpoints can only be used on explicitly set domains on the browser. (e.g. sourcify.dev). Please use the verification API if you want Sourcify on your frontend.
- Add input files :
POST /session/input-files
- Get session data :
GET /session/data
- Clear session :
POST /session/clear
- Verify validated :
POST /session/verify-validated
- Verify from Etherscan :
POST /session/verify/etherscan
- Create2 Verification :
POST /session/verify/create2
- Create2 Compilation :
POST /session/verify/create2/compile
- Add input contract :
POST /session/input-contract
Other
- Get Sourcify chains:
GET /chains
- Server health :
GET /health