omnia_checkTokenSecurity

Returns security details about the token smart contract. Focused on possible vulnerabilities of a smart contract, the security of the token from a trading standpoint and general info about liquidity, holders and creator.

Parameters

DATA, 20 Bytes - contractAddress. The wallet address that is checked for it's holdings. REQUIRED

Returns

Object with following details:

Smart contract security

Parameter
Description
Notice

is_open_source

Returns "1" if the contract is open-source, "0" if the contract is closed-source.

Closed-sourced contracts may hide various unknown mechanisms and are extremely risky. When the contract is closed-source, other risk items will return null.

is_proxy

Returns "1" if the contract is a proxy contract, "0" if the contract is not a proxy contract. This value will not be returned if the proxy status of the contract is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) Most proxy contracts are accompanied by implementation contracts which are modifiable, potentially containing significant risk. When the contract is a proxy, other risk items may not be returned.

is_mintable

Returns "1" if the contract has the ability to mint tokens, "0" if the contract does not have the ability to mint tokens. This value will not be returned if the minting ability of the contract is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) May not be returned if "is_proxy" is 1. (3) Mint functions can trigger a massive sell-off, causing the coin price to plummet. It is an extremely risky function for a contract to have. (4) This function generally relies on ownership. When the contract does not have an owner (or if the owner is a black hole address) and the owner cannot be retrieved, this function will most likely be disabled.

owner_address

This contract's owner address. No value will be returned if the owner address is unknown. An empty sting will be returned if the contract has no owner.

(1) Will not be returned if "is_open_source" is 0. (2) May not be returned if "is_proxy" is 1. (3) Ownership is usually used to adjust the parameters and status of the contract, such as minting, modification of slippage, suspension of trading, setting blacklist, etc. When the contract's owner cannot be retrieved, is a black hole address, or does not have an owner, ownership-related functionality will most likely be disabled.

can_take_back_ownership

Returns "1" if ownership can be reclaimed; "0" if it cannot. Will not be returned if reclamation data is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) May not be returned if "is_proxy" is 1. (3) Ownership is usually used to adjust the parameters and status of the contract, such as minting, modification of slippage, suspension of trading, setting blacklist, etc. When the contract's owner cannot be retrieved, is a black hole address, or does not have an owner, ownership-related functionality will most likely be disabled. These risky functions may be able to be reactivated if ownership is reclaimed.

owner_change_balance

Returns "1" if the contract owner can change token holder balances; "0" if it cannot. Will not be returned if reclamation data is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) May not be returned if "is_proxy" is 1. (3) Tokens with this feature allow the owner to modify anyone's balance, resulting in a holder's asset to be changed (i.e. to 0) or a massive minting and sell-off. (4) This function generally relies on ownership. When the contract's owner cannot be retrieved, is a black hole address, or does not have an owner, ownership-related functionality will most likely be disabled.

hidden_owner

Returns "1" if the contract has hidden owners; "0" if it does not. Will not be returned if hidden ownership status is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) May not be returned if "is_proxy" is 1. (3) Hidden ownership is used by developers to maintain ownership ability even after abandoning ownership, and is often an indicator of malicious intent. When a hidden owner exists, it is safe to assume that ownership has not been abandoned.

selfdestruct

Returns "1" if the contract can self-destruct; "0" if it cannot. Will not be returned if self-destruct data is unknown.

(1) Will not be returned if "is_open_source" is 0. (2) When the self-destruct function is triggered, the contract will be destroyed, all of its functions will be unavailable, and all related assets will be erased.

external_call

Returns "1" if the contract can call functions in other contracts during the execution of primary methods; "0" if it does not. Will not be returned if external call capability is unknown.

(1) Will return no data if "is_open_source" is 0. (2) External calls causes the implementation of this contract to be dependent on other external contracts which may or may not be risky.

gas_abuse

Return "1" if the contract is using user's gas fee to mint other assets. No return means no evidence of gas abuse.

Any interaction with such addresses may result in loss of property.

Token trading security

Parameter
Description
Notice

is_in_dex

Returns "1" if the token can be traded in a decentralized exchange; "0" if not.

Only true if the token has a marketing pair with mainstream coins/tokens.

buy_tax

Returns the buy tax of the token on a scale from 0 - 1. An empty string ("") means that the tax is unknown.

(1) Will not be returned if "is_in_dex" is 0. (2) When buying a token, a buy tax will cause the actual token value received to be less than the amount paid. An excessive buy tax may lead to heavy losses. (3) A "buy_tax" of "1", or a 100% buy tax, will result in all purchase funds to go towards the tax. This results in a token that is effectively not able to be purchased. (4) A token's anti-bot mechanism may affect our sandbox environment, resulting in a "cannot_buy" of "1". This will cause the "buy_tax" to also return "1". (5) Some tokens are designed not to be sold, indicated by the "cannot_buy" to return "1". A "cannot_buy" of "1" will cause the display of "buy_tax" to also be "1".

sell_tax

It describes the tax when selling the token. An empty string ("") means unknown.

(1) When "is_in_dex": "0", there will be no return. (2) Sell tax will cause the actual value received when selling a token to be less than expected, and too much buy tax may lead to large losses. (3) When "sell_tax": "1", it means sell-tax is 100% or this token cannot be sold. (4) Sometimes token's trading-cool-down mechanism would affect our sandbox system. When "trading_cooldown": "1", "sell_tax" may return "1".

cannot_buy

It describes whether the Token can be bought. "1" means true; "0" means false; No return means unknown.

(1) Generally, "cannot_buy": "1" would be found in Reward Tokens. Such Tokens are issued as rewards for some on-chain applications and cannot be bought directly by users. (2) Sometimes token's anti-bot mechanism would affect our sandbox system, causing the display of "buy_tax": "1". (3) When β€œcannot_buy”: "1", our sandbox system might be blocked, causing the display of "buy_tax": "1" and "sell_tax": "1"

cannot_sell_all

It describes whether the contract has the function restricting the token holders from selling all the tokens. "1" means true; "0" means false; No return means unknown.

(1) When "is_in_dex": "0", there will be no return. (2) This feature means that you will not be able to sell all your tokens in a single sale. Sometimes you need to leave a certain percentage of the token, e.g. 10%, sometimes you need to leave a fixed number of tokens, such as 10 tokens. (3) When "buy_tax": "1", there will be no return.

slippage_modifiable

It describes whether the trading tax can be modifiable by token contract. "1" means true; "0" means false; No return means unknown.

(1) When When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) Token with modifiable tax means that the contract owner can modify the buy tax or sell tax of the token. This may cause some losses, especially since some contracts have unlimited modifiable tax rates, which would make the token untradeable. (4) This function generally relies on ownership. When the contract does not have an owner (or if the owner is a black hole address) and the owner cannot be retrieved, this function will most likely be disabled.

is_honeypot

It describes whether the token is a honeypot. "HoneyPot" means that the token maybe cannot be sold because of the token contract's function, or the token contains malicious code. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) High risk, definitely scam.

transfer_pausable

It describes whether trading can be pausable by token contract. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) This feature means that the contract owner will be able to suspend trading at any time, after that anyone will not be able to sell, except those who have special authority. (4) This function generally relies on ownership. When the contract does not have an owner (or if the owner is a black hole address) and the owner cannot be retrieved, this function will most likely be disabled.

is_blacklisted

It describes whether the blacklist function is not included in the contract. If there is a blacklist, some addresses may not be able to trade normally. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) The contract owner may add any address to the blacklist, and the token holder in the blacklist will not be able to trade. Abuse of the blacklist function will lead to great risks. (4) For contracts without an owner (or the owner is a black hole address), the blacklist will not be able to get updated. However, the existing blacklist is still in effect.

is_whitelisted

It describes whether the whitelist function is not included in the contract. If there is a whitelist, some addresses may not be able to trade normally. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) Whitelisting is mostly used to allow specific addresses to make early transactions, tax-free, and not affected by transaction suspension. (4) For contracts without an owner (or the owner is a black hole address), the whitelist will not be able to get updated. However, the existing whitelist is still in effect.

dex

It describes Dex's information on where the token can be traded.

(1) When "is_in_dex": "0", there will be an empty array. (2) It only counts when the token has a marketing pair with mainstream coins/tokens. (3) Liquidity is converted to USDT denomination.

is_anti_whale

It describes whether the contract has the function to limit the maximum amount of transactions or the maximum token position for a single address. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return.

anti_whale_modifiable

It describes whether the contract has the function to modify the maximum amount of transactions or the maximum token position. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3)When the anti-whale value is set to a very small value, all trading would fail.

trading_cooldown

It describes whether the contract has a trading-cool-down mechanism that can limit the minimum time between two transactions. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return.

personal_slippage_modifiable

It describes whether the owner can set a different tax rate for every assigned address. "1" means true; "0" means false; No return means unknown.

(1) When "is_open_source": "0", there will be no return. (2) Sometimes, when "is_proxy": "1", there will be no return. (3) The contract owner may set a very outrageous tax rate for an assigned address to block it from trading. Abuse of this function will lead to great risks. (4) For contracts without an owner (or the owner is a black hole address), this function would not be able to be used. However, the existing tax rate would be still in effect.

Token information security

Parameter
Description
Notice

token_name

token_symbol

holder_count

It describes the number of token holders. Example:"holder_count": "4342"

total_supply

It describes the supply number of the token. Example:"total_supply": 100000000

holders

It describes the top 10 holders' info. The info includes: (1) "address" describes the holder's address; (2) "locked." describes whether the tokens owned by the holder are locked "1" means true; "0" means false; (3) "tag" describes the address's public tag. Example: Burn Address/Deployer; (4) "is_contract" describes whether the holder is a contract "1" means true; "0" means false; (5) "balance" describes the balance of the holder. (6) "percent" describes the percentage of tokens held by this holder; (7) "locked_detail" is an array, that describes the lock position info of this holder, and only shows when "locked": 1. This Array may contain multiple objects for multiple locking info. In every object, "amount" describes the number of tokens locked, "end_time" describes when the token will be unlocked, and "opt_time" describes when the token was locked.

(1) About "locked": We only support the token lock addresses or black hole addresses that we have included. (2) When "locked":0, or lock address is a black hole address, "locked_detail" will be no return. (3) About "percent": 1 means 100% here.

owner_balance

It describes the balance of the contract owner. Example:"owner_balance": 100000000 No return or return empty means there is no ownership or can't find ownership.

When "owner_address" returns empty, or no return, there will be no return.

owner_percent

It describes the percentage of tokens held by the contract owner. Example: "owner_balance": "0.1". No return or return empty means there is no ownership or can't find ownership.

(1) 1 means 100% here. (2) When "owner_address" returns empty, or no return, there will be no return.

creator_address

It describes this contract's owner address.

creator_balance

It describes the balance of the contract owner. Example:"owner_balance": 100000000.

creator_percent

It describes the percentage of tokens held by the contract owner. Example:"owner_balance": 0.1.

1 means 100% here.

lp_holder_count

It describes the number of LP token holders. Example: "lp_holder_count": "4342". No return means no LP.

When "is_in_dex": "0", there will be no return.

lp_total_supply

It describes the supply number of the LP token. Example: "lp_total_supply": "100000000". No return means no LP.

(1) When "is_in_dex": "0", there will be no return. (2) It is LP token number, NOT a token number

lp_holders

It describes the top 10 LP holders' info. The info includes: (1) "address" describes the holder's address; (2) "locked" describes whether the tokens owned by the holder are locked. "1" means true; "0" means false; (3) β€œtag” describes the address's public tag. Example: Burn Address/Deployer; (4) β€œis_contract” describes whether the holder is a contract "1" means true; "0" means false. (5) β€œbalance” describes the balance of the holder. (6) "percent" describes the percentage of tokens held by this holder (7) "locked_detail" is an array, that describes the lock position info of this holder, and only shows when "locked": "1". This Array may contain multiple objects for multiple locking info. In every object, "amount" describes the number of tokens locked, "end_time" describes when the token will be unlocked, and "opt_time" describes when the token was locked. No return means no LP.

(1) When "is_in_dex": "0", there will be no return. (2) About "locked": We only support the token lock addresses or black hole addresses that we have included. (3) About "percent": 1 means 100% here. (4) When "locked": "0", or the lock address is a black hole address, "locked_detail" will be no return.

is_true_token

It describes whether the token is true or fake. "1" means true token; "0" means fake token; None means no result (Because we did not find decisive information about the truth or falsity)

Only "is_true_token": "0" means it is a fake token.

is_airdrop_scam

It describes whether the token is an airdrop scam. "1" means true; "0" means false; None means no result (Because We did not find conclusive information on whether the token is an airdrop scam).

Only "is_airdrop_scam": "1" means it is an airdrop scam.

trust_list

It describes whether the token is a famous and trustworthy one. "1" means true; No return no result (Because We did not find conclusive information on whether the token is an airdrop scam).

(1) Only "trust_list": "1" means it is a famous and trustworthy token. (2) No return doesn't mean it is risky.

other_potential_risks

It describes whether the contract has other potential risks. Example: "other_potential_risks": "Owner can set different transaction taxes for each user, which can trigger serious losses."

(1) If we haven't found any other potential risk yet, there will be no return. (2) Type: string.

note

It describes whether the contract has other things investors need to know. Example: "note": "Contract owner is a multisign contract."

(1) If we haven't found any other thing which is valuable yet, there will be no return. (2) Type: string.

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_checkTokenSecurity",
    "params": [
        {
            "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
        }
    ]
}
'

Response

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "0xdac17f958d2ee523a2206206994597c13d831ec7": {
            "anti_whale_modifiable": "0",
            "buy_tax": "0",
            "can_take_back_ownership": "0",
            "cannot_buy": "0",
            "cannot_sell_all": "0",
            "creator_address": "0x36928500bc1dcd7af6a2b4008875cc336b927d57",
            "creator_balance": "592.01",
            "creator_percent": "0.000000",
            "dex": [
                {
                    "name": "UniswapV3",
                    "liquidity": "121353634.2854768255922326298923373",
                    "pair": "0x4e68ccd3e89f51c3074ca5072bbac773960dfa36"
                },
                {
                    "name": "UniswapV3",
                    "liquidity": "88684903.78449084946997178539622143",
                    "pair": "0x11b815efb8f581194ae79006d24e0d814b7697f6"
                },
                {
                    "name": "UniswapV3",
                    "liquidity": "78186131.82040599999999999999999999",
                    "pair": "0x3416cf6c708da44db2624d63ea0aaef7113527c6"
                },
                {
                    "name": "UniswapV2",
                    "liquidity": "29869433.39352680",
                    "pair": "0x0d4a11d5eeaac28ec3f61d100daf4d40471f1852"
                },
                {
                    "name": "UniswapV2",
                    "liquidity": "10898104.61920500",
                    "pair": "0x3041cbd36888becc7bbcbc0045e3b1f144466f5f"
                },
                {
                    "name": "SushiSwapV2",
                    "liquidity": "8785968.68980473",
                    "pair": "0x06da0fd433c1a5d7a4faa01111c044910a184553"
                },
                {
                    "name": "UniswapV2",
                    "liquidity": "40064.85490565",
                    "pair": "0xb20bd5d04be54f870d5c0d3ca85d82b34b836405"
                },
                {
                    "name": "UniswapV2",
                    "liquidity": "2304.67449171",
                    "pair": "0x5ac13261c181a9c3938bfe1b649e65d10f98566b"
                },
                {
                    "name": "SushiSwapV2",
                    "liquidity": "919.48019000",
                    "pair": "0xd86a120a06255df8d4e2248ab04d4267e23adfaa"
                },
                {
                    "name": "SushiSwapV2",
                    "liquidity": "531.28008229",
                    "pair": "0x680a025da7b1be2c204d7745e809919bce074026"
                },
                {
                    "name": "SushiSwapV2",
                    "liquidity": "189.24568912",
                    "pair": "0x055cedfe14bce33f985c41d9a1934b7654611aac"
                },
                {
                    "name": "UniswapV2",
                    "liquidity": "45.67705772",
                    "pair": "0xe3ffab89e53422f468be955e7011932efe80aa26"
                },
                {
                    "name": "SushiSwapV2",
                    "liquidity": "6.95706147",
                    "pair": "0x8b79c78f7aa289a7e9bde311a21ffdba4ab493e3"
                }
            ],
            "external_call": "1",
            "hidden_owner": "0",
            "holder_count": "4533111",
            "holders": [
                {
                    "address": "0xf977814e90da44bfa03b6295a0616a897441acec",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "2741694580.187",
                    "percent": "0.070251316723613879",
                    "is_locked": 0
                },
                {
                    "address": "0x47ac0fb4f2d84898e4d9e7b4dab3c24507a6d503",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "1220000115.495224",
                    "percent": "0.031260452982569192",
                    "is_locked": 0
                },
                {
                    "address": "0xa7a93fd0a276fc1c0197a5b5623ed117786eed06",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "1006676309.532571",
                    "percent": "0.025794388904656133",
                    "is_locked": 0
                },
                {
                    "address": "0xcee284f754e854890e311e3280b767f80797180d",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "680125441.408795",
                    "percent": "0.017427071615299356",
                    "is_locked": 0
                },
                {
                    "address": "0x5754284f345afc66a98fbb0a0afe71e0f007b949",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "572560196.323196",
                    "percent": "0.014670892952814579",
                    "is_locked": 0
                },
                {
                    "address": "0xd6216fc19db775df9774a6e33526131da7d19a2c",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "552404534.348583",
                    "percent": "0.014154437982452395",
                    "is_locked": 0
                },
                {
                    "address": "0x40ec5b33f54e0e8a33a975908c5ba1c14e5bbbdf",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "438448917.195829",
                    "percent": "0.011234516773545536",
                    "is_locked": 0
                },
                {
                    "address": "0x3cc936b795a188f0e246cbb2d74c5bd190aecf18",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "378391577.599446",
                    "percent": "0.009695648361267692",
                    "is_locked": 0
                },
                {
                    "address": "0xc5451b523d5fffe1351337a221688a62806ad91a",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "300000101.01",
                    "percent": "0.007686998495555328",
                    "is_locked": 0
                },
                {
                    "address": "0x6fb624b48d9299674022a23d92515e76ba880113",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "300000021.01",
                    "percent": "0.007686996445689752",
                    "is_locked": 0
                }
            ],
            "honeypot_with_same_creator": "3",
            "is_anti_whale": "0",
            "is_blacklisted": "1",
            "is_honeypot": "0",
            "is_in_dex": "1",
            "is_mintable": "1",
            "is_open_source": "1",
            "is_proxy": "0",
            "is_whitelisted": "0",
            "lp_holder_count": "2580",
            "lp_holders": [
                {
                    "address": "0x9e5405df8a23fa331b8e9c00f39e9b39860bfee4",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.190855066915162277",
                    "percent": "0.611670191023440192",
                    "is_locked": 0
                },
                {
                    "address": "0xd7a51ff8357c210d11499e251b2849d1bb35cbc2",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.026735221175764617",
                    "percent": "0.085683540437011625",
                    "is_locked": 0
                },
                {
                    "address": "0x069d2a5d415894b74c80650a5d67f09e28282b9d",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.020327557887362157",
                    "percent": "0.065147661086356319",
                    "is_locked": 0
                },
                {
                    "address": "0xd916127b40e3383fcc09ab8feaae0f2a6a1300c1",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.009332185275495837",
                    "percent": "0.029908661281002600",
                    "is_locked": 0
                },
                {
                    "address": "0xcc4ea98876f3ee733712ac64137c34e637fc2dae",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.007047620804507465",
                    "percent": "0.022586875126925875",
                    "is_locked": 0
                },
                {
                    "address": "0x5db53185393e3ccacd4bb95733c012ae292758d7",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "0.006552721608886416",
                    "percent": "0.021000775840091457",
                    "is_locked": 0
                },
                {
                    "address": "0x95f0323bc1efefff9aff3679d2613027f1a263ec",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "0.006370079562330457",
                    "percent": "0.020415427505821374",
                    "is_locked": 0
                },
                {
                    "address": "0xe114011f16c21ed91b6ae3d3f6433f57bbd6a04f",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.004762299208426745",
                    "percent": "0.015262662467452408",
                    "is_locked": 0
                },
                {
                    "address": "0xfd18d8638c1659b602905c29c0bc0e93c6d2426c",
                    "tag": "",
                    "is_contract": 0,
                    "balance": "0.003625952593339222",
                    "percent": "0.011620792422532967",
                    "is_locked": 0
                },
                {
                    "address": "0x6c3e4cb2e96b01f4b866965a91ed4437839a121a",
                    "tag": "",
                    "is_contract": 1,
                    "balance": "0.003016134648695324",
                    "percent": "0.009666390767293383",
                    "is_locked": 0
                }
            ],
            "lp_total_supply": "0.312022834717228196",
            "owner_address": "0xc6cde7c39eb2f0f0095f41570af89efc2c1ea828",
            "owner_balance": "108983.76699",
            "owner_change_balance": "1",
            "owner_percent": "0.000003",
            "personal_slippage_modifiable": "0",
            "selfdestruct": "0",
            "sell_tax": "0.0001",
            "slippage_modifiable": "0",
            "token_name": "Tether USD",
            "token_symbol": "USDT",
            "total_supply": "39026949359.163005",
            "trading_cooldown": "0",
            "transfer_pausable": "1",
            "trust_list": "1"
        }
    }
}

Last updated