Tok{In} API (beta)
The Tok{In} API offers an array of features that can help determine on whether a token is malicious or not. From storage checks, to simulation and static analsysis features. In its current form the Tok{In} API supports all ERC20 contracts on Ethereum, with more chains coming soon. The features are across all Uniswap V2/V3 and Aerodrome V2(Base) pools with V4 support coming soon.
Usage
curl -X 'GET' \
'https://tokin.dedaub.com/token/{chain}/{token_address}' \
-H 'accept: application/json' \
-H 'X-API-Key: YOUR-API-KEY'
chain: The chain of the token
token_address: The address of the token
User Interface
A Swagger UI for easier interraction with the API is available at https://tokin.dedaub.com .
Available Chains
The available chains are: ethereum, binance, arbitrum, base and avalance.
DEX coverage is most complete on Ethereum, with more pools being added to the other chains over time.
Static Analysis Features
We leverage the Gigahorse decompiler to analyze contracts whose source code is unavailable. The decompiled bytecode is checked for patterns commonly associated with undesirable behaviors in ERC20 tokens.
mint_or_burn_function:
There is a public function that changes the token’s total supply
selfdestruct:
The contract contains a selfdestruct call. (Note: The EVM no longer supports the SELFDESTRUCT opcode, so this is now a no-op.)
trading_cooldown:
An address must wait for a certain period after its last transfer before it can transfer tokens again.
view_function_modifies_state:
A function with the signature of one of the view functions defined by EIP-20 updates a storage variable.
has_trading_cap:
The amount of tokens transferred by a single call to transfer cannot exceed a value, either constant or held in storage.
has_trading_cap_functionality:
There is code that could enforce a trading cap. This can be true even if the cap is disabled.
trading_cap_can_be_modified:
The transfer amount cap is held in storage and there is function that can update it.
has_position_cap:
The amount of tokens an address can hold cannot exceed a value, either constant or held in storage.
position_cap_can_be_modified:
The position cap is held in storage and there is function that can update it.