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

# Get Contract ABI for Verified Contract

> Returns the Contract Application Binary Interface (ABI) of a verified smart contract.
Also available through a GraphQL 'addresses' query.




## OpenAPI

````yaml /openapi-specs/jsonrpc-endpoints.yaml get /?module=contract&action=getabi
openapi: 3.1.0
info:
  title: Blockscout RPC API
  version: 1.0.0
  description: >
    Blockscout is an open-source blockchain explorer for Ethereum-based
    networks.


    This API is provided for developers transitioning applications from
    Etherscan to Blockscout 

    and applications requiring general API and data support. It supports GET and
    POST requests.


    ## Authentication


    **API keys are OPTIONAL** for all RPC endpoints. The API works without
    authentication but has different rate limits:


    - **Without API key:** 5 requests per second (shared pool across all users)

    - **With API key:** 10 requests per second per key (dedicated limit)

    - **Free tier:** Up to 3 API keys per account at no cost


    To use an API key, add `apikey=YOUR_API_KEY` to the query string:

    ```

    https://eth.blockscout.com/api?module=account&action=balance&address=0x123...&apikey=YOUR_API_KEY

    ```


    ## Base URL Format

    URLs vary by instance. With typical installations, access the API by adding
    `/api` to the end 

    of the instance URL.


    **Example:** `https://eth-sepolia.blockscout.com/api`


    ## Query Format


    ### RPC API (Module/Action format)

    An example query includes a module and action(s)/parameters:

    ```

    https://eth-sepolia.blockscout.com/api?module=account&action=balance&address=0x123...

    ```


    ### ETH RPC API (JSON-RPC format)

    Standard Ethereum JSON-RPC methods use POST requests to `/api/eth-rpc`:

    ```

    POST https://eth.blockscout.com/api/eth-rpc

    Content-Type: application/json


    {"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}

    ```


    Note: API keys can also be used with ETH RPC endpoints by adding
    `?apikey=YOUR_API_KEY` to the URL.
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  contact:
    name: Blockscout Community
    url: https://discord.gg/blockscout
servers:
  - url: https://eth.blockscout.com/api
    description: Ethereum Mainnet Explorer (RPC API)
  - url: https://eth-sepolia.blockscout.com/api
    description: Ethereum Sepolia Testnet Explorer (RPC API)
  - url: https://base.blockscout.com/api
    description: Base Mainnet Explorer (RPC API)
  - url: https://optimism.blockscout.com/api
    description: Optimism Mainnet Explorer (RPC API)
  - url: https://gnosis.blockscout.com/api
    description: Gnosis Chain Explorer (RPC API)
security:
  - {}
tags:
  - name: Account
    description: Account-related endpoints
  - name: Block
    description: Block-related endpoints
  - name: Contract
    description: Smart contract-related endpoints
  - name: Logs
    description: Event logs endpoints
  - name: Stats
    description: Network statistics endpoints
  - name: Token
    description: Token-related endpoints
  - name: Transaction
    description: Transaction-related endpoints
  - name: ETH RPC
    description: Ethereum JSON-RPC compatible endpoints
externalDocs:
  url: https://docs.blockscout.com/devs/apis/rpc
paths:
  /?module=contract&action=getabi:
    get:
      tags:
        - Contract
      summary: Get Contract ABI for Verified Contract
      description: >
        Returns the Contract Application Binary Interface (ABI) of a verified
        smart contract.

        Also available through a GraphQL 'addresses' query.
      operationId: get-contract-abi
      parameters:
        - $ref: '#/components/parameters/module_contract'
        - $ref: '#/components/parameters/action_getabi'
        - in: query
          name: address
          schema:
            $ref: '#/components/schemas/AddressHash'
          required: true
          description: Contract address
      responses:
        '200':
          description: Contract ABI retrieved successfully
          content:
            application/json:
              schema:
                oneOf:
                  - allOf:
                      - $ref: '#/components/schemas/ResponseOK'
                      - type: object
                        properties:
                          result:
                            type: string
                            description: JSON-encoded ABI
                  - $ref: '#/components/schemas/ResponseNOTOK'
      externalDocs:
        url: https://docs.blockscout.com/devs/apis/rpc/contract
components:
  parameters:
    module_contract:
      name: module
      in: query
      required: true
      schema:
        type: string
        enum:
          - contract
      description: Module name (must be 'contract')
    action_getabi:
      name: action
      in: query
      required: true
      schema:
        type: string
        enum:
          - getabi
  schemas:
    AddressHash:
      type: string
      pattern: ^0x[a-fA-F0-9]{40}$
      example: '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae'
      description: 40-character hexadecimal address hash with 0x prefix
    ResponseOK:
      type: object
      properties:
        status:
          type: string
          enum:
            - '1'
          description: Status code (1 = OK)
        message:
          type: string
          example: OK
          description: Response message
    ResponseNOTOK:
      type: object
      properties:
        status:
          type: string
          enum:
            - '0'
          description: Status code (0 = Error)
        message:
          type: string
          example: NOTOK
          description: Error message
        result:
          type: string
          nullable: true
          description: Error details

````