{"uid":"cap_ghcM9oWXa6mQ850-cLALG","slug":"blockpin-token-contract-control-check-rug-check-58e506c8","name":"Blockpin Token & Contract Control Check (Rug Check)","description":"Token and contract control check (rug check): who controls this token or contract, and did that change since block N? Current owner, pending owner, proxy implementation, proxy admin, beacon and pause state, plus every ownership transfer, upgrade, admin, role and pause event since the block, each with its tx. Use before trading a token or trusting a contract. Base, Ethereum, Robinhood Chain. By Blockpin.","url":"https://check.blockpin.dev/check?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["chain","address","since"],"properties":{"chain":{"enum":["ethereum","base","robinhood"],"type":"string","description":"Chain the contract is on"},"since":{"type":"string","pattern":"^[0-9]+$","description":"Block number to check from (Ethereum: up to 1,000,000 blocks back; Robinhood Chain: up to 7,000,000; Base: up to 1,300,000)"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"Contract address"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["changed","summary","current","events"],"properties":{"chain":{"type":"string"},"range":{"type":"object"},"events":{"type":"array"},"address":{"type":"string"},"changed":{"type":"boolean"},"current":{"type":"object"},"summary":{"type":"string"},"pauseChanged":{"type":"boolean"},"controlChanged":{"type":"boolean"}}}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","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.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_DU3cNX5ON551cIQAWKNH9","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Returns current ownership, proxy state, and pause status of an EVM contract, plus every control-change event since a given block — to assess whether a token or contract is safe to trust or trade.","exampleAgentPrompt":"Before I buy this token, can you do a rug check on the contract 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 on Ethereum since block 19000000 — I want to know who controls it, whether ownership has changed, and if the proxy has been upgraded?","exampleUseCases":[{"title":"Pre-trade rug check on new token","prompt":"I'm about to ape into this new Base token at 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 — can you check who controls the contract and whether anything changed since block 14000000? I want to know if it's safe."},{"title":"Audit DeFi protocol upgrade history","prompt":"Has the proxy implementation for the Uniswap v3 contract 0x1F98431c8aD98523631AE4a59f267346ea31F984 on Ethereum been upgraded or had any admin changes since block 18500000?"},{"title":"Monitor contract control before large deposit","prompt":"Before I move funds into this Robinhood Chain vault at 0x4200000000000000000000000000000000000006, check if the owner or proxy admin has changed since block 6000000 and tell me the current pause state."}],"resultDescription":"Returns a JSON object with: a boolean `changed` flag indicating any control change since the specified block, a human-readable `summary`, `current` state object (owner, pending owner, proxy implementation, proxy admin, beacon, pause state), an `events` array of every ownership transfer, upgrade, admin change, role and pause event since the block (each with tx hash), and metadata about the chain, address and block range queried.","failureModes":["Invalid contract address format (must be 0x + 40 hex chars) returns validation error","Unsupported chain value returns enum error","Block number exceeds per-chain lookback limit (1M for Ethereum, 7M for Robinhood, 1.3M for Base)","Contract address is an EOA (not a contract) — may return empty/minimal results","RPC or indexer timeout for very high event-volume contracts","Payment failure for x402 micropayment results in 402 response"],"whenToPreferThis":"Choose this endpoint when you need a comprehensive, structured audit of who controls a specific EVM contract and whether that control has changed since a given block — especially before trading a token or depositing funds into a contract. It covers proxy upgrades, admin changes, role events, and pause state in a single call across Ethereum, Base, and Robinhood Chain. Prefer it over generic block explorers when you need machine-readable, agent-friendly output with full event history and current state in one response.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-11-04T12:12:14.718Z","isFirstParty":false,"canonicalSlug":"blockpin-token-contract-control-check-rug-check-58e506c8"}