{
  "openapi": "3.1.0",
  "info": {
    "title": "Verify Source Code on zkSync",
    "version": "2.0.0",
    "description": "Submit zkSync source code for verification.",
    "license": {
      "name": "Etherscan API Terms",
      "url": "https://etherscan.io/terms"
    }
  },
  "servers": [
    {
      "url": "https://api.etherscan.io",
      "description": "Etherscan API."
    }
  ],
  "security": [
    {
      "apiKey": []
    }
  ],
  "paths": {
    "/v2/api": {
      "post": {
        "operationId": "postVerifyzksyncsourcecode",
        "summary": "Verify Source Code on zkSync",
        "description": "Submit zkSync source code for verification.",
        "parameters": [
          {
            "name": "chainid",
            "in": "query",
            "required": true,
            "description": "Chain ID to query, eg 324 for zkSync Era from our supported chains.",
            "schema": {
              "type": "string"
            },
            "example": "324"
          },
          {
            "name": "module",
            "in": "query",
            "required": true,
            "description": "Set to contract for this endpoint.",
            "schema": {
              "type": "string",
              "default": "contract"
            },
            "example": "contract"
          },
          {
            "name": "action",
            "in": "query",
            "required": true,
            "description": "Set to verifysourcecode for this endpoint.",
            "schema": {
              "type": "string",
              "default": "verifysourcecode"
            },
            "example": "verifysourcecode"
          }
        ],
        "security": [
          {
            "apiKey": []
          }
        ],
        "x-mint": {
          "metadata": {
            "title": "Verify Source Code on zkSync",
            "description": "Submit zkSync source code for verification."
          }
        },
        "x-etherscan-source-page": {
          "page": "api-reference/endpoint/verifyzksyncsourcecode",
          "title": "Verify Source Code on zkSync",
          "module": "contract",
          "action": "verifysourcecode"
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "codeformat": {
                    "type": "string",
                    "examples": [
                      "solidity-standard-json-input"
                    ],
                    "description": "Use `solidity-single-file` for a single file or `solidity-standard-json-input` for JSON input."
                  },
                  "sourceCode": {
                    "type": "string",
                    "description": "The Solidity source code to verify."
                  },
                  "constructorArguments": {
                    "type": "string",
                    "examples": [
                      "00000000000000000000000074271f2282ed7ee35c166122a60c9830354be42a"
                    ],
                    "description": "Optional constructor arguments used in contract deployment."
                  },
                  "contractaddress": {
                    "type": "string",
                    "examples": [
                      "0xf66f984e0b73453193b452f84c8fff0ed19f6d81"
                    ],
                    "description": "The address where the contract is deployed."
                  },
                  "contractname": {
                    "type": "string",
                    "examples": [
                      "contracts/Verified.sol:Verified"
                    ],
                    "description": "The contract name, including path if applicable."
                  },
                  "compilerversion": {
                    "type": "string",
                    "examples": [
                      "v0.8.24+commit.e11b9ed9"
                    ],
                    "description": "Compiler version used for compilation."
                  },
                  "optimizationUsed": {
                    "type": "string",
                    "examples": [
                      "0"
                    ],
                    "description": "Required when codeformat is solidity-single-file. Use 1 if optimization was used or 0 if disabled."
                  },
                  "zksolcVersion": {
                    "type": "string",
                    "examples": [
                      "v1.3.13"
                    ],
                    "description": "Required for EraVM contracts and optional for EVM contracts. Use a version with the v prefix, beginning with v1.3.0."
                  }
                },
                "required": [
                  "contractaddress",
                  "sourceCode",
                  "contractname",
                  "compilerversion",
                  "zksolcVersion"
                ]
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "apiKey": {
        "type": "apiKey",
        "in": "query",
        "name": "apikey",
        "description": "Your Etherscan API key."
      }
    }
  }
}