Skip to content

token

Methods exposed through client.token(network).

get_token_allowance

Returns the ERC-20 token allowance for a spender and owner via the alchemy_getTokenAllowance JSON-RPC method.

Parameters:

Name Type Description Default
token_allowance_request TokenAllowanceRequest

Request payload.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
str

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/token/get_token_allowance.py
async def get_token_allowance(
  self,
  token_allowance_request: TokenAllowanceRequest,
  *,
  validate: bool | None = None
) -> str:
  """Returns the ERC-20 token allowance for a spender and owner via the `alchemy_getTokenAllowance` JSON-RPC method.

  Args:
    token_allowance_request: Request payload.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/token-api/token-api-endpoints/alchemy-get-token-allowance)
    """
  r = await self.rpc_request('alchemy_getTokenAllowance', token_allowance_request, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r

get_token_balances

Returns ERC-20 token balances (or native token balance) for a wallet address via the alchemy_getTokenBalances JSON-RPC method.

Parameters:

Name Type Description Default
address str

Wallet address to inspect.

required
token_spec TokenSpec

Token selection: all ERC-20 tokens, native token, default tokens, or explicit contract addresses.

'erc20'
options TokenBalancesOptions | None

Pagination options.

None
validate bool | None

Validation override for this request.

None

Returns:

Type Description
TokenBalancesResponse

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/token/get_token_balances.py
async def get_token_balances(
  self,
  address: str,
  token_spec: TokenSpec = 'erc20',
  *,
  options: TokenBalancesOptions | None = None,
  validate: bool | None = None
) -> TokenBalancesResponse:
  """Returns ERC-20 token balances (or native token balance) for a wallet address via the `alchemy_getTokenBalances` JSON-RPC method.

  Args:
    address: Wallet address to inspect.
    token_spec: Token selection: all ERC-20 tokens, native token, default tokens, or explicit contract addresses.
    options: Pagination options.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/token-api/token-api-endpoints/alchemy-get-token-balances)
    """
  params = [address, token_spec]
  if options is not None:
    params.append(options)
  r = await self.rpc_request('alchemy_getTokenBalances', params, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r

get_token_balances_paged

Paged version of get_token_balances.

Parameters:

Name Type Description Default
address str

Wallet address to inspect.

required
token_spec TokenSpec

Token selection: all ERC-20 tokens, native token, default tokens, or explicit contract addresses.

'erc20'
options TokenBalancesBaseOptions | None

Cursor-free pagination options.

None
validate bool | None

Validation override for each request.

None

Returns:

Type Description
PaginatedResponse[TokenBalance, str]

An async iterable and awaitable paginated token balances response.

References
Source code in pkg/src/alchemy/api/token/get_token_balances.py
def get_token_balances_paged(
  self,
  address: str,
  token_spec: TokenSpec = 'erc20',
  *,
  options: TokenBalancesBaseOptions | None = None,
  validate: bool | None = None,
) -> PaginatedResponse[TokenBalance, str]:
  """Paged version of get_token_balances.

  Args:
    address: Wallet address to inspect.
    token_spec: Token selection: all ERC-20 tokens, native token, default tokens, or explicit contract addresses.
    options: Cursor-free pagination options.
    validate: Validation override for each request.

  Returns:
    An async iterable and awaitable paginated token balances response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/token-api/token-api-endpoints/alchemy-get-token-balances)
    """
  async def next(state: str):
    page_options: TokenBalancesOptions = {}
    if options is not None and 'maxCount' in options:
      page_options['maxCount'] = options['maxCount']
    if state:
      page_options['pageKey'] = state
    response = await self.get_token_balances(
      address,
      token_spec,
      options=page_options or None,
      validate=validate,
    )
    return response['tokenBalances'], response.get('pageKey')

  return PaginatedResponse('', next)

get_token_metadata

Returns name, symbol, decimals, and logo for a token contract via the alchemy_getTokenMetadata JSON-RPC method.

Parameters:

Name Type Description Default
contract_address str

Token contract address.

required
validate bool | None

Validation override for this request.

None

Returns:

Type Description
TokenMetadataResponse

The validated endpoint response.

References
Source code in pkg/src/alchemy/api/token/get_token_metadata.py
async def get_token_metadata(
  self,
  contract_address: str,
  *,
  validate: bool | None = None
) -> TokenMetadataResponse:
  """Returns name, symbol, decimals, and logo for a token contract via the `alchemy_getTokenMetadata` JSON-RPC method.

  Args:
    contract_address: Token contract address.
    validate: Validation override for this request.

  Returns:
    The validated endpoint response.

  References:
    - [Alchemy API docs](https://www.alchemy.com/docs/data/token-api/token-api-endpoints/alchemy-get-token-metadata)
    """
  r = await self.rpc_request('alchemy_getTokenMetadata', contract_address, validate=validate)
  return adapter.python(r) if self.should_validate(validate) else r