all-tools-on-blockchain
All-in-one toolset for blockchain smart contract analysis. Read on-chain data, query access control roles, compare contract similarity, check deploy time, and verify bytecode.
Install
pip install all-tools-on-blockchain
Tools
| Command | Description |
|---|---|
cread |
Read on-chain contract public view data and storage slots |
acl |
Query OpenZeppelin AccessControl roles and members |
solsim |
Compare similarity of Solidity contracts in a directory |
deploytime |
Query contract deployment time |
bcverify |
Verify on-chain bytecode against a local compiled artifact |
Usage
cread — Read Contract Data
Read all public view functions and default proxy slots:
cread -a 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38
Read a specific storage slot:
cread -a 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 -s 0x0
Example output:
Contract Address: 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38
Contract Name: TimedLockBox
+--------------------------------------------+------------------+---------------------------+--------------------------------------------------------------------+
| ABI From Which Contract | Data Type | Variable Name | Value|Input Type |
+--------------------------------------------+------------------+---------------------------+--------------------------------------------------------------------+
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | no params func | owner | 0x1590a7dc3485cE3D32cDAA7cB60E9F2D68116003 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | no params func | penaltyPercentage | 5 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | no params func | totalFees | 0 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | slot | _ADMIN_SLOT | 0x0000000000000000000000000000000000000000000000000000000000000000 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | slot | _BEACON_SLOT | 0x0000000000000000000000000000000000000000000000000000000000000000 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | slot | _IMPLEMENTATION_SLOT | 0x0000000000000000000000000000000000000000000000000000000000000000 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | slot | _ROLLBACK_SLOT | 0x0000000000000000000000000000000000000000000000000000000000000000 |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | with params func | getUnlockTimeAndLockedEth | address |
| 0xb916F7A2233C90f7ca7B09f4Ece6aF9feafB8E38 | with params func | locks | address |
+--------------------------------------------+------------------+---------------------------+--------------------------------------------------------------------+
acl — Query Access Control
acl -a 0xYourContractAddress
Options:
-r / --role— Filter by role name or hash (partial match)-p / --proxy— HTTP/SOCKS proxy (e.g.http://127.0.0.1:7890)-o / --output— Export results to.jsonor.md-c / --chain— Chain ID (default: 1 for Ethereum Mainnet)
solsim — Contract Similarity
Compare all .sol files within a single directory:
solsim -d ./contracts
Cross-compare .sol files between two directories:
solsim -d ./contracts-v1 -d2 ./contracts-v2
Options:
-d2 / --dir2— Second directory to cross-compare against the first-t / --threshold— Minimum similarity ratio (0.0–1.0, default 0.0)
deploytime — Deploy Time
deploytime -a 0xYourContractAddress
Options:
-p / --proxy— HTTP/SOCKS proxy-c / --chain— Chain ID (default: 1)
bcverify — Bytecode Verify
Verify on-chain bytecode matches a local compiled artifact:
bcverify -a 0xYourContractAddress -f ./artifacts/Contract.json
Options:
-f / --file— Local bytecode file (Hardhat/Foundry JSON artifact, or.bin/.hex)-p / --proxy— HTTP/SOCKS proxy--strict— Strict mode: do not ignore metadata differences-c / --chain— Chain ID (default: 1)
Supported Chains
Any EVM-compatible chain supported by Etherscan V2 API. Use -c to specify the chain ID:
| Chain | ID |
|---|---|
| Ethereum | 1 |
| BSC | 56 |
| Polygon | 137 |
| Arbitrum | 42161 |
| Optimism | 10 |
| ... | ... |
License
MIT
Metadata
Release files for all-tools-on-blockchain 0.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| all_tools_on_blockchain-0.0.4.tar.gz | 16.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| all_tools_on_blockchain-0.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.9 kB
Release files / all_tools_on_blockchain-0.0.4.tar.gz
| Download URL | all_tools_on_blockchain-0.0.4.tar.gz |
|---|---|
| Size | 16.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cefdf6312194e8b0445593ae336435e49fb484bb697622aab69901c5e384df7d
|
|
BLAKE2b-256 checksum How to use checksums |
01700967cc0392bbd90b1e6aa909bedae3d74a4e7b0fb5d6c30a196ed0bbbf8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Release files / all_tools_on_blockchain-0.0.4-py3-none-any.whl
| Download URL | all_tools_on_blockchain-0.0.4-py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1a5cc15fb1f6e4e88c91851fb3d149d1de06a992a0b5e0dce2ec7fbc9bd5b121
|
|
BLAKE2b-256 checksum How to use checksums |
84935eb6bb6c8806b5a8ab5696b7741daaf680b51ab0b3a0a2c6e28f79605afd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.10
|
Security for all-tools-on-blockchain 0.0.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.