# omnia\_checkRugPull

**Returns security details indicating whether the token can generate a Rug pull event or not.**

**Note: A rug pull event means a massive sell-off of the token by the first holders, often time by it's creators.**

**Parameters**

`DATA`, 20 Bytes - contractAddress. The contract address that is checked. <mark style="color:red;">REQUIRED</mark>

**Returns**

`Object with following details:`

| Parameter            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Notice                                                                                             |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `owner`              | <p>(1) <code>owner\_name</code> - the function name of ownership. (2) <code>owner\_address</code> - owner address of the contract.<br>(3) <code>owner\_type</code> - <strong>"blackhole"</strong> means the owner is a blackhole address; <strong>"contract"</strong> means the owner is a contract; <strong>"eoa"</strong> means the owner is a common address; <strong>"multi-address"</strong> means the owner is an array/list. <code>null</code> means the address is not detected. No return means unknown.</p> | When there is no owner function, or the ownership is unreadable or private, it would return empty. |
| `privilege_withdraw` | <p>It describes whether the contract owner can withdraw all the assets in the contract, without users' permission.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                                                                  |                                                                                                    |
| `withdraw_missing`   | <p>It describes whether the contract lacks a withdrawal method. If it is missing, users will be unable to withdraw the assets they have put in.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                                     |                                                                                                    |
| `is_open_source`     | <p>It describes whether this contract is open source.<br>"1" means true;<br>"0" means false.</p>                                                                                                                                                                                                                                                                                                                                                                                                                      |                                                                                                    |
| `blacklist`          | <p>It describes whether the contract has a blacklist function that would block users from withdrawing their assets.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                                                                 |                                                                                                    |
| `contract_name`      | Name of the contract.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                    |
| `selfdestruct`       | <p>It describes whether this contract can self-destruct.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                                                                                                                            |                                                                                                    |
| `approval_abuse`     | <p>It describes whether the owner can spend the allowance obtained by the contract. If so, this function could potentially be abused to steal user assets.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                          |                                                                                                    |
| `is_proxy`           | <p>It describes whether this contract has a proxy contract.<br>"1" means true;<br>"0" means false;<br>"-1" means unknown.</p>                                                                                                                                                                                                                                                                                                                                                                                         |                                                                                                    |

<br>

## Example

#### Request

```
curl --request POST \
     --url https://endpoints.omniatech.io/v1/RPC_ENDPOINT \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "omnia_checkrugpull",
    "params": [
        {
            "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
        }
    ]
}
'
```

#### Response

```
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "owner": {
            "owner_name": "owner",
            "owner_address": "0xc6cde7c39eb2f0f0095f41570af89efc2c1ea828",
            "owner_type": "contract"
        },
        "privilege_withdraw": 1,
        "withdraw_missing": -1,
        "is_open_source": 1,
        "blacklist": 1,
        "contract_name": "TetherToken",
        "selfdestruct": 1,
        "is_proxy": 0,
        "approval_abuse": 0
    }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.omniatech.io/rpc-api-docs/custom-rpc/omnia_checkrugpull.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
