Registry / devops / eth-ape

eth-ape

JSON →
library0.8.50pypypi✓ verified 85d ago

Ape is a smart contract development and testing framework for Ethereum-based blockchains, written in Python. It provides tools for compiling, deploying, testing, and interacting with smart contracts. Current version is 0.8.50, with a release cadence of several releases per month.

pip install eth-ape
INSTALL
IMPORT
SIG · ETH-APE
E
eth-ape
devopspythonv0.8.50
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

accounts
from ape import accounts
from ape.accounts import accounts
accounts is a top-level ape singleton, not a submodule.
project
from ape import project
from ape.project import project
project is a top-level ape singleton.
Contract
from ape import Contract
from ape.contracts import Contract
Contract class is available at the top level.

Basic deployment and interaction using Ape's project and accounts.

from ape import accounts, project # Load account (keyfile with password or use --account flag) account = accounts.load('my_account') # Deploy a compiled contract contract = project.MyContract.deploy(sender=account) # Interact contract.myMethod(123, sender=account) print(f"Block: {contract.provider.get_block('latest').number}")
Debug
Known issues
breakingAs of v0.8, the `ape.accounts` API changed: `accounts.load()` no longer accepts an `address` parameter; use `accounts[address]` instead.
fix
Use `accounts['0x...']` instead of `accounts.load('0x...')`.
affects: >=0.8.0
breakingIn v0.8, the `ape.contracts` module restructured: `Contract` is now importable directly from `ape`, not `ape.contracts`.
fix
Use `from ape import Contract`.
affects: >=0.8.0
deprecatedThe `compile` command is deprecated in favor of `build`.
fix
Use `ape build` instead of `ape compile`.
affects: >=0.8.0
gotchaAccounts must be unlocked before use. If using a keyfile, call `accounts.load()` which will prompt for password or require `--account` flag.
fix
Use `accounts.load('alias')` interactively or pass password via environment variable `APE_ACCOUNT_PASSWORD`.
affects: all
Errors
Common errors & fixes
ImportError: cannot import name 'Contract' from 'ape.contracts'
Incorrect import path in v0.8+.
fix
Use `from ape import Contract` instead.
AttributeError: 'Accounts' object has no attribute 'load'
Using old API or incorrect reference to accounts.
fix
Ensure you are using `from ape import accounts` and not `from ape.accounts import accounts`.
ape.exceptions.SigningError: No signing backend available
No account unlocked or no private key set.
fix
Unlock an account with `accounts.load('alias')` or set environment variable `APE_ACCOUNT_PRIVATE_KEY`.
ape.exceptions.ProjectNotFoundError: No project found
Running `ape` commands outside a project directory.
fix
Change to a directory containing an `ape-config.yaml` file or initialize a project with `ape init`.
Upgrade
Version history
0.8.50latest on PyPI · released May 8, 2026
Audit
Dependencies
web3requiredUnderlying Ethereum interaction library.
vyperoptionalVyper compiler for smart contracts (needed for Vyper projects).
Agent activity
10 hits · last 30 days
node
10
Resources
eth-ape — pip install eth-ape · libregistry