Token and contract control check (rug check)
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.
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
GET https://check.blockpin.dev/check
| Category | Market data |
|---|---|
| Provider host | check.blockpin.dev |
| Networks | eip155:4663, eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 0 from 0 payers (the provider's figure, not ours) |
Our checks, last 30 days
We never call tools that send, buy, move money or file anything, not even without paying.
Example input (from the provider)
{
"method": "GET",
"queryParams": {
"address": "0x1b54E762aa34CF6E28E9C082F2848e28E45DA6b8",
"chain": "ethereum",
"since": "26200000"
},
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"method": {
"enum": [
"GET"
],
"type": "string"
},
"queryParams": {
"properties": {
"address": {
"description": "Contract address",
"pattern": "^0x[0-9a-fA-F]{40}$",
"type": "string"
},
"chain": {
"description": "Chain the contract is on",
"enum": [
"ethereum",
"base",
"robinhood"
],
"type": "string"
},
"since": {
"description": "Block number to check from (Ethereum: up to 1,000,000 blocks back; Robinhood Chain: up to 7,000,000)",
"pattern": "^[0-9]+$",
"type": "string"
}
},
"required": [
"chain",
"address",
"since"
],
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"address": {
"type": "string"
},
"chain": {
"type": "string"
},
"changed": {
"type": "boolean"
},
"controlChanged": {
"type": "boolean"
},
"current": {
"type": "object"
},
"events": {
"type": "array"
},
"pauseChanged": {
"type": "boolean"
},
"range": {
"type": "object"
},
"summary": {
"type": "string"
}
},
"required": [
"changed",
"summary",
"current",
"events"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}