Smart Contract Relationship Graph
Map a contract's proxy, implementation, admin, owner, deployer/factory and token links as a graph.
Try an example: Token behind a minimal proxy, with known relationships (offline)
How it works
Draws the relationships around one address: proxy → implementation (and beacon), who can upgrade it (ProxyAdmin, Safe, timelock, EOA), owner() and admin(), who deployed it and whether that deployer is itself a contract (a factory), which token standards it implements (ERC-20 / ERC-721 / ERC-1155), plus any related addresses you add. Paste runtime bytecode and a relationship list for an offline graph.
- Proxy, implementation, beacon and upgrade controller come from the Smart Contract Upgrade Explorer tool (EIP-1967 / EIP-1822 / EIP-1167 / Safe / ZeppelinOS / EIP-7702 detection from storage slots and bytecode).
- owner() and admin() are read with eth_call (a revert means the function does not exist or is restricted).
- Deployer and creation transaction come from Sourcify (v2 API, fields=deployment) — only available for contracts verified on Sourcify. A deployer that has code is reported as a factory.
- Token standards: ERC-165 supportsInterface for ERC-721 (0x80ac58cd) and ERC-1155 (0xd9b67a26); ERC-20 when totalSupply() and decimals() answer; name/symbol/decimals/totalSupply are read on-chain.
- Offline: runtime bytecode is scanned for dispatcher selectors (PUSH4 … EQ) to infer ERC-20 / ERC-721 / ERC-1155 / Ownable / AccessControl, EIP-1167 clone targets and EIP-7702 delegation; your relationship lines are added verbatim.
For scripts and AI agents
- JSON API:
POST https://smartcontractrelationshipgraph.usefulweb.site/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://smartcontractrelationshipgraph.usefulweb.site/mcp· tool namesmart_contract_relationship_graph
Example request
curl -s -X POST https://smartcontractrelationshipgraph.usefulweb.site/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"mode":"bytecode","chain":"ethereum","bytecode":"0x608060405234801561001057600080fd5b5063a9059cbb146323b872dd1463095ea7b3146370a08231146318160ddd1463dd62ed3e14638da5cb5b1463f2fde38b1400","relationships":"this -> 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed : owned by\n0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359 -> this : deployed\nthis -> 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 : holds USDC\n0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed -> Treasury Safe : member of"}'Related tools
- Smart Contract Upgrade Explorer – Is this smart contract upgradeable, who controls upgrades, and what changed?
- Wallet Permission Explorer – Who can move your tokens? Allowances, Permit2, NFT operators and EIP-7702 delegation, with risk.
- Transaction Decoder – See what an EVM transaction actually did: call, events, token transfers, fee, finality.