Skip to main content

Quick Start

A series of utilities for working with tokens, based on the py-tokenlists.

Dependencies

Installation

via pip

You can install the latest release via pip:

pip install ape-tokens

via setuptools

You can clone the repository and use setuptools for the most up-to-date version:

git clone https://github.com/ApeWorX/ape-tokens.git
cd ape-tokens
python3 setup.py install

Quick Usage

CLI Usage

First, install a token list, such as the 1inch token list, which contains many tokens that you can use:

ape tokens install tokens.1inch.eth

To see all the tokens you can use, run command:

ape tokens list-tokens

To see other available CLI commands, run:

ape tokens --help

Configuration

You can configure this plugin (and by extension, configure py-tokenlists) using the config file:

# ape-config.yaml
tokens:
  default: "My Default List"
  required:
    - name: "My Default List"
      uri: "http://example.com/tokenlist.json"

You can also configure this plugin via Environment Variable:

APE_TOKENS_DEFAULT="My Default List"
APE_TOKENS_REQUIRED='[{"name":"My Default List","uri":"http://example.com/tokenlist.json"}]'

Configuration like this may be useful for operating in a cloud environment

Ape Console Extras

The tokens manager object is very useful for improving your ape experience. You can install it as a "console namespace extra" by adding the following lines to your project's ./ape_console_extras.py or your global $HOME/.ape/ape_console_extras.py:

...

try:
    from ape_tokens import tokens
except ImportError:
    pass  # Plugin not installed, skip

...

This way, whenever you use ape console (with this plugin installed) you will have tokens available immediately without having to import it!

Python Usage

One of the main reasons to use the ape-tokens plugin is to have nicer UX for providing token amounts to contract transactions. For example, let's say you have a smart-contract named MyContract with a function provideLinkToken() that takes a decimal value of LINK tokens. The following is an example script that deploys the contract and makes a transaction by expressing the value of LINK as 8.23 LINK:

from ape import accounts, project

my_account = accounts[0]
contract = my_account.deploy(project.MyContract)

tx = contract.provideLinkTokens("8.23 LINK", sender=me)

Alternatively, if you need the converted value returned to you, you can use the convert tool from the root ape namespace:

from ape import convert

convert("100.1234 BAT", int)

This plugin also provides a conversion function for addresses, for example if you want to use a .swap function that takes two address inputs which are expected to be tokens (as well as a 3rd argument which is an amount of the 1st token), you can do:

tx = swapper.swap("BAT", "LINK", "10 BAT", sender=me)

To get information about a token, including its contract address, you can do so by importing the tokens member from the root ape_tokens namespace:

from ape_tokens import tokens

bat = tokens["BAT"]

print(bat.address)
print(bat.symbol())

You can also work with the tokens object in an iterable context, such as iterating over a set of tokens in your token list:

from ape_tokens import tokens

for token in tokens:
    print(token.balanceOf(me))

Or in a mapping context (similar to using it like a dict):

assert "BAT" in tokens

if bat := tokens.get("BAT"):
    print("BAT is in our token list!")

Testing

ape-tokens also ships a test-token contract for using tokens in your Ape tests.

from ape_tokens.testing import MockERC20


def test_deposit(accounts):
    owner = accounts[0]
    
    # Setup some test tokens.
    usdc = MockERC20.deploy(owner, "USD Coin", "USDC", 6, sender=owner)
    weth = MockERC20.deploy(owner, "Wrapped Ether", "WETH", 18, sender=owner)
    
    ...

Metadata

Release files for ape-tokens 0.8.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ape-tokens 0.8.9
File Size Uploaded
ape_tokens-0.8.9.tar.gz 36.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ape-tokens 0.8.9
File Interpreter ABI Platform
ape_tokens-0.8.9-py3-none-any.whl Python 3 none any Details

Total release size: 62.5 kB

Release files / ape_tokens-0.8.9.tar.gz

Download URL ape_tokens-0.8.9.tar.gz
Size 36.1 kB
Tags Source
SHA-256 checksum
How to use checksums
e400b33ff9ac95a02acb0838d9b1003fc166bb8824fb38aea1fa2ddc3f9b6f3a
BLAKE2b-256 checksum
How to use checksums
11aedc194f038f71af592e729d04747455a10ed974b2ca331ed748d5e3dc113f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / ape_tokens-0.8.9-py3-none-any.whl

Download URL ape_tokens-0.8.9-py3-none-any.whl
Size 26.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9507a6cdc9def6bf2ca9783b546f02c7cbe5bf783eb5890a1b55b1af4c961072
BLAKE2b-256 checksum
How to use checksums
919dda94133d8ffe7363697c7377508ffb5d68897741131a0e302cf034b37ce9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page