TokenRiskReply

Documentation for eth_defi.token_analysis.tokenrisk.TokenRiskReply Python class.

class TokenRiskReply

Bases: TypedDict

Token Risk JSON payload.

Example:

{'address': '0x7aaaa5b10f97321345acd76945083141be1c5631',
 'cached': False,
 'cached_at': '2025-08-07T09:00:36.460660',
 'chain_id': '56',
 'data_fetched_at': '2025-08-07T09:00:36.460616',
 'execution_time': 0.001073565,
 'info': {'implementation_address': None,
          'is_proxy': False,
          'is_verified': True,
          'proxy_address': None},
 'market_endorsed': False,
 'results': [{'description': "The token contract's transfer or transferFrom "
                             'functions have a hidden fee functionality that '
                             'can be turned on. This may mean that the '
                             'receiver address can get fewer or a different '
                             'amount of tokens than passed within the transfer '
                             'functions.',
              'key': 'risk_hidden_fees',
              'severity': 'high',
              'sub_title': 'Hidden fee functionality included in transfers',
              'title': 'Hidden fees',
              'value': 'false'},

 ...

 'score': 0}

Attributes summary

cached

Added to the response if it was locally cached

data_fetched_at

ISO format of the orignal reply caching timestamp

score

0 - 100, but prefer flag checks in results yourself

info

chain_id

address

market_endorsed

results

Methods summary

__init__(*args, **kwargs)

clear()

copy()

fromkeys([value])

Create a new dictionary with keys from iterable and values set to value.

get(key[, default])

Return the value for key if key is in the dictionary, else default.

items()

keys()

pop(k[,d])

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

update([E, ]**F)

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

cached: bool

Added to the response if it was locally cached

data_fetched_at: str

ISO format of the orignal reply caching timestamp

score: int

0 - 100, but prefer flag checks in results yourself

__init__(*args, **kwargs)
__new__(**kwargs)
clear() None.  Remove all items from D.
copy() a shallow copy of D
fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() an object providing a view on D's values