Practical overview
When it fits
Use Pakala as a focused analysis tool when investigating Ethereum contracts for exploitable paths, especially where simple contract logic or transaction sequences are relevant.
Who it is for
- Ethereum and EVM security researchers examining contract execution paths.
- Researchers looking for potentially exploitable bugs across smart contracts.
Documented uses
- Scan a contract for exploitable bugs using symbolic execution.
- Inspect reported transaction paths, their constraints, and storage reads or writes.
- Explore multi-transaction behavior and selected storage or hash-related cases.
Requirements & limits
The project documents installation through pip3 and requires Python 3. The repository identifies GPL-3.0 as its license.
- A finding is reported as a path of transaction states with constraints and storage activity to inspect.
- A virtual balance can be specified in the documented example to explore a contract with no balance.
- The tool does not handle gas or precompiles, and general contract-to-contract interactions are unsupported; CALL support is limited to sending ether.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install Pakala and scan an Ethereum contract
Install Pakala with Python 3, scan the documented example contract with a virtual balance, and inspect the reported execution path.
Before you start
- Python 3
- An Ethereum contract address; the documented example is 0xeBE6c7a839A660a0F04BdF6816e2eA182F5d542C
Steps
Install Pakala with the command below.
pip3 install pakalaScan the example contract using
pakala 0xeBE6c7a839A660a0F04BdF6816e2eA182F5d542C --force-balance="1 ether".Review the reported bug and dumped states, which describe transactions and their constraints and storage reads or writes.
Inspect
calldata[0]in the constraints to identify each transaction's function signature.
Expected outcome
Pakala reports whether it finds a bug and, when one is found, provides a path of states describing the relevant transaction sequence and execution constraints.
Guide limitations
- Pakala works only with Python 3.
- It models only a subset of the EVM: it does not handle gas or precompiles, and does not support general contract-to-contract interactions such as DELEGATECALL and STATICCALL. CALL support is limited to sending ether.
- The forced balance is virtual; it is used in the example because the contract's actual balance is zero.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- palkeo/pakala · Official homepage title · retained in its source language

