# Ethereum Contract ABI Lookup via Sourcify

> Ethereum Contract ABI Lookup via Sourcify is a paid API for AI agents from ari001.tailb4ac3a.ts.net, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-30).

Returns the verified ABI for an Ethereum contract address from Sourcify's public registry, including proxy detection and implementation address resolution.

## Facts

- Endpoint: GET https://ari001.tailb4ac3a.ts.net/v1/ventures/ethereum_contract_abi_service/contract_abi?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ethereum-contract-abi-lookup-via-sourcify-65acc34d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Q5sbOQM_eDd6Ff3NeJXSd

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 ethereum-contract-abi-lookup-via-sourcify-65acc34d
```

Example prompt: Can you fetch the verified ABI for Ethereum contract 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 from Sourcify, and let me know if it's a proxy and what the implementation address is?

## When to prefer this

Use this endpoint when you need the ABI of a verified Ethereum mainnet contract without running your own Ethereum node or Etherscan API key. It is ideal when you need proxy-aware ABI resolution (i.e., you want the implementation ABI, not just the proxy shell). Prefer this over manual Etherscan scraping when you need structured JSON output with proxy detection in a single call.

## Known failure modes

- Contract not verified on Sourcify — returns verified: false with null ABI
- Invalid address format (not 0x + 40 hex) — request rejected by schema validation
- Contract is an EOA (externally owned account), not a contract — no ABI available
- Sourcify registry unavailable — upstream timeout or error
- Proxy implementation not resolvable — isProxy true but implementation null

## How this service works

Returns the ABI (Application Binary Interface) of a verified Ethereum smart contract as JSON. Takes a contract address (0x + 40 hex). Query: address (contract, 0x + 40 hex).

## Output

A JSON object containing: abi (array of ABI entries for the contract or its implementation), isProxy (boolean indicating if the contract uses a proxy pattern), implementation (the implementation contract address if isProxy is true, else null), verified (boolean indicating Sourcify verification status), address (the queried contract address), and match (partial or full match type from Sourcify).

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "address"
     ],
     "properties": {
      "address": {
       "type": "string",
       "pattern": "^0x[a-fA-F0-9]{40}$",
       "description": "contract, 0x + 40 hex"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "ok",
      "service"
     ],
     "properties": {
      "ok": {
       "type": "boolean"
      },
      "chain": {
       "type": "string"
      },
      "error": {
       "type": "string",
       "description": "present when ok is false"
      },
      "method": {
       "type": "string"
      },
      "result": {
       "type": "object",
       "properties": {
        "abi": {
         "type": [
          "array",
          "null"
         ]
        },
        "match": {
         "type": [
          "string",
          "null"
         ]
        },
        "proxy": {
         "type": [
          "object",
          "null"
         ]
        },
        "address": {
         "type": "string",
         "pattern": "^0x[0-9a-fA-F]{40}$"
        },
        "isProxy": {
         "type": [
          "boolean",
          "null"
         ]
        },
        "verified": {
         "type": "boolean"
        },
        "implementation": {
         "type": [
          "string",
          "null"
         ]
        }
       }
      },
      "service": {
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ethereum-contract-abi-lookup-via-sourcify-65acc34d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from ari001.tailb4ac3a.ts.net](https://www.zero.xyz/host/ari001.tailb4ac3a.ts.net/llms.txt)
