# Contract ABI Lookup (Sourcify-verified, Multi-chain)

> Contract ABI Lookup (Sourcify-verified, Multi-chain) is a paid API for AI agents from agent-data-tools.revmesh2074.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-26).

Returns the verified ABI, function/event signatures, compiler info, and optionally source code for a smart contract on Ethereum, Base, Arbitrum, Optimism, or Polygon.

## Facts

- Endpoint: GET https://agent-data-tools.revmesh2074.workers.dev/contract/abi?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-26
- Activations on Zero: 0
- Provider: agent-data-tools.revmesh2074.workers.dev
- Website: https://agent-data-tools.revmesh2074.workers.dev
- Tags: x402
- Canonical page: https://www.zero.xyz/c/agent-data-tools-revmesh2074-workers-dev-contract-abi-lookup-sourcify-81846e97
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_b5Sokx1R2Q3rSg0Un6Lbj

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agent-data-tools-revmesh2074-workers-dev-contract-abi-lookup-sourcify-81846e97
```

Example prompt: Can you fetch the verified ABI for the contract at 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 on Ethereum — I want to see its function signatures before I call it?

## When to prefer this

Use this endpoint when you need to inspect, call, or decode a smart contract and need its verified ABI from Sourcify — particularly when you need function/event signatures before making an eth_call, when you want to confirm a proxy's implementation, or when you need the actual Solidity source. Prefer this over on-chain approaches when you want human-readable function names and structured ABI without manual decoding. Best choice when working across Ethereum, Base, Arbitrum, Optimism, or Polygon with a single unified API.

## Known failure modes

- Contract not verified on Sourcify → 404 (not charged)
- Invalid or malformed contract address → error response
- Unsupported chain name → error response
- Contract address is an EOA (not a contract) → 404
- Source file exceeds 20,000 characters → truncated or omitted

## How this service works

Contract ABI, verified contract. The verified ABI of a smart contract on Ethereum, Base, Arbitrum, Optimism or Polygon from Sourcify's open verification repository: contract name, compiler, match quality, every function and event signature, the full ABI, and for proxies the implementation contract with its ABI. Optional source=true adds the main source file (up to 20,000 characters). Unverified contracts are an uncharged 404. Use before calling or decoding a contract.

## Output

Returns a JSON object with: contract name, chain, compiler version, match quality (full/partial), an array of function objects with signatures and state mutability, an array of event signatures, the full raw ABI array, and optionally the main Solidity source file (up to 20,000 characters). For proxy contracts, also returns a proxy object with type, implementation address, implementation name, and the implementation's ABI. Unverified contracts return a 404 (not charged).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "address"
     ],
     "properties": {
      "chain": {
       "type": "string",
       "examples": [
        "base"
       ],
       "description": "ethereum (default), base, arbitrum, optimism or polygon"
      },
      "source": {
       "type": "string",
       "examples": [
        "false"
       ],
       "description": "true to include the main source file"
      },
      "address": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "examples": [
        "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
       ],
       "description": "Contract 0x address"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "abi": {
       "type": "array",
       "items": {}
      },
      "name": {
       "type": "string"
      },
      "chain": {
       "type": "string"
      },
      "match": {
       "type": "string"
      },
      "proxy": {
       "type": "object",
       "properties": {
        "type": {
         "type": "string"
        },
        "implementation": {
         "type": "string"
        },
        "implementationName": {
         "type": "string"
        }
       }
      },
      "errors": {
       "type": "array",
       "items": {}
      },
      "events": {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      "source": {
       "type": "string"
      },
      "address": {
       "type": "string"
      },
      "compiler": {
       "type": "string"
      },
      "functions": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "signature": {
          "type": "string"
         },
         "stateMutability": {
          "type": "string"
         }
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "abi": [],
  "name": "FiatTokenProxy",
  "chain": "Ethereum",
  "match": "exact_match",
  "proxy": {
   "type": "ZeppelinOSProxy",
   "implementation": "0x2Ce6311ddAE708829bc0784C967b7d77D19FD779",
   "implementationName": "FiatTokenV2_2"
  },
  "errors": [],
  "events": [
   "Transfer(address,address,uint256)"
  ],
  "source": "Sourcify (sourcify.dev)",
  "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
  "compiler": "0.6.12+commit.27d51765",
  "functions": [
   {
    "signature": "transfer(address,uint256)",
    "stateMutability": "nonpayable"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agent-data-tools-revmesh2074-workers-dev-contract-abi-lookup-sourcify-81846e97/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-data-tools.revmesh2074.workers.dev](https://www.zero.xyz/host/agent-data-tools.revmesh2074.workers.dev/llms.txt)
