Arbitrum proxy implementation
Find the implementation behind a proxy contract on Arbitrum One: reads the EIP-1967 implementation, beacon and admin slots, EIP-1822 (UUPS), the older OpenZeppelin layout and EIP-1167 minimal-proxy bytecode, and names the kind found. Use before trusting or decoding a contract whose code can be swapped by its admin; for a fuller risk verdict use contract_risk. A malformed address is 400; an address without code is 404, both uncharged.
Inputs
| Name | Type | Description |
|---|---|---|
address (required) | string | 0x contract address |
Request
Over HTTP, with a card key from /credits:
curl -H "Authorization: Bearer adt_…" "https://agent-data-tools.revmesh2074.workers.dev/arb/proxy?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
Or one of your 25 free calls, no key:
curl "https://agent-data-tools.revmesh2074.workers.dev/arb/proxy?address=0xaf88d065e77c8cC2239327C5EDb3A432268e5831&trial=1"
Without a key, the same URL answers 402 Payment Required with x402 and MPP terms, so an agent with a wallet pays per call in USDC (Base, Polygon, Arbitrum or Solana over x402; Base or Tempo over MPP) and retries.
Example result
{
"chain": "Arbitrum One",
"chainId": 42161,
"address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"isProxy": true,
"kind": "openzeppelin-legacy",
"implementation": "0x2ce6311ddae708829bc0784c967b7d77d19fd779",
"admin": "0x…",
"beacon": null,
"upgradeable": true
}
From an AI agent (MCP)
Add the MCP server to Claude, Cursor or any MCP client. This tool is arb_proxy, and the first 25 successful calls are free:
https://agent-data-tools.revmesh2074.workers.dev/mcp