Registry / devops / eth-ape

eth-ape

JSON →
library0.8.50pypypi✓ verified 90d 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
15 hits · last 30 days
node
14
Anthropic
1
Resources
eth-ape — pip install eth-ape · libregistry