{"uid":"cap_punKRUc2Xgfh6LABCT9mt","slug":"chainstate-base-address-profiler-5fa3699b","name":"ChainState – Base Address Profiler","description":"Profile a Base address in one call instead of four to six lookups. Returns contract or externally owned plus code size, proxy detection across all seven slot layouts including the legacy OpenZeppelin slot Base USDC uses, the resolved implementation, ERC-165 and behavioural ERC-20 detection, token metadata, requested ERC-20 balances, and denylist hits. Answers unknown rather than guessing, and null rather than false when a contract stays silent. Not a guarantee that an address is safe.","url":"https://chainstate.schemasure.com/v1/chain/state?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"tokens":{"type":"array","items":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"},"maxItems":10,"description":"ERC-20 contracts to read balanceOf(address) on for the subject. Amounts come back in base units with the token's decimals, or null with a reason."},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"The Base address to profile. Case-insensitive; normalised to EIP-55."},"selector":{"type":"string","pattern":"^0x[0-9a-fA-F]{8}$","description":"Only used for EIP-2535 diamonds, which have no single implementation and resolve their executing code per selector. Ignored for every other proxy kind."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_p4fUcKUUKvW6BiFKROjqo","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Profiles a Base blockchain address in one call, returning contract type, proxy detection, implementation resolution, ERC-20 detection, token metadata, token balances, and denylist hits.","exampleAgentPrompt":"Profile the Base address 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 for me — tell me if it's a contract or wallet, whether it's a proxy and what implementation it resolves to, whether it's ERC-20, and what its USDC and WETH balances are.","exampleUseCases":[{"title":"Vetting an unknown DeFi contract","prompt":"I just got sent a contract address on Base — 0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA — can you tell me what it is, whether it's a proxy, what implementation it points to, and if it's flagged on any denylist?"},{"title":"Checking wallet token balances","prompt":"What are the USDC and DAI balances for the Base wallet 0x4200000000000000000000000000000000000006? Also tell me if it's a plain wallet or a smart contract."},{"title":"Auditing a proxy contract before integration","prompt":"Before I integrate this Base contract at 0x2Ae3F1Ec7F1F5012CFEab0185bfc7aa3cf0DEc22 into our app, can you check what proxy pattern it uses, resolve the implementation address, confirm it behaves as an ERC-20, and grab its token name, symbol, and decimals?"}],"resultDescription":"Returns a structured profile of the address including: whether it is an EOA or contract, the code size in bytes, the detected proxy kind (e.g. transparent, UUPS, OpenZeppelin legacy, EIP-2535 diamond) or null, the resolved implementation address or null, ERC-165 interface support flags, whether the contract behaviourally qualifies as ERC-20, token name/symbol/decimals where applicable, ERC-20 balances in base units with decimals for each requested token (or null with a reason if unavailable), and any denylist hits. Unknown values are returned as 'unknown' rather than guessed; silence from a contract returns null rather than false.","failureModes":["Invalid address format (not a valid 0x hex address) returns a validation error","Token address in the tokens array is not a valid ERC-20 contract — returned as null with a reason per token","Address not found or no on-chain state — returns EOA profile with zero code size","Network unavailability or RPC timeout causes a 5xx error","EIP-2535 diamond resolution without a selector provided returns unknown implementation","Denylist service unavailable may return null for denylist fields rather than an error"],"whenToPreferThis":"Use ChainState when you need a comprehensive one-shot profile of a Base address and want to avoid making four to six separate RPC or API calls. It is especially valuable when you need proxy detection across all major slot layouts (including the legacy OpenZeppelin slot used by Base USDC), behavioural ERC-20 detection, and denylist checks in a single round trip. Prefer it over raw RPC calls when working with unknown contracts in agentic workflows where latency and call count matter. Not a security guarantee — supplement with manual audit for high-stakes integrations.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T00:33:21.732Z","isFirstParty":false,"canonicalSlug":"chainstate-base-address-profiler-5fa3699b"}