{"uid":"cap_jROGknhusKb6DJJ0iaZbL","slug":"proxy-contract-detector-implementation-resolver-004bf935","name":"Proxy Contract Detector & Implementation Resolver","description":"Detect whether a contract is an upgradeable proxy and resolve its implementation: reads the standard EIP-1967 implementation/admin/beacon slots, EIP-1822 (UUPS), the OpenZeppelin legacy slot, and EIP-1167 minimal-proxy bytecode. Returns the proxy type, implementation, admin and beacon addresses when present. Reads live on-chain data with automatic endpoint fallback.","url":"https://chain.openverbs.com/v1/proxy","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","properties":{"chain":{"enum":["ethereum","base","arbitrum","optimism","polygon"],"type":"string","description":"EVM chain to query. One of: ethereum, base, arbitrum, optimism, polygon. Default \"ethereum\"."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Contract address to inspect."}},"additionalProperties":false},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.004","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.004/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.004","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_wSrKMBspAjd00IKBbP4vM","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.004","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Detects whether a smart contract is an upgradeable proxy and resolves its implementation address by reading EIP-1967, EIP-1822, OpenZeppelin legacy, and EIP-1167 minimal-proxy slots on-chain.","exampleAgentPrompt":"Can you check if the contract at 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 on Ethereum is a proxy, and if so, what's its implementation address?","exampleUseCases":[{"title":"Auditing an unknown DeFi contract","prompt":"I'm looking at this DeFi protocol contract at 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D on Ethereum — can you tell me if it's a proxy and what the actual implementation contract is?"},{"title":"Verifying UUPS upgradeability on Base","prompt":"Can you check whether the contract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on Base is an upgradeable UUPS proxy and give me the implementation and admin addresses?"},{"title":"Identifying minimal proxy clones on Arbitrum","prompt":"Is the contract at 0x912CE59144191C1204E64559FE8253a0e49E6548 on Arbitrum using the EIP-1167 minimal proxy pattern, and if so, what master contract does it point to?"}],"resultDescription":"Returns the detected proxy type (e.g. EIP-1967, UUPS, EIP-1167, OpenZeppelin legacy, or none), the resolved implementation contract address, and where applicable the admin address and beacon address. All data is read live from on-chain storage slots with automatic RPC endpoint fallback.","failureModes":["Invalid contract address format returns a validation error","Contract is not a proxy — returns proxy type as null or 'none' with no implementation address","Network error or RPC unavailability causes fallback attempts and may return a timeout error","Unsupported chain name returns an error listing valid options","Address is an EOA (not a contract) — returns no proxy info"],"whenToPreferThis":"Use this endpoint when you need to programmatically determine whether a smart contract delegates its logic to another address, particularly for auditing, security screening, or resolving the true implementation behind a proxy. It covers all major proxy standards (EIP-1967, EIP-1822/UUPS, EIP-1167 minimal proxy, and OpenZeppelin legacy) in a single call, across Ethereum, Base, Arbitrum, Optimism, and Polygon. Prefer it over manual slot reads or block explorers when you need structured, machine-readable proxy metadata in an automated workflow.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:40:02.826Z","isFirstParty":false}