# Overview
**Ape Framework** is an easy-to-use Web3 development tool.
Users can compile, test, and interact with smart contracts all in one command line session.
With our **modular plugin system**, Ape supports multiple contract languages and chains.
Ape is built by [ApeWorX LTD](https://www.apeworx.io/).
Join our [ApeWorX Discord server](https://discord.gg/apeworx) to stay up to date on new releases, plugins and tutorials.
If you want to just get started, jump down to the [Playing with Ape](#playing-with-ape).
## Documentation
Read our [technical documentation](https://docs.apeworx.io/ape/stable/) to get a deeper understanding of our open source Framework.
Read our [academic platform](https://academy.apeworx.io/) will help you master Ape Framework with tutorials and challenges.
## Prerequisite
In the latest release, Ape requires:
- Linux or macOS
- Python 3.8 up to 3.11
- **Windows**: Install Windows Subsystem Linux [(WSL)](https://docs.microsoft.com/en-us/windows/wsl/install)
Check your python version in a terminal with `python3 --version`.
## Installation
There are three ways to install ape: `pipx`, `pip`, or `Docker`.
### Considerations for Installing:
- We advise installing in a [virtualenv](https://pypi.org/project/virtualenv/) or [venv](https://docs.python.org/3/library/venv.html) to avoid interfering with *OS-level site packages*.
- We advise installing **`ape`** with recommended plugins `pip install eth-ape'[recommended-plugins]'`.
- We advise for **macOS** users to install virtual env via [homebrew](https://formulae.brew.sh/formula/virtualenv).
### via `pipx` or `pip`
1. Install `pipx` via their [installation instructions](https://pypa.github.io/pipx/) or `pip` via their [installation instructions](https://pip.pypa.io/en/stable/cli/pip_install/).
2. Install **`ape`** via `pipx install eth-ape` or `pip install eth-ape`.
### via `docker`
Ape can also run in a docker container.
Please visit our [Dockerhub](https://hub.docker.com/repository/docker/apeworx/ape) for more details on using Ape with Docker.
```bash
docker run \
--volume $HOME/.ape:/home/harambe/.ape \
--volume $HOME/.vvm:/home/harambe/.vvm \
--volume $HOME/.solcx:/home/harambe/.solcx \
--volume $PWD:/home/harambe/project \
--workdir /home/harambe/project \
apeworx/ape compile
```
## Playing with Ape
After you installed Ape, you can run `ape --version` to make sure it works and is the latest version.
There are two ways to interact with Ape:
- [CLI Reference](https://docs.apeworx.io/ape/latest/index.html)
- [Python Reference](https://docs.apeworx.io/ape/latest/index.html)
Ape is both a CLI tool and a Python SDK.
The CLI tool contains all the Ape commands and the Python SDK contains the classes and types needed to compose scripts, console actions, and tests.
## **Ape Modular Plugin System:**
Our [list of plugins](https://www.apeworx.io/#plugins) is the best way to have the most interoperable experience with Web3.
**NOTE**: If a plugin does not originate from the [ApeWorX GitHub Organization](https://github.com/ApeWorX?q=ape&type=all), you will get a warning about installing 3rd-party plugins.
Install 3rd party plugins at your own risk.
Additionally, plugins that come bundled with **`ape`** in the core installation cannot be removed and are part of the **`ape`** core software.
- Learn more about **installing** plugins from following this [installing user guide](https://docs.apeworx.io/ape/stable/userguides/installing_plugins.html).
- Learn more about **developing** your own plugins from this [developing user guide](https://docs.apeworx.io/ape/stable/userguides/developing_plugins.html).
### Accounts
In Ape, you will need accounts to make transactions.
You can import or generate accounts using the core `accounts` plugin:
```bash
ape accounts import acc0 # Will prompt for a private key
ape accounts generate acc1
```
List all your accounts with the `list` command.
```bash
ape accounts list
```
Learn more about accounts in Ape by following the [accounts guide](https://docs.apeworx.io/ape/stable/userguides/accounts.html).
### Plugins
Add any plugins you may need, such as `vyper`.
```bash
ape plugins list -a
ape plugins install vyper
ape plugins list -a
```
## Projects
When using Ape, you generally will work with a project.
Learn more about smart-contract **projects** from this [projects guide](https://docs.apeworx.io/ape/stable/userguides/projects.html).
### Compiling
You can compile contracts within the `contracts/` directory of your project.
The `--size` option will display you the size of the contract.
```bash
ape compile --size
```
Learn more about compiling in Ape by following the [compile guide](https://docs.apeworx.io/ape/stable/userguides/compile.html).
### Testing
Use Ape to test your smart-contract projects.
Provide the same arguments to `pytest` as you would to the `ape test` command.
For example:
```bash
ape test -k test_only_one_thing
```
Visit the [testing guide](https://docs.apeworx.io/ape/stable/userguides/testing.html) to learn more about testing using Ape.
### Console
Ape provides an `IPython` interactive console with useful pre-defined locals to interact with your project.
To interact with a deployed contract in a local environment, start by opening the console:
```bash
ape console --network ethereum:mainnet:infura
```
Visit [Ape Console](https://docs.apeworx.io/ape/stable/commands/console.html) to learn how to use Ape Console.
### Scripts
If you want to run specific files in a `scripts/` directory, you can do it using the `ape run` command.
```bash
# This command will run a file named deploy in the scripts/ directory
$ ape run deploy
```
Learn more about scripting using Ape by following the [scripting guide](https://docs.apeworx.io/ape/stable/userguides/scripts.html).
### Logging
To enable debug logging, run your command with the `--verbosity` flag using `DEBUG` as the value:
```bash
ape --verbosity DEBUG run
```
### Networks
You can work with registered networks, providers, and blockchain ecosystems (like Ethereum):
```python
from ape import networks
with networks.ethereum.mainnet.use_provider("infura"):
... # Work with the infura provider here
```
To learn more about networks in Ape, see [this guide](https://docs.apeworx.io/ape/stable/commands/networks.html).
Raw data
{
"_id": null,
"home_page": "https://apeworx.io",
"name": "eth-ape",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4",
"maintainer_email": "",
"keywords": "ethereum",
"author": "ApeWorX Ltd.",
"author_email": "admin@apeworx.io",
"download_url": "https://files.pythonhosted.org/packages/22/53/e7d8ca9dd1d1c1f24c7f96818d7e4b47b359164d3e4356d81ac7107777a9/eth-ape-0.6.10.tar.gz",
"platform": null,
"description": "# Overview\n\n**Ape Framework** is an easy-to-use Web3 development tool.\nUsers can compile, test, and interact with smart contracts all in one command line session.\nWith our **modular plugin system**, Ape supports multiple contract languages and chains.\n\nApe is built by [ApeWorX LTD](https://www.apeworx.io/).\n\nJoin our [ApeWorX Discord server](https://discord.gg/apeworx) to stay up to date on new releases, plugins and tutorials.\n\nIf you want to just get started, jump down to the [Playing with Ape](#playing-with-ape).\n\n## Documentation\n\nRead our [technical documentation](https://docs.apeworx.io/ape/stable/) to get a deeper understanding of our open source Framework.\n\nRead our [academic platform](https://academy.apeworx.io/) will help you master Ape Framework with tutorials and challenges.\n\n## Prerequisite\n\nIn the latest release, Ape requires:\n\n- Linux or macOS\n- Python 3.8 up to 3.11\n- **Windows**: Install Windows Subsystem Linux [(WSL)](https://docs.microsoft.com/en-us/windows/wsl/install)\n\nCheck your python version in a terminal with `python3 --version`.\n\n## Installation\n\nThere are three ways to install ape: `pipx`, `pip`, or `Docker`.\n\n### Considerations for Installing:\n\n- We advise installing in a [virtualenv](https://pypi.org/project/virtualenv/) or [venv](https://docs.python.org/3/library/venv.html) to avoid interfering with *OS-level site packages*.\n\n- We advise installing **`ape`** with recommended plugins `pip install eth-ape'[recommended-plugins]'`.\n\n- We advise for **macOS** users to install virtual env via [homebrew](https://formulae.brew.sh/formula/virtualenv).\n\n### via `pipx` or `pip`\n\n1. Install `pipx` via their [installation instructions](https://pypa.github.io/pipx/) or `pip` via their [installation instructions](https://pip.pypa.io/en/stable/cli/pip_install/).\n\n2. Install **`ape`** via `pipx install eth-ape` or `pip install eth-ape`.\n\n### via `docker`\n\nApe can also run in a docker container.\n\nPlease visit our [Dockerhub](https://hub.docker.com/repository/docker/apeworx/ape) for more details on using Ape with Docker.\n\n```bash\ndocker run \\\n--volume $HOME/.ape:/home/harambe/.ape \\\n--volume $HOME/.vvm:/home/harambe/.vvm \\\n--volume $HOME/.solcx:/home/harambe/.solcx \\\n--volume $PWD:/home/harambe/project \\\n--workdir /home/harambe/project \\\napeworx/ape compile\n```\n\n## Playing with Ape\n\nAfter you installed Ape, you can run `ape --version` to make sure it works and is the latest version.\n\nThere are two ways to interact with Ape:\n\n- [CLI Reference](https://docs.apeworx.io/ape/latest/index.html)\n\n- [Python Reference](https://docs.apeworx.io/ape/latest/index.html)\n\nApe is both a CLI tool and a Python SDK.\n\nThe CLI tool contains all the Ape commands and the Python SDK contains the classes and types needed to compose scripts, console actions, and tests.\n\n## **Ape Modular Plugin System:**\n\nOur [list of plugins](https://www.apeworx.io/#plugins) is the best way to have the most interoperable experience with Web3.\n\n**NOTE**: If a plugin does not originate from the [ApeWorX GitHub Organization](https://github.com/ApeWorX?q=ape&type=all), you will get a warning about installing 3rd-party plugins.\n\nInstall 3rd party plugins at your own risk.\n\nAdditionally, plugins that come bundled with **`ape`** in the core installation cannot be removed and are part of the **`ape`** core software.\n\n- Learn more about **installing** plugins from following this [installing user guide](https://docs.apeworx.io/ape/stable/userguides/installing_plugins.html).\n\n- Learn more about **developing** your own plugins from this [developing user guide](https://docs.apeworx.io/ape/stable/userguides/developing_plugins.html).\n\n### Accounts\n\nIn Ape, you will need accounts to make transactions.\nYou can import or generate accounts using the core `accounts` plugin:\n\n```bash\nape accounts import acc0 # Will prompt for a private key\nape accounts generate acc1\n```\n\nList all your accounts with the `list` command.\n\n```bash\nape accounts list\n```\n\nLearn more about accounts in Ape by following the [accounts guide](https://docs.apeworx.io/ape/stable/userguides/accounts.html).\n\n### Plugins\n\nAdd any plugins you may need, such as `vyper`.\n\n```bash\nape plugins list -a\nape plugins install vyper\nape plugins list -a\n```\n\n## Projects\n\nWhen using Ape, you generally will work with a project.\n\nLearn more about smart-contract **projects** from this [projects guide](https://docs.apeworx.io/ape/stable/userguides/projects.html).\n\n### Compiling\n\nYou can compile contracts within the `contracts/` directory of your project.\nThe `--size` option will display you the size of the contract.\n\n```bash\nape compile --size\n```\n\nLearn more about compiling in Ape by following the [compile guide](https://docs.apeworx.io/ape/stable/userguides/compile.html).\n\n### Testing\n\nUse Ape to test your smart-contract projects.\nProvide the same arguments to `pytest` as you would to the `ape test` command.\n\nFor example:\n\n```bash\nape test -k test_only_one_thing\n```\n\nVisit the [testing guide](https://docs.apeworx.io/ape/stable/userguides/testing.html) to learn more about testing using Ape.\n\n### Console\n\nApe provides an `IPython` interactive console with useful pre-defined locals to interact with your project.\nTo interact with a deployed contract in a local environment, start by opening the console:\n\n```bash\nape console --network ethereum:mainnet:infura\n```\n\nVisit [Ape Console](https://docs.apeworx.io/ape/stable/commands/console.html) to learn how to use Ape Console.\n\n### Scripts\n\nIf you want to run specific files in a `scripts/` directory, you can do it using the `ape run` command.\n\n```bash\n# This command will run a file named deploy in the scripts/ directory\n$ ape run deploy\n```\n\nLearn more about scripting using Ape by following the [scripting guide](https://docs.apeworx.io/ape/stable/userguides/scripts.html).\n\n### Logging\n\nTo enable debug logging, run your command with the `--verbosity` flag using `DEBUG` as the value:\n\n```bash\nape --verbosity DEBUG run\n```\n\n### Networks\n\nYou can work with registered networks, providers, and blockchain ecosystems (like Ethereum):\n\n```python\nfrom ape import networks\nwith networks.ethereum.mainnet.use_provider(\"infura\"):\n ... # Work with the infura provider here\n```\n\nTo learn more about networks in Ape, see [this guide](https://docs.apeworx.io/ape/stable/commands/networks.html).\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Ape Ethereum Framework",
"version": "0.6.10",
"project_urls": {
"Documentation": "https://docs.apeworx.io/ape/",
"Funding": "https://gitcoin.co/grants/5958/ape-maintenance-fund",
"Homepage": "https://apeworx.io",
"Source": "https://github.com/ApeWorX/ape",
"Tracker": "https://github.com/ApeWorX/ape/issues",
"Twitter": "https://twitter.com/ApeFramework"
},
"split_keywords": [
"ethereum"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8f6595a92ad55728fdb68c5a8a2f4f79efdc7df02ee3dd54366661bca3c2b2d5",
"md5": "bc30be76031b044edd8ed80e78fdfcea",
"sha256": "c7153620a840fee054aabdfe2ccd49c9f33cb300b63879dadc9191bf1847774f"
},
"downloads": -1,
"filename": "eth_ape-0.6.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bc30be76031b044edd8ed80e78fdfcea",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4",
"size": 239156,
"upload_time": "2023-05-25T21:44:40",
"upload_time_iso_8601": "2023-05-25T21:44:40.814206Z",
"url": "https://files.pythonhosted.org/packages/8f/65/95a92ad55728fdb68c5a8a2f4f79efdc7df02ee3dd54366661bca3c2b2d5/eth_ape-0.6.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2253e7d8ca9dd1d1c1f24c7f96818d7e4b47b359164d3e4356d81ac7107777a9",
"md5": "d89e865f69fe43e1174c80ced5f769ae",
"sha256": "b1cc962ab330bafbe2a1f8dd63d06f91d1d51c46f148c16388a7bc782a7f9d57"
},
"downloads": -1,
"filename": "eth-ape-0.6.10.tar.gz",
"has_sig": false,
"md5_digest": "d89e865f69fe43e1174c80ced5f769ae",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4",
"size": 1085124,
"upload_time": "2023-05-25T21:44:42",
"upload_time_iso_8601": "2023-05-25T21:44:42.855464Z",
"url": "https://files.pythonhosted.org/packages/22/53/e7d8ca9dd1d1c1f24c7f96818d7e4b47b359164d3e4356d81ac7107777a9/eth-ape-0.6.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-05-25 21:44:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ApeWorX",
"github_project": "ape",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "eth-ape"
}