# Smart Contract Relationship Graph > Map a contract's proxy, implementation, admin, owner, deployer/factory and token links as a graph. 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. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://smartcontractrelationshipgraph.usefulweb.site/ (interactive tool at https://smartcontractrelationshipgraph.usefulweb.site/tool) - JSON API: POST https://smartcontractrelationshipgraph.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://smartcontractrelationshipgraph.usefulweb.site/api/v1/tool) - OpenAPI: https://smartcontractrelationshipgraph.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://smartcontractrelationshipgraph.usefulweb.site/mcp - tool `smart_contract_relationship_graph` ## Inputs - mode (select): What do you have? - chain (select): Chain - address (text): Contract address - related (list): Related addresses (optional) - One per line: "0x… label", e.g. a token it holds, a contract it calls or a known multisig. - bytecode (textarea): Runtime bytecode (offline) - relationships (textarea): Relationship list (offline) - One per line: "A -> B : label" — A/B are addresses or names; use "this" for the analysed contract. ## Method - 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.