---
title: "Calculate rug pull probability of a contract address"
method: POST
path: "/rug/pull-check"
tags: ["Fraud API"]
---

# Calculate rug pull probability of a contract address

`POST /rug/pull-check`

Returns a rug pull probability score for a given contract address. Evaluates the contract itself, the deployer's cross-chain behavioural history, and the behaviour of associated liquidity providers.

Use this endpoint to screen liquidity pools, token contracts, or DeFi protocol contracts before your users interact with them — or to power a rug pull alert feature in your product.

ChainAware's rug pull model achieves **90% accuracy on new pools**, detecting preparation patterns before a documented rug event occurs.

**Subscription:** Business or Enterprise.

**Supported networks:** `ETH`, `BNB`, `BASE`, `HAQQ`.

**Further reading:** [Rug Pull Detector Guide](https://chainaware.ai/blog/chainaware-rugpull-detector-guide/)

## Request body

- RugPullRequestBody
  - `network` 'ETH' | 'BNB' | 'BASE' | 'HAQQ', required — Blockchain network to query.
  - `walletAddress` string, required — The smart contract or liquidity pool address to screen. To check a wallet address instead, use `/fraud/check`.

## Response `200`

Rug pull check result

- RugPullResponse
  - `message` string — Result status message.
  - `contractAddress` string — Smart contract address analyzed.
  - `pairAddress` string — Liquidity pair address on decentralized exchange.
  - `contractCreatorAddress` string, nullable — Creator address of the contract if available.
  - `risk_score` integer — Internal numerical contract risk score.
  - `risk_status` string — Qualitative risk classification based on internal scoring.
  - `risk_indicators` object — Static smart contract security indicators used during contract analysis.
    - `is_honeypot` integer
    - `honeypot_with_same_creator` integer
    - `can_take_back_ownership` integer
    - `is_mintable` integer
    - `hidden_owner` integer
    - `buy_tax` integer
    - `sell_tax` integer
    - `cannot_buy` integer
    - `cannot_sell_all` integer
    - `is_blacklisted` integer
    - `is_whitelisted` integer
    - `creator_percent` integer
    - `lp_holders_locked` boolean
    - `liquidity` number, float — Current liquidity amount in base token.
    - `market_cap` number — Estimated token market capitalization.
    - `is_in_dex` integer
    - `slippage_modifiable` integer
    - `transfer_pausable` integer
    - `is_anti_whale` integer
    - `anti_whale_modifiable` integer
    - `trading_cooldown` integer
    - `personal_slippage_modifiable` integer
    - `is_open_source` integer
    - `is_proxy` integer
    - `owner_address` string
    - `owner_change_balance` integer
    - `selfdestruct` integer
    - `external_call` integer
    - `gas_abuse` integer
  - `liquidityEvent` object[] — Recent liquidity-related events associated with the token pool.
    - `eventType` string
    - `amount` number, float
    - `token` string
    - `tx_hash` string
    - `from_address` string
    - `from_fraud_probability` number, float
    - `from_fraud_status` string
    - `createdAt` string, date-time
  - `status` 'Not Fraud' | 'Fraud' — Overall fraud classification of the contract.
  - `probabilityFraud` number, float — Fraud probability score between 0.00 and 1.00.
  - `chain` string — Blockchain network identifier.
  - `lastChecked` string, date-time — Last analysis execution timestamp.
  - `contractCreationTime` string, date-time, nullable — Smart contract deployment timestamp if available.
  - `forensic_details` object — Dynamic forensic indicators contributing to fraud probability.
    - `owner` object
    - `privilege_withdraw` integer
    - `withdraw_missing` integer
    - `is_open_source` integer
    - `blacklist` integer
    - `contract_name` string
    - `selfdestruct` integer
    - `is_proxy` integer
    - `approval_abuse` integer
  - `checked_times` integer — Number of times this contract has been analyzed.
  - `createdAt` string, date-time — Record creation timestamp.
  - `updatedAt` string, date-time — Most recent record update timestamp.

## Other responses

- `400` — Bad request — missing or invalid fields in the request body
- `401` — Unauthorised — API key missing or invalid
- `404` — Contract not found
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.dev/chainaware/apis/chainaware-enterprise-api.md) · [All operations](https://skmtc.dev/chainaware/apis/chainaware-enterprise-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/chainaware/chainaware-enterprise-api/revisions/a045ee3672fc/schema)
