{"id":13616798,"url":"https://github.com/dapphub/dapptools","last_synced_at":"2025-04-23T21:04:55.213Z","repository":{"id":37502501,"uuid":"137069125","full_name":"dapphub/dapptools","owner":"dapphub","description":"Dapp, Seth, Hevm, and more","archived":false,"fork":false,"pushed_at":"2025-02-25T19:28:22.000Z","size":8864,"stargazers_count":2121,"open_issues_count":171,"forks_count":324,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-04-10T22:07:19.503Z","etag":null,"topics":["dapp","ethereum","evm","nix","solc","tools"],"latest_commit_sha":null,"homepage":"https://dapp.tools","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dapphub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-12T12:34:20.000Z","updated_at":"2025-04-09T11:48:01.000Z","dependencies_parsed_at":"2023-02-12T12:16:17.561Z","dependency_job_id":"6440f6d4-3ca5-445e-aea7-12e13ed29ac9","html_url":"https://github.com/dapphub/dapptools","commit_stats":{"total_commits":3048,"total_committers":105,"mean_commits":29.02857142857143,"dds":0.7559055118110236,"last_synced_commit":"f932a37f70b2bd33d24f4d412d7e4f2cec53d1e3"},"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapphub%2Fdapptools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapphub%2Fdapptools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapphub%2Fdapptools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dapphub%2Fdapptools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dapphub","download_url":"https://codeload.github.com/dapphub/dapptools/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248305845,"owners_count":21081575,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dapp","ethereum","evm","nix","solc","tools"],"created_at":"2024-08-01T20:01:33.423Z","updated_at":"2025-04-10T22:07:36.496Z","avatar_url":"https://github.com/dapphub.png","language":"Haskell","funding_links":[],"categories":["Tools","Haskell","Official Docs","Docs","Others"],"sub_categories":["Front-End"],"readme":"# Dapp tools by DappHub [![Chat](https://img.shields.io/badge/community-chat-blue.svg?style=flat-square)](https://dapphub.chat)\n\nHello!\n\n`dapptools` is a suite of Ethereum focused CLI tools following the Unix design philosophy,\nfavoring composability, configurability and extensibility.\n\nThis repository contains the source code for several programs\nhand-crafted and maintained by DappHub, along with dependency management, courtesy of Nix.\n\n- [dapp](./src/dapp) - All you need Ethereum development tool. Build, test, fuzz, formally verify, debug \u0026 deploy solidity contracts.\n- [seth](./src/seth) - Ethereum CLI. Query contracts, send transactions, follow logs, slice \u0026 dice data.\n- [hevm](./src/hevm) - Testing oriented EVM implementation. Debug, fuzz, or symbolically execute code against local or mainnet state.\n- [ethsign](./src/ethsign) - Sign Ethereum transactions from a local keystore or hardware wallet.\n\n## Development Status\n\ndapptools is currently in a stage of clandestine development where support for the casual user may\nbe deprived. The software can now be considered free as in free puppy. Users seeking guidance can\nexplore using foundry as an alternative\n\n## Installation\n\nInstall Nix if you haven't already ([instructions](https://nixos.org/download.html)). Then install dapptools:\n\n### With flakes\n\n```\nnix profile install github:dapphub/dapptools#{dapp,ethsign,hevm,seth}\n```\n\nNix will offer to use the dapptools binary cache, which will speed up installs,\nbut requires you to trust both us and the Cachix infrastructure.\n\n### Legacy\n\n```\ncurl https://dapp.tools/install | sh\n```\n\nThis configures the dapphub binary cache and installs the `dapp`, `solc`, `seth` and `hevm` executables.\n\n**NOTE:** Arm support in the GHC haskell compiler is still fairly bleeding edge, until this\nsituation stabilises, users of M1 macs must run dapptools (and the installer!) under rosetta 2 (i.e.\nas an emulated x86 program). Make sure `/etc/nix/nix.conf` contains `system = x86_64-darwin`.\n\nYou can also install an individual tool with:\n\n```sh\nnix-env -iA \u003ctool\u003e -f $(curl -sS https://api.github.com/repos/dapphub/dapptools/releases/latest | jq -r .tarball_url)\n```\n\nIf you instead want to build from `master`, change the url to `https://github.com/dapphub/dapptools/archive/master.tar.gz`.\n\n### Prebuilt hevm binary\n\nStatic binaries for linux and macos of hevm are available for each release at https://github.com/dapphub/dapptools/releases.\n\nMost functionality is available out of the box, but for symbolic execution you will need\n[`solc`](https://github.com/ethereum/solidity) and ([`z3`](https://github.com/Z3Prover/z3/) or [`cvc4`](https://github.com/CVC4/CVC4) (or both)).\n\n## Getting started\n\nFor more information about the tools, consult the individual README pages:\n\n- [seth](./src/seth/README.md)\n- [dapp](./src/dapp/README.md)\n- [hevm](./src/hevm/README.md)\n- [ethsign](./src/ethsign/README.md)\n\nor use the `--help` flag for any tool.\n\nWe're also happy to answer any questions at https://dapphub.chat/.\n\n## Examples\n\nDeploy a 'Hello World' contract and call it:\n```sh\nexport ETH_RPC_URL=https://mainnet.infura.io/v3/$YOUR_API_KEY\nexport ETH_FROM=$YOUR_ADDRESS\necho 'contract Hello { function hi() public pure returns(string memory) {return \"Hello, World!\";}}' | solc --bin -o . --overwrite -\nHELLO=$(seth send --create $(\u003cHello.bin))\nseth call $HELLO \"hi()(string)\"\n```\n\nDebug the first transaction of the latest block in the interactive debugger:\n```sh\nexport ETH_RPC_URL=https://mainnet.infura.io/v3/$YOUR_API_KEY\nseth run-tx $(seth block latest transactions | jq .'[0]' -r) --debug\n```\n\nIf Vitalik's next transaction were a contract deployment, calculate the address it would be deployed at:\n```\nexport ETH_RPC_URL=https://mainnet.infura.io/v3/$YOUR_API_KEY\ndapp address 0xab5801a7d398351b8be11c439e05c5b3259aec9b $(seth nonce 0xab5801a7d398351b8be11c439e05c5b3259aec9b)\n```\n\nSymbolically explore the possible execution paths of a call to `dai.transfer(address,uint)`:\n```sh\nseth bundle-source 0x6b175474e89094c44da98b954eedeac495271d0f \u003e daisrc.json \u0026\u0026 \\\nhevm symbolic --address 0x6b175474e89094c44da98b954eedeac495271d0f --rpc $ETH_RPC_URL  --debug --sig \"transfer(address,uint256)\" --json-file daisrc.json\n```\n\n## Contributing\n\nContributions are always welcome! You may be interested in the\n[architecture](./ARCHITECTURE.md) of this repository.\n\n[![built with nix](https://builtwithnix.org/badge.svg)](https://builtwithnix.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapphub%2Fdapptools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdapphub%2Fdapptools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdapphub%2Fdapptools/lists"}