{"id":44854,"library":"eth-ape","title":"Ape Framework (eth-ape)","description":"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.","status":"active","version":"0.8.50","language":"python","source_language":"en","source_url":"https://github.com/ApeWorX/ape","tags":["ethereum","blockchain","smart-contracts","testing","dev-framework"],"install":[{"cmd":"pip install eth-ape","lang":"bash","label":"Default install"},{"cmd":"pip install eth-ape[recommended-plugins]","lang":"bash","label":"Install with recommended plugins"}],"dependencies":[{"reason":"Underlying Ethereum interaction library.","package":"web3","optional":false},{"reason":"Vyper compiler for smart contracts (needed for Vyper projects).","package":"vyper","optional":true}],"imports":[{"note":"accounts is a top-level ape singleton, not a submodule.","wrong":"from ape.accounts import accounts","symbol":"accounts","correct":"from ape import accounts"},{"note":"project is a top-level ape singleton.","wrong":"from ape.project import project","symbol":"project","correct":"from ape import project"},{"note":"Contract class is available at the top level.","wrong":"from ape.contracts import Contract","symbol":"Contract","correct":"from ape import Contract"}],"quickstart":{"code":"from ape import accounts, project\n\n# Load account (keyfile with password or use --account flag)\naccount = accounts.load('my_account')\n\n# Deploy a compiled contract\ncontract = project.MyContract.deploy(sender=account)\n\n# Interact\ncontract.myMethod(123, sender=account)\nprint(f\"Block: {contract.provider.get_block('latest').number}\")","lang":"python","description":"Basic deployment and interaction using Ape's project and accounts."},"warnings":[{"fix":"Use `accounts['0x...']` instead of `accounts.load('0x...')`.","message":"As of v0.8, the `ape.accounts` API changed: `accounts.load()` no longer accepts an `address` parameter; use `accounts[address]` instead.","severity":"breaking","affected_versions":">=0.8.0"},{"fix":"Use `from ape import Contract`.","message":"In v0.8, the `ape.contracts` module restructured: `Contract` is now importable directly from `ape`, not `ape.contracts`.","severity":"breaking","affected_versions":">=0.8.0"},{"fix":"Use `ape build` instead of `ape compile`.","message":"The `compile` command is deprecated in favor of `build`.","severity":"deprecated","affected_versions":">=0.8.0"},{"fix":"Use `accounts.load('alias')` interactively or pass password via environment variable `APE_ACCOUNT_PASSWORD`.","message":"Accounts must be unlocked before use. If using a keyfile, call `accounts.load()` which will prompt for password or require `--account` flag.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'0.8.50':38 'ape':1,5,6 'base':18 'blockchain':19,49 'cadenc':42 'compil':27 'contract':10,34,52 'current':35 'deploy':28 'dev':55 'dev-framework':54 'develop':11 'eth':4 'eth-ap':3 'ethereum':17,48 'ethereum-bas':16 'framework':2,14,56 'interact':31 'month':47 'per':46 'provid':24 'python':22 'releas':41,45 'sever':44 'smart':9,33,51 'smart-contract':50 'test':13,29,53 'tool':25 'version':36 'written':20","created_at":"2026-06-07T12:52:09.350383+00:00","updated_at":"2026-06-07T12:52:09.350383+00:00","problems":[{"fix":"Use `from ape import Contract` instead.","cause":"Incorrect import path in v0.8+.","error":"ImportError: cannot import name 'Contract' from 'ape.contracts'"},{"fix":"Ensure you are using `from ape import accounts` and not `from ape.accounts import accounts`.","cause":"Using old API or incorrect reference to accounts.","error":"AttributeError: 'Accounts' object has no attribute 'load'"},{"fix":"Unlock an account with `accounts.load('alias')` or set environment variable `APE_ACCOUNT_PRIVATE_KEY`.","cause":"No account unlocked or no private key set.","error":"ape.exceptions.SigningError: No signing backend available"},{"fix":"Change to a directory containing an `ape-config.yaml` file or initialize a project with `ape init`.","cause":"Running `ape` commands outside a project directory.","error":"ape.exceptions.ProjectNotFoundError: No project found"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/ApeWorX/ape.git","github":"https://github.com/ApeWorX/ape.git","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}