# OneSource Proxy Pattern Detector

> OneSource Proxy Pattern Detector is a paid API for AI agents from api.onesource.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-14).

Detects upgradeable proxy patterns (EIP-1967, UUPS, Transparent) on Ethereum contracts and returns the underlying implementation address

## Facts

- Endpoint: GET https://api.onesource.io/api/chain/proxy/:address
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/onesource-proxy-pattern-detector-fa9e0bd9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_2KbEvAwsemSE9i7x0tLak

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 onesource-proxy-pattern-detector-fa9e0bd9
```

Example prompt: Is 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 a proxy contract on Ethereum mainnet, and if so what's the implementation address behind it?

## When to prefer this

Use this endpoint when you need to determine whether a given Ethereum contract address is an upgradeable proxy and want to find the actual implementation contract behind it. Ideal for smart contract auditing, security analysis, or when you need to interact with the true logic contract rather than the proxy facade. Prefer this over generic RPC calls when you want structured proxy pattern detection without manually reading storage slots.

## Known failure modes

- Address is not a proxy contract — returns null or empty implementation address
- Invalid address format (not 0x + 40 hex chars) — 400 validation error
- Unsupported network specified — enum validation error
- Contract does not use a recognized proxy pattern (EIP-1967/UUPS/Transparent) — no implementation found
- RPC node unavailable — 5xx error
- Insufficient payment / x402 payment not processed — 402 Payment Required

## How this service works

Detect upgradeable proxy patterns (EIP-1967, UUPS, Transparent) via eth_getStorageAt - returns the implementation address behind a proxy

## Output

Returns the implementation address that the proxy contract delegates to, along with the detected proxy pattern type (EIP-1967, UUPS, or Transparent), derived from reading the appropriate storage slots via eth_getStorageAt.

## Example request

```json
{
 "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
 "network": "ethereum"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/onesource-proxy-pattern-detector-fa9e0bd9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.onesource.io](https://www.zero.xyz/host/api.onesource.io/llms.txt)
