/v1/source
The verified Solidity source files
Try it live
10 free calls per day — no sign-up, no API key. Goes through the oanor gateway.
It works. Grab an API key and use it in your project.
Get an API keyCode snippets
curl "https://api.oanor.com/contractverify-api/v1/source" \ -H "x-oanor-key: oanor_test_..."
await fetch("https://api.oanor.com/contractverify-api/v1/source", {
headers: { "x-oanor-key": "oanor_test_..." }
});
$ch = curl_init("https://api.oanor.com/contractverify-api/v1/source");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$out = curl_exec($ch);
import requests
requests.get(
"https://api.oanor.com/contractverify-api/v1/source",
headers={"x-oanor-key": "oanor_test_..."}
)
Example response
A real response from this endpoint, captured by the latest health check.
{
"data": {
"name": "FiatTokenProxy",
"note": "Verified Solidity source files for the contract.",
"files": [
{
"path": "FiatTokenProxy.sol",
"content": "pragma solidity ^0.4.24;\r\n\r\n// File: zos-lib/contracts/upgradeability/Proxy.sol\r\n\r\n/**\r\n * @title Proxy\r\n * @dev Implements delegation of calls to other contracts, with proper\r\n * forwarding of return values and bubbling of failures.\r\n * It defines a fallback function that delegates all calls to the address\r\n * returned by the abstract _implementation() internal function.\r\n */\r\ncontract Proxy {\r\n /**\r\n * @dev Fallback function.\r\n * Implemented entirely in `_fallback`.\r\n */\r\n function () payable external {\r\n _fallback();\r\n }\r\n\r\n /**\r\n * @return The Address of the implementation.\r\n */\r\n function _implementation() internal view returns (address);\r\n\r\n /**\r\n * @dev Delegates execution to an implementation contract.\r\n * This is a low level function that doesn't return to its internal call site.\r\n * It will return to the external caller whatever the implementation returns.\r\n * @param implementation Address to delegate.\r\n */\r\n function _delegate(address implementation) internal {\r\n assembly {\r\n // Copy msg.data. We take full control of memory in this inline assembly\r\n // block because it will not return to Solidity code. We overwrite the\r\n // Solidity scratch pad at memory position 0.\r\n calldatacopy(0, 0, calldatasize)\r\n\r\n // Call the implementation.\r\n // out and outsize are 0 because we don't know the size yet.\r\n let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0)\r\n\r\n // Copy the returned data.\r\n returndatacopy(0, 0, returndatasize)\r\n\r\n switch result\r\n // delegatecall returns 0 on error.\r\n case 0 { revert(0, returndatasize) }\r\n default { return(0, returndatasize) }\r\n }\r\n }\r\n\r\n /**\r\n * @dev Function that is run as the first thing in the fallback function.\r\n * Can be redefined in derived contracts to add functionality.\r\n * Redefinitions must call super._willFallback().\r\n */\r\n function _willFallback() internal {\r\n }\r\n\r\n /**\r\n * @dev fallback implementation.\r\n * Extracted to enable manual triggering.\r\n */\r\n function _fallback() internal {\r\n _willFallback();\r\n _delegate(_implementation());\r\n }\r\n}\r\n\r\n// File: openzeppelin-solidity/contracts/AddressUtils.sol\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether t
…