> ## Documentation Index
> Fetch the complete documentation index at: https://docs.etherscan.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify Vyper Source Code

> Submit a Vyper contract for verification.

export const chain = '1';

<ResponseExample>
  ```json Example response theme={null}
  {
      "status": "1",
      "message": "OK",
      "result": "a7lpxkm9kpcpicx7daftmjifrfhiuhf5vqqnawhkfhzfrcpnxj"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi/api-reference/endpoint/verifyvyper.json POST /v2/api
openapi: 3.1.0
info:
  title: Verify Vyper Source Code
  version: 2.0.0
  description: Submit a Vyper contract 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:
      summary: Verify Vyper Source Code
      description: Submit a Vyper contract for verification.
      operationId: postVerifyvyper
      parameters:
        - name: chainid
          in: query
          required: true
          description: >-
            Chain ID to query, eg 1 for Ethereum, 42161 for Arbitrum from our
            [supported chains](/supported-chains).
          schema:
            type: string
          example: '1'
        - 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
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                codeformat:
                  type: string
                  examples:
                    - vyper-json
                  description: Use `vyper-json` for Vyper contracts.
                sourceCode:
                  type: string
                  description: The Vyper source code in JSON format.
                constructorArguments:
                  type: string
                  examples:
                    - >-
                      00000000000000000000000074271f2282ed7ee35c166122a60c9830354be42a
                  description: Optional constructor arguments used in contract deployment.
                contractaddress:
                  type: string
                  examples:
                    - '0xdAC17F958D2ee523a2206206994597C13D831ec7'
                  description: The address where the contract is deployed.
                contractname:
                  type: string
                  examples:
                    - contracts/Verified.vy:Verified
                  description: The contract name, including path if applicable.
                compilerversion:
                  type: string
                  examples:
                    - vyper:0.4.0
                  description: >-
                    Compiler version used for compilation. See the [supported
                    Vyper compiler
                    versions](https://etherscan.io/vyperversions).
                optimizationUsed:
                  type: string
                  examples:
                    - '0'
                  description: >-
                    Use `1` if compiler optimizations were enabled, otherwise
                    `0`.
              required:
                - codeformat
                - sourceCode
                - contractaddress
                - contractname
                - compilerversion
                - optimizationUsed
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: >-
                      1 if the request returned data, 0 otherwise. A status of 0
                      can indicate an error or a valid request that returned no
                      records.
                  message:
                    type: string
                    description: >-
                      OK on success, otherwise an error description such as
                      NOTOK. See [common error
                      messages](/common-error-messages).
                  result:
                    type: string
                    description: >-
                      GUID for the verification submission. Use it with
                      [checkverifystatus](/api-reference/endpoint/checkverifystatus)
                      to poll the result.
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: apikey
      description: >-
        Enter your Etherscan API key, or [set one up](/set-up-your-api-key) if
        you don't have one.

````