{"id":21607432,"url":"https://github.com/janrockdev/eth-wallet","last_synced_at":"2025-07-22T20:33:54.083Z","repository":{"id":144360245,"uuid":"528110786","full_name":"janrockdev/eth-wallet","owner":"janrockdev","description":"Eth-Wallet Generator","archived":false,"fork":false,"pushed_at":"2022-09-13T19:40:17.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T15:21:40.639Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/janrockdev.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":"2022-08-23T18:10:49.000Z","updated_at":"2022-09-13T19:40:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"45f924c1-ad2d-4670-97a5-2eb7e3d36a0b","html_url":"https://github.com/janrockdev/eth-wallet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/janrockdev/eth-wallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janrockdev%2Feth-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janrockdev%2Feth-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janrockdev%2Feth-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janrockdev%2Feth-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/janrockdev","download_url":"https://codeload.github.com/janrockdev/eth-wallet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/janrockdev%2Feth-wallet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266567638,"owners_count":23949391,"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","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-11-24T20:30:49.901Z","updated_at":"2025-07-22T20:33:54.059Z","avatar_url":"https://github.com/janrockdev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Eth-Wallet Generator\n\nSimple Ethereum wallet generator with a RESTful API server to interact with ethereum type of network, Etherscan and node. \n\nToDo \u0026 Bugs\n--------\n- fix send transactions \n- option for Etherscan (Rinkeby testnet)\n\nFeatures\n--------\n- create keystore with a wallet details\n- get address's balance(eth, erc20), transaction, nonce from node\n- estimate transaction's gas limit\n- get gasprice from node\n- get address's transaction history(eth, erc20) from etherscan api\n- send eth, erc20 from your address to another address\n- sign message, sign transaction\n- verify message\n\nSetup\n------\n\nCreate account with Infura (Rinkeby Testnet API):\n\nhttps://infura.io/dashboard\n\nTop-up Rinkeby Faucet:\n\nhttps://rinkebyfaucet.com\n\nEtherscan Rinkeby:\n\nhttps://rinkeby.etherscan.io\n\n## Setup config\n\n### config path\n\nEnvironment variable: ETHEREUM_WALLET_CONFIG_PATH\n\n```shell\nexport ETHEREUM_WALLET_CONFIG_PATH=\"/Users/janrock/eth-wallet/tmp\"\n```\n(if you don't set path to config.json, default path be project root)\n\n### config.json\n\n#### Variable\n\n- `network(not necessary)`: defalut network, you can choose ropsten, rinkeby or mainnet.  \n- `ropsten, rinkeby, mainnet`: network's node_url and etherscan_api_url need to be set in here, `node_url`\n  is ethereum node's url, you can choose to use infura(https://infura.io/), `etherscan_api_url` is\n  etherscan's developer api url.  \n- `etherscan_api_key`: etherscan's api key, you can register at etherscan(https://etherscan.io/apis)\n- `server_url(not necessary)`: server's url when use start server command, default is set in http://127.0.0.1:8080  \n- `keyfile`: keystore's path, you can create keystore from cli create command  \n- `passphrase(not necessary)`: keystore's passphrase, it's a fast way to unlock keyfile, or you can input in terminal when cli need unlock wallet  \n- `address(not necessary)`: default query address  \n- `erc20_list`: erc20 token's list, you need provide token's decimals, name, symbol, I put some popular \n  erc20 token in project's erc20_list.json file, user can add token you need in config file.\n\n#### Example\n```\n{\n\"rinkeby\":{\n\"node_url\": \"https://rinkeby.infura.io/v3/a827d9b9e1ff4d17b3dc46698821b8cb\",\n\"etherscan_api_url\": \"https://api-rinkeby.etherscan.io/api\"\n},\n  \"server_url\": \"http://127.0.0.1:8080\",\n  \"etherscan_api_key\": \"NFZAYYT9CJ1AYFPAZ7HF2134E63U9UUBBCS\",\n  \"keyfile\": \"./tests/key/test\",\n  \"passphrase\": \"pass\",\n  \"address\": \"0xd3ba5c8d3a81f601bbb5e085773725a685139aa7\",\n  \"erc20_list\": [\n    {\n      \"decimals\": 18,\n      \"name\": \"Weenus\",\n      \"symbol\": \"Weenus\",\n      \"address\": \"0x10184ad5c5bbaa18e6b4431eedf6b95e9adf82fa\"\n    }\n  ]\n}\n```\n\n## Build \n\n```shell script\ngo build ./cmd/cli\n```\n\n## Run\n\n### run server first\n```shell script\nopen /Applications/Google\\ Chrome.app --args --user-data-dir=\"/var/tmp/Chrome dev session\" --disable-web-security\n./cli server start -network rinkeby\n```\n\n### do what you want to do\n```shell script\n./cli\n```\n\nExample\n-------\n\n## cli command\n\n### Server command\n\n```shell script\n./cli server start -port 8080 -network rinkeby\n```\n\n### Wallet command\n\n#### get keystore address\n\n```shell script\n./cli wallet address -keyfile \"./keystore/test\"\n```\n\n#### create keystore\n\n```shell script\n./cli wallet create -p \"\"./keystore\"\n```\n\n#### sign message\n\n```shell script\n./cli wallet signmessage --keyfile \"./keystore/test\" --msg \"hello\"\n```\n\n#### sign transaction\n\n```shell script\n./cli wallet signtx --keyfile \"./keystore/test\" --transaction  \"{\\\"nonce\\\":160,\\\"gasprice\\\":2000000000,\\\"gaslimit\\\":21000,\\\"to\\\":\\\"0xe5664b93ad268393d1f695c4180993e60c59fc3e\\\",\\\"value\\\":1000000000000,\\\"data\\\":\\\"\\\"}\"\n```\n\n#### verifymessage\n\n```shell script\n./cli wallet verifymessage -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\" -signature \"0x61c01b1a23624f176cbc42feda9c394ce0c9c8dd80b46ab4ca3d5dfb95a4e60335ec0f8c1bcc475dfc5bdafa697b10e56c329fdf136fee4ec800898be2412d4f00\" -message \"hello\"\n```\n\n### Node command\n\n#### get address's balance\n\n```shell script\n./cli node balance -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n\n#### get address's nonce\n\n```shell script\n./cli node nonce -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n\n#### get address's erc20balance\n\n```shell script\n./cli node erc20balance -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n#### get address's txhistory\n\n```shell script\n./cli node txhistory -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n\n#### get address's internaltxhistory\n\n```shell script\n./cli node internaltxhistory -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n\n#### get address's erc20txhistory\n\n```shell script\n./cli node erc20txhistory -address \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\"\n```\n\n#### get gasprice from node\n\n```shell script\n./cli node gasprice \n```\n\n#### get transaction's estimate gas\n\n- The unit needs to be expressed in the form of wei\n\n```shell script\n./cli node gaslimit --transaction ./cli node gaslimit -transaction \"{\\\"from\\\":\\\"0xb60e8dd61c5d32be8058bb8eb970870f07233155\\\",\\\"to\\\":\\\"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\\\",\\\"gasPrice\\\":10000000000,\\\"value\\\":100000000}\"\n```\n#### send raw transaction\n\n```shell script\n./cli node sendrawtx -raw \"0x1234\"\n```\n\n### NodeWallet wallet\n\n#### send ether to other address\n\n- The unit needs to be expressed in the form of wei\n\n```shell script\n./cli nodewallet sendether -keyfile \"./keystore/test\" -to \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\" -value 10000000000\n```\n\n### send erc20 to other address\n\n```shell script\n./cli nodewallet senderc20 -keyfile \"./keystore/test\" -symbol \"Weenus\" -to \"0x51bf0b41Ba5B034f158CF1233f16bA5450F9355B\" -value 1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanrockdev%2Feth-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjanrockdev%2Feth-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjanrockdev%2Feth-wallet/lists"}