{"id":22954963,"url":"https://github.com/e-contract/ethereum-tool","last_synced_at":"2025-08-13T02:32:14.051Z","repository":{"id":54668277,"uuid":"131255592","full_name":"e-Contract/ethereum-tool","owner":"e-Contract","description":null,"archived":false,"fork":false,"pushed_at":"2024-11-24T08:52:45.000Z","size":151,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-24T09:27:31.932Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/e-Contract.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-27T06:33:00.000Z","updated_at":"2024-11-24T08:52:48.000Z","dependencies_parsed_at":"2023-02-08T06:45:31.407Z","dependency_job_id":null,"html_url":"https://github.com/e-Contract/ethereum-tool","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-Contract%2Fethereum-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-Contract%2Fethereum-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-Contract%2Fethereum-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/e-Contract%2Fethereum-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/e-Contract","download_url":"https://codeload.github.com/e-Contract/ethereum-tool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229724827,"owners_count":18114513,"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":[],"created_at":"2024-12-14T16:20:11.636Z","updated_at":"2024-12-14T16:20:12.249Z","avatar_url":"https://github.com/e-Contract.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Ethereum Tool\n=============\n\nCommand line tool for offline template-based transaction signing.\n\nIf you like this tool, please consider a donation at:\n```\n0x0c56073db91c2Ba57FF362301eb32262BBeE6147\n```\n\n\n# Installation\n\nDownload the latest ZIP from:\nhttps://www.e-contract.be/maven2/be/e-contract/ethereum-tool/\n\nInstall (macOS, Linux, or FreeBSD) via:\n```\nsudo unzip -o ethereum-tool-1.0.8.zip -d /usr/local/\n```\n\n\n# Usage\n\nRun the tool via:\n```\nethereum-tool\n```\n\n\n# Offline key management\n\nReboot your machine using a Linux Live USB stick so you work in a clean and secure environment.\n\nThe `password` command might give you some inspiration for a strong password.\n```\nethereum-tool password\n```\n\nCreate a new key and corresponding transaction template via:\n```\nethereum-tool createkey -d keystore -t templates\n```\n\nThe `keystore` directory will contain the new key.\nThe `templates` directory will contain the corresponding transaction template.\n\nStore the key in a save way (e.g., multiple USB keys or so).\nThe transaction template can be used to prepare transactions to be signed.\n\nVerify the key via:\n```\nethereum-tool verifykey -f keystore/UTC--...\n```\n\nYou can also create a transaction template from an existing key via:\n```\nethereum-tool verifykey -f keystore/UTC--... -t templates\n```\n\n\n# Preparing a transaction\n\nPreparing a transaction requires an online machine.\n\nCopy the transaction template to a `transaction.json` file to prepare a new transaction.\n\nYou need to change some fields within the `transaction.json` file.\n\nFirst of all the nonce need to be set correct.\nRetrieve the correct nonce of your address via:\n```\nethereum-tool nonce -l http://localhost:8545 -a your_address_here\n```\nThis of course requires a running and synched Ethereum node.\n\nYou also might want to adjust the gas price.\nQuery the current gas price (as reported by your local node) via:\n```\nethereum-tool gasprice -l http://localhost:8545\n```\n\nNotice that this might not be the sharpest gas price possible.\nCheck out the network speed to see the currently used gas prices:\n```\nethereum-tool speed -l http://localhost:8545\n```\n\n\n# Offline transaction signing\n\nAfter the transaction JSON file has been prepared we boot again via our Linux Live USB to have a clean and secure environment.\n\nSign the transaction via:\n```\nethereum-tool sign -f keystore/UTC--... -t transaction.json -o transaction\n```\n\nInspect the signed transaction via:\n```\nethereum-tool inspect -f transaction\n```\n\n\n# Transmitting the transaction\n\nThis requires an online machine of course.\n\nTransmit the transaction to the network via:\n```\nethereum-tool transmit -l http://localhost:8545 -f transaction\n```\n\nCheck the status of the transaction via:\n```\nethereum-tool confirm -l http://localhost:8545 -f transaction\n```\n\n\n# Development\n\nBuild the project via Maven:\n```\nmvn clean install\n```\n\nWe use Netbeans as IDE.\nIf you send pull requests, please keep the code clean to ease the review process.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-contract%2Fethereum-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fe-contract%2Fethereum-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fe-contract%2Fethereum-tool/lists"}