{"paid_route":"/api/v1/paid/proxy-implementation","methods":["GET","POST"],"price":"$0.003","what_you_get":"Whether a contract is an upgradeable or delegating proxy and under which standard, where its current code lives (implementation, admin, beacon), whether that implementation has code, verified names where the explorer knows them, the exact storage slots read and the block, and up to four extra raw storage slots decoded.","chains":[{"name":"base","chain_id":8453},{"name":"ethereum","chain_id":1},{"name":"optimism","chain_id":10},{"name":"arbitrum","chain_id":42161},{"name":"polygon","chain_id":137}],"input_schema":{"type":"object","required":["address"],"properties":{"chain":{"type":"string","enum":["base","ethereum","optimism","arbitrum","polygon","8453","1","10","42161","137"],"default":"base","description":"Chain name (base, ethereum, optimism, arbitrum, polygon) or chain id (8453, 1, 10, 42161, 137). Default base.","examples":["base"]},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Contract address to inspect, 0x plus 40 hex characters (any case).","examples":["0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"]},"block":{"type":"string","default":"latest","description":"'latest' (default) or a decimal block number; explicit blocks are immutable and cached longer.","examples":["latest"]},"slots":{"type":"array","maxItems":4,"items":{"type":"string"},"description":"Up to 4 extra raw storage slots to read and decode: each a 0x bytes32 or a decimal slot number. GET accepts a comma-separated list.","examples":[["0","1"]]}},"additionalProperties":false},"request_example":{"get":"/api/v1/paid/proxy-implementation?chain=base&address=0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913&slots=0,1","post":{"chain":"base","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","block":"latest","slots":["0","0x0000000000000000000000000000000000000000000000000000000000000001"]}},"example_input":{"chain":"base","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"},"example":{"chain":"base","chain_id":8453,"address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","block_number":51245144,"block_tag":"latest","is_contract":true,"is_proxy":true,"standard":"oz-legacy","implementation":"0x2Ce6311ddAE708829bc0784C967b7d77D19FD779","implementation_has_code":true,"implementation_name":"FiatTokenV2_2","proxy_name":"FiatTokenProxy","admin":null,"beacon":null,"slots_read":[{"label":"eip1967.implementation","slot":"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc","raw":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"label":"eip1967.admin","slot":"0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103","raw":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"label":"eip1967.beacon","slot":"0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50","raw":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"label":"eip1822.proxiable","slot":"0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7","raw":"0x0000000000000000000000000000000000000000000000000000000000000000"},{"label":"oz-legacy.implementation","slot":"0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3","raw":"0x0000000000000000000000002ce6311ddae708829bc0784c967b7d77d19fd779"},{"label":"slot0","slot":"0x0000000000000000000000000000000000000000000000000000000000000000","raw":"0x0000000000000000000000003abd6f64a422225e61e435bae41db12096106df7"}],"extra_slots":[],"rpc":{"endpoint_class":"public","hosts":["base-mainnet.public.blastapi.io"],"calls":9},"source":"public-rpc+explorer","read_at":"2026-09-13T06:07:17.573Z"},"example_note":"freshly computed from the public RPC","fails_closed":"A malformed chain, address, block or slot list is refused with 400 and an unreachable public RPC with 503, both before any payment is verified; nothing is charged for a reading the chain could not give."}