{"id":40673289,"url":"https://github.com/tryethernal/ethernal-cli","last_synced_at":"2026-01-21T09:37:12.745Z","repository":{"id":39590911,"uuid":"334442747","full_name":"tryethernal/ethernal-cli","owner":"tryethernal","description":"CLI to sync transactions and Truffle artifacts with Ethernal.","archived":false,"fork":false,"pushed_at":"2025-02-22T09:45:33.000Z","size":1176,"stargazers_count":16,"open_issues_count":5,"forks_count":9,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-11-29T00:56:03.567Z","etag":null,"topics":["developer-tools","ethereum","web3"],"latest_commit_sha":null,"homepage":"https://www.tryethernal.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tryethernal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-01-30T15:17:17.000Z","updated_at":"2025-02-22T09:45:33.000Z","dependencies_parsed_at":"2025-03-06T02:41:57.850Z","dependency_job_id":"ea79830e-d9fb-409a-9283-4a2740dcbfcc","html_url":"https://github.com/tryethernal/ethernal-cli","commit_stats":{"total_commits":132,"total_committers":4,"mean_commits":33.0,"dds":0.09848484848484851,"last_synced_commit":"158a5c88244aebe6fa773d640f5d87f79dbe8041"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/tryethernal/ethernal-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryethernal%2Fethernal-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryethernal%2Fethernal-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryethernal%2Fethernal-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryethernal%2Fethernal-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tryethernal","download_url":"https://codeload.github.com/tryethernal/ethernal-cli/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tryethernal%2Fethernal-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28631314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["developer-tools","ethereum","web3"],"created_at":"2026-01-21T09:37:12.635Z","updated_at":"2026-01-21T09:37:12.719Z","avatar_url":"https://github.com/tryethernal.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ethernal-cli\n\nCLI to sync transactions with [Ethernal](https://www.tryethernal.com).\n\nTruffle \u0026 Brownie artifacts are also synced through this CLI, if you are using Hardhat, use [this plugin](https://github.com/antoinedc/hardhat-ethernal).\n\nIf you are looking for more detailed doc about Ethernal: https://doc.tryethernal.com\n\n## Installation\n\n### OSX / Windows\n```bash\nnpm install ethernal -g\n```\n\n### Linux\nOn Linux systems, Ethernal CLI relies on libsecret to securely store your password.\nMake sure it's installed by running the following command, depending on your distribution:\n- Debian/Ubuntu: sudo apt-get install libsecret-1-dev\n- Red Hat-based: sudo yum install libsecret-devel\n- Arch Linux: sudo pacman -S libsecret\n\n[Source](https://github.com/atom/node-keytar#on-linux)\n\nThen run:\n```bash\nnpm install ethernal -g\n```\n\n## Usage\n\n### Authentication\nAuthentication is done through the env variables ```ETHERNAL_EMAIL``` abd ```ETHERNAL_PASSWORD```. They need to be set for all the following commands to work properly.\n\n### Listening to transactions\nThis will synchronize blocks, transactions \u0026 contracts to Ethernal\nThe CLI will connect to the URL set on the workspace you used last.\n```bash\nethernal listen\n```\nFor blocks \u0026 transactions, the whole object returned by web3 is synchronized with Ethernal.\n\n__Options__\n\n### -w\nConnect to the specified workspace. You can also set it with the env variable `ETHERNAL_WORKSPACE`.\n```bash\nethernal listen -w workspace\n```\n\n### -d\nSpecifiy which directory to watch (one or more, separated by a comma)\n```bash\nethernal listen -d ~/solidity/project,~/solidity/project2\n```\n\n### -s\nOnly listen to transactions, do not watch artifacts for changes. Useful if your blockchain is not on your local environment.\nWill be ignore if the ```-l``` flag is passed\n```bash\nethernal listen -s\n```\n\n### -l\nOnly watch artifact changes, do not listen to transactions. Useful if you ran the ```ethernal listen -s``` somewhere else.\n```bash\nethernal listen -l\n```\n\n### -h\nDisplay help\n```bash\nethernal listen -h\n```\n\n### Artifacts Uploading\nRunning the ```listen``` command in a Truffle or Brownie project will automatically watch your artifacts, and upload the data everytime it changes.\nYou can also pass a path to watch with the ```-d``` flag.\n```bash\nethernal listen -d ~/solidity/my-project\n```\nWatch multiple directories at once:\n```bash\nethernal listen -d ~/solidity/my-project,~/solidity/other-project\n```\n\nBy default, only the name and the ABI of the contract are going to be uploaded. If you want to use the \"Storage\" tab of contracts page, you'll need to have the AST uploaded as well. To do so, pass the --astUpload flag as a parameter.\nethernal listen ```--astUpload``` (this will upload the ast field, as well as the source field).\n\nFor Brownie projects, the flag ```dev_deployment_artifacts``` needs to be set to ```true``` in ```brownie-config.yaml```.\n\n### Syncing a range of blocks\n\nThis will sync all blocks in a range (start and end of the range included), and their transactions. It takes two mandatory parameters: ```-f``` or ```--from``` is the first block to be synchronized, and ```-t``` or ```--to``` which is the last block.\n```bash\nethernal sync -f 1 -t 10\n```\n\n### Resetting a workspace\n\nThis will delete all accounts/blocks/transactions/contracts from a specific workspace\n```bash\nethernal reset [workspace]\n```\n\n### [Public Explorer] Verifying a contract\n\nIt is possible to verify a contract deployed on a public explorer using `ethernal verify` with the parameters described below.\nContracts are verified using partial matches, meaning that metadata are stripped before doing the verification.\n\n| Argument               | Shorthand | description                                                                                                                                          | Type    | Required |\n|------------------------|-----------|------------------------------------------------------------------------------------------------------------------------------------------------------|---------|----------|\n| --slug                 | -s        | Slug of the explorer to connect to                                                                                                                   | string  | Yes      |\n| --address              | -a        | Address of the contract to verify                                                                                                                    | string  | Yes      |\n| --compiler             | -c        | Solidity compiler version to use (See list here https://raw.githubusercontent.com/ethereum/solc-bin/gh-pages/bin/list.json, use \"longVersion\" field) | string  | Yes      |\n| --name                 | -n        | Name of the contract to verify                                                                                                                       | string  | Yes      |\n| --path                 | -p        | Path to the file containing the contract to verify                                                                                                   | string  | Yes      |\n| --libraries            | -l        | Link external library. Format path/to/library.sol:Library1=0x1234,path/to/library.sol:Library2=0x12345                                               | string  | No       |\n| --constructorArguments | -g        | Specify constructor arguments (ABI encoded)                                                                                                          | string  | No       |\n| --evmVersion           | -e        | Specify EVM version (see https://docs.soliditylang.org/en/v0.8.16/using-the-compiler.html#target-options for valid options). Default to latest       | string  | No       |\n| --optimizer            | -o        | Enable optimizer. Default to false                                                                                                                   | boolean | No       |\n| --runs                 | -r        | Number of runs if optimizer is enabled                                                                                                               | number  | no       |\n\nExample:\n```bash\nethernal verify \\\n    --address=\"0xa4c190681d2b5cc3d86e62379e0bc94afe2282e7\" \\\n    --slug=\"ethernal\" \\\n    --path=\"contracts/ExampleERC20.sol\" \\\n    --compiler=\"v0.8.0+commitc7dfd78e\" \\\n    --name=\"ExampleERC20\" \\\n    --optimizer=true \\\n    --runs=1000 \\\n    --evmVersion=\"byzantium\" \\\n    --constructorArguments=\"000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000024869000000000000000000000000000000000000000000000000000000000000\"\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryethernal%2Fethernal-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftryethernal%2Fethernal-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftryethernal%2Fethernal-cli/lists"}