ChainTools
Contract addressVerified source, proxy layout and live state for any addressDecode a transactionRead what a tx or calldata actually does, in plain languageSelector dictionaryDecode a 4-byte selector, event topic or custom errorCode hash indexFind identical bytecode deployed on other chainsStandardsBrowse contracts by the interface they implement
EthereumChain 1GoerliChain 5SepoliaChain 11155111PolygonChain 137MumbaiChain 80001BSCChain 56BSC TestnetChain 97AvalancheChain 43114FujiChain 43113FantomChain 250Fantom TestnetChain 4002Arbitrum OneChain 42161Arbitrum GoerliChain 421613OptimismChain 10Optimism GoerliChain 420BaseChain 8453
SwapAPI
ChainTools

Contract verification, bytecode matching and selector decoding across 16 chains. Non-custodial swaps on 7 of them.

Tools

Contract lookupDecode a transactionCode hash indexSelector dictionaryERC standardsChainsAPI docs

Trade

Swap tokensPortfolioSwap history

Site

AboutContactPrivacySitemapllms.txt

© 2026 ChainTools

Verification data from Sourcify. Swaps settle against Uniswap v3 and v4.

Info from chain — full response

{
  "fromSourcify": {
    "server": {
      "address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "chainId": 1,
      "endpoint": "https://sourcify.dev/server/v2/contract/1/0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48?fields=abi,compilation",
      "contractResponse": {
        "success": true,
        "data": {
          "abi": [
            {
              "name": "upgradeTo",
              "type": "function",
              "inputs": [
                {
                  "name": "newImplementation",
                  "type": "address"
                }
              ],
              "outputs": [],
              "payable": false,
              "constant": false,
              "stateMutability": "nonpayable"
            },
            {
              "name": "upgradeToAndCall",
              "type": "function",
              "inputs": [
                {
                  "name": "newImplementation",
                  "type": "address"
                },
                {
                  "name": "data",
                  "type": "bytes"
                }
              ],
              "outputs": [],
              "payable": true,
              "constant": false,
              "stateMutability": "payable"
            },
            {
              "name": "implementation",
              "type": "function",
              "inputs": [],
              "outputs": [
                {
                  "name": "",
                  "type": "address"
                }
              ],
              "payable": false,
              "constant": true,
              "stateMutability": "view"
            },
            {
              "name": "changeAdmin",
              "type": "function",
              "inputs": [
                {
                  "name": "newAdmin",
                  "type": "address"
                }
              ],
              "outputs": [],
              "payable": false,
              "constant": false,
              "stateMutability": "nonpayable"
            },
            {
              "name": "admin",
              "type": "function",
              "inputs": [],
              "outputs": [
                {
                  "name": "",
                  "type": "address"
                }
              ],
              "payable": false,
              "constant": true,
              "stateMutability": "view"
            },
            {
              "type": "constructor",
              "inputs": [
                {
                  "name": "_implementation",
                  "type": "address"
                }
              ],
              "payable": false,
              "stateMutability": "nonpayable"
            },
            {
              "type": "fallback",
              "payable": true,
              "stateMutability": "payable"
            },
            {
              "name": "AdminChanged",
              "type": "event",
              "inputs": [
                {
                  "name": "previousAdmin",
                  "type": "address",
                  "indexed": false
                },
                {
                  "name": "newAdmin",
                  "type": "address",
                  "indexed": false
                }
              ],
              "anonymous": false
            },
            {
              "name": "Upgraded",
              "type": "event",
              "inputs": [
                {
                  "name": "implementation",
                  "type": "address",
                  "indexed": false
                }
              ],
              "anonymous": false
            }
          ],
          "compilation": {
            "language": "Solidity",
            "compiler": "solc",
            "compilerVersion": "0.4.24+commit.e67f0147",
            "compilerSettings": {
              "libraries": {},
              "optimizer": {
                "runs": 200,
                "enabled": false
              },
              "evmVersion": "byzantium",
              "remappings": []
            },
            "name": "FiatTokenProxy",
            "fullyQualifiedName": "FiatTokenProxy.sol:FiatTokenProxy"
          },
          "matchId": "1532018",
          "creationMatch": "match",
          "runtimeMatch": "match",
          "verifiedAt": "2024-08-08T13:20:07Z",
          "match": "match",
          "chainId": "1",
          "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
        }
      }
    },
    "client": null
  },
  "fromEth": {
    "head": null,
    "runtime": null,
    "proxy": null,
    "logs": null
  },
  "errors": {
    "sourcify": null,
    "eth": null
  }
}