Skip to main content
GET
/
contracts
/
{contractAddress}
Get a real-time analysis for a given contract address
curl --request GET \
  --url https://api.webacy.com/contracts/{contractAddress} \
  --header 'x-api-key: <api-key>'
{
  "score": 3,
  "tags": {
    "centralized_risk_high": {
      "key": "centralized_risk_high",
      "name": "Centralized Risk High",
      "description": "This contract may have logic that lead us to think it is is a drainer.",
      "tags": {
        "centralized_risk_high": true
      }
    }
  },
  "categories": {
    "contract_possible_drainer": {
      "key": "contract_possible_drainer",
      "name": "Centralized Risk High",
      "description": "Our detectors have found that this smart contract has exploitable logic that can be used to drain funds. This is a serious risk and you should avoid interacting with this contract.",
      "tags": {
        "centralized_risk_high": true
      }
    }
  },
  "analysis": {
    "address_characteristics": {
      "key": "address_characteristics",
      "name": "Wallet Characteristics",
      "description": "This address may have risk factors related to address age, number of transactions, or balance.",
      "tags": {
        "insufficient_wallet_age": true
      }
    }
  },
  "metadata": {
    "name": "USD Coin",
    "symbol": "USDC",
    "contract_address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
    "chain": "eth",
    "other_chains": [
      {
        "chain": "pol",
        "contract_address": "0x2791bca1f2de4661ed88a30c99a7a9449aa84174"
      }
    ],
    "categories": [
      "stablecoin",
      "asset-backed-stablecoin",
      "usd-stablecoin"
    ],
    "last_updated": "2023-06-15T12:34:56Z",
    "decimals": 6,
    "links": {
      "homepage": "https://www.circle.com/en/usdc",
      "github": [
        "https://github.com/centrehq"
      ],
      "twitter": "https://twitter.com/circle",
      "telegram": "https://t.me/circle_issuer"
    },
    "image_url": "https://assets.coingecko.com/coins/images/6319/large/USD_Coin_icon.png",
    "created_at": "2018-09-26"
  },
  "source_code_analysis": {
    "analysis": {
      "contract_address": "0x1234567890123456789012345678901234567890",
      "chain": "eth",
      "analysis_date": "2023-11-15T10:30:00Z",
      "status": "completed",
      "findings": [
        {
          "risk": "reentrancy",
          "details": {},
          "function_signatures": [
            {
              "function_name": "withdraw",
              "function_signature": "function withdraw(uint256 amount) external"
            }
          ],
          "statements": [
            {
              "statement_type": "call",
              "statement_text": "msg.sender.call{value: amount}(\"\")"
            }
          ]
        }
      ],
      "urls": [
        {
          "url": "https://example.com/analysis-report"
        }
      ]
    }
  },
  "similar_contracts": [
    {}
  ],
  "analysis_status": "STARTED",
  "analysis_type": "STATIC",
  "deployer": {
    "address": "0xaBA7161A7fb69c88e16ED9f455CE62B791EE4D03",
    "risk": {
      "count": 1,
      "medium": 1,
      "high": 0,
      "overallRisk": 25.99,
      "issues": [
        {
          "score": 3,
          "tags": [
            {
              "name": "Insufficient Wallet Age",
              "description": "The age of this wallet or address is new.",
              "type": "noHistoryRisk",
              "severity": 3,
              "key": "insufficient_wallet_age"
            }
          ],
          "categories": {
            "address_characteristics": {
              "key": "address_characteristics",
              "name": "Wallet Characteristics",
              "description": "This address may have risk factors related to address age, number of transactions, or balance.",
              "tags": {
                "insufficient_wallet_age": true
              }
            }
          }
        }
      ],
      "details": {
        "source_code_analysis": {
          "contract_address": "0x1234567890123456789012345678901234567890",
          "chain": "eth",
          "analysis_date": "2023-11-15T10:30:00Z",
          "status": "completed",
          "findings": [
            {
              "risk": "reentrancy",
              "details": {},
              "function_signatures": [
                {
                  "function_name": "withdraw",
                  "function_signature": "function withdraw(uint256 amount) external"
                }
              ],
              "statements": [
                {
                  "statement_type": "call",
                  "statement_text": "msg.sender.call{value: amount}(\"\")"
                }
              ]
            }
          ],
          "urls": [
            {
              "url": "https://example.com/analysis-report"
            }
          ]
        },
        "multiPlatformAnalysisData": {
          "developerAddress": "ESoMiyuJ1ksL5L99LjYCcwjt7XR2B7hdn6mkbBDFbadV",
          "analyzedAt": "2025-09-05T18:28:55.907Z",
          "platformBreakdown": {}
        }
      },
      "context": [
        {
          "name": "Paid Information",
          "description": "The project has paid to display additional project info on platforms like DexScreener",
          "type": "tokenRisk",
          "key": "paid-info"
        }
      ],
      "isContract": false,
      "addressType": "CONTRACT",
      "tokenStandard": "ERC20"
    },
    "deployed_contracts": [
      {}
    ]
  }
}

Authorizations

x-api-key
string
header
required

Path Parameters

contractAddress
string
required

contract address

Query Parameters

chain
enum<string>

Selected chain. This includes 'eth', 'base', 'bsc', 'polygon', 'optimism' and 'arb' Supported blockchain networks

Available options:
eth,
base,
bsc,
pol,
opt,
arb
fromBytecode
boolean

Does full bytecode analysis on unverified contracts. The full scan can take up to several minutes. To retrieve the final results, either refresh this endpoint, or supply a callback URL for which results will be posted every 5 seconds.

refreshCache
boolean

Re-analyze contract address and retrieve fresh data.

callback
string

Returns asynchronous response from bytecode analysis. This callback will be called every 5 seconds with any new data found until the full analysis has been completed. If an analysis is already completed, the callback will not be called.

deployer_risk
boolean

Analyze the deployer address for risks and include a flag if the deployer is risky

hide_trust_flags
boolean

Boolean to determine whether to hide trust-related flags from the response

Response

Success

score
integer

Overall risk score for the contract

Example:

3

tags
object[]

List of tags associated with the contract

Example:
{
  "centralized_risk_high": {
    "key": "centralized_risk_high",
    "name": "Centralized Risk High",
    "description": "This contract may have logic that lead us to think it is is a drainer.",
    "tags": { "centralized_risk_high": true }
  }
}
categories
object[]

List of categories associated with the contract

Example:
{
  "contract_possible_drainer": {
    "key": "contract_possible_drainer",
    "name": "Centralized Risk High",
    "description": "Our detectors have found that this smart contract has exploitable logic that can be used to drain funds. This is a serious risk and you should avoid interacting with this contract.",
    "tags": { "centralized_risk_high": true }
  }
}
analysis
object

List of analyses associated with the contract

Example:
{
  "address_characteristics": {
    "key": "address_characteristics",
    "name": "Wallet Characteristics",
    "description": "This address may have risk factors related to address age, number of transactions, or balance.",
    "tags": { "insufficient_wallet_age": true }
  }
}
metadata
object

Token metadata information including name, symbol, links, and other details

source_code_analysis
object

Source code analysis result if available. May be an analysis payload, an error, or an informational message.

similar_contracts
object[]

List of similar/related contracts discovered during checksum comparison

analysis_status
string

Static analysis job status

Example:

"STARTED"

analysis_type
string

Type of analysis performed

Example:

"STATIC"

deployer
object

Information about the contract deployer and its risk assessment (only returned when deployer_risk=true)