{"id":13621149,"url":"https://github.com/Tenderly/tenderly-cli","last_synced_at":"2025-04-15T01:31:24.866Z","repository":{"id":33288146,"uuid":"156588271","full_name":"Tenderly/tenderly-cli","owner":"Tenderly","description":"CLI tool for Smart Contract error tracking, monitoring and alerting.","archived":false,"fork":false,"pushed_at":"2025-01-13T11:36:00.000Z","size":776,"stargazers_count":546,"open_issues_count":52,"forks_count":161,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-13T22:39:28.585Z","etag":null,"topics":["alerting","cli","developer-tools","error-tracking","ethereum","monitoring","real-time-analytics","smart-contracts"],"latest_commit_sha":null,"homepage":"https://tenderly.co","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tenderly.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":"2018-11-07T18:07:37.000Z","updated_at":"2025-04-13T12:40:37.000Z","dependencies_parsed_at":"2024-06-18T15:19:29.618Z","dependency_job_id":"adbf04f2-80d4-4f61-a267-7d6e07e68625","html_url":"https://github.com/Tenderly/tenderly-cli","commit_stats":{"total_commits":425,"total_committers":37,"mean_commits":"11.486486486486486","dds":0.651764705882353,"last_synced_commit":"2118ed42d453dfe16031f523fc8793a835508a51"},"previous_names":[],"tags_count":134,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Ftenderly-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Ftenderly-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Ftenderly-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tenderly%2Ftenderly-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tenderly","download_url":"https://codeload.github.com/Tenderly/tenderly-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989167,"owners_count":21194544,"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":["alerting","cli","developer-tools","error-tracking","ethereum","monitoring","real-time-analytics","smart-contracts"],"created_at":"2024-08-01T21:01:02.977Z","updated_at":"2025-04-15T01:31:24.833Z","avatar_url":"https://github.com/Tenderly.png","language":"Go","readme":"# Tenderly CLI\n\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/Tenderly/tenderly-cli.svg?label=Latest%20Version)](https://github.com/Tenderly/tenderly-cli)\n\nTenderly CLI is a suite of development tools that allows you to debug, monitor and track the execution of your smart\ncontracts. \n\nFor smart contract verification in Tenderly, follow the [Foundry verification guide](https://docs.tenderly.co/contract-verification/foundry) and [Hardhat verification guide](https://docs.tenderly.co/contract-verification/hardhat).\n\n## Table of Contents\n\n* [Installation](#installation)\n* [Usage](#usage)\n    * [Login](#login)\n    * [Init](#init)\n    * [Push](#push)\n    * [Check for updates](#check-for-updates)\n    * [Version](#version)\n    * [Who am I?](#who-am-i)\n    * [Logout](#logout)\n\n## Installation\n\n### macOS\n\nYou can install the Tenderly CLI via the [Homebrew package manager](https://brew.sh/):\n\n```\nbrew tap tenderly/tenderly\nbrew install tenderly\n```\n\nOr if you prefer you can also install by using cURL and running our installation script:\n\n```\ncurl https://raw.githubusercontent.com/Tenderly/tenderly-cli/master/scripts/install-macos.sh | sh\n```\n\n### Linux\n\nYou can install the Tenderly CLI by using cURL and running our installation script.\n\nWith `root` privileges user:\n```\ncurl https://raw.githubusercontent.com/Tenderly/tenderly-cli/master/scripts/install-linux.sh | sh\n```\n\nOr with `sudo` user:\n```\ncurl https://raw.githubusercontent.com/Tenderly/tenderly-cli/master/scripts/install-linux.sh | sudo sh\n```\n\n\n### Windows\n\nGo to the [release page](https://github.com/Tenderly/tenderly-cli/releases), download the latest version and put it\nsomewhere in your `$PATH`.\n\n### Updating\n\nYou can check the current version of the CLI by running:\n\n```\ntenderly version\n```\n\nTo upgrade it via Homebrew:\n\n```\nbrew upgrade tenderly\n```\n\n## Usage\n\n### Login\n\nThe `login` command is used to authenticate the Tenderly CLI with\nyour [Tenderly Dashboard](https://dashboard.tenderly.co).\n\n```\ntenderly login\n```\n\n#### Command Flags\n\n| Flag | Default | Description                                                            |\n| --- | --- |------------------------------------------------------------------------|\n| --authentication-method | / | Pick the authentication method. Possible values are email or access-key |\n| --email | / | The email used when authentication method is email                     |\n| --password | / | The password used when authentication method is email                  |\n| --access-key | / | The token used when authentication method is access-key         |\n| --force | false | Don't check if you are already logged in                               |\n| --help | / | Help for login command                                                 |\n\n### Init\n\nThe `init` command is used to connect your local project directory with a project in\nthe [Tenderly Dashboard](https://dashboard.tenderly.co).\n\n```\ntenderly init\n```\n\n#### Command Flags\n\n| Flag | Default | Description |\n| --- | --- | --- |\n| --project | / | The project name used for generating the configuration file |\n| --create-project | false | Creates the project provided by the --project flag if it doesn't exist |\n| --re-init | false | Force initializes the project if it was already initialized |\n| --help | / | Help for init command |\n\n### Example how to initialize tenderly project\n\nFor Tenderly CLI to work you need to have a `deployments` directory inside your project. You can generate that one\nusing [hardhat-tenderly](https://github.com/Tenderly/hardhat-tenderly#readme.)\n\n1. To install hardhat-tenderly run.\n\n```bash\nnpm install --save-dev @tenderly/hardhat-tenderly\n```\n\n2. Add the following statement to your `hardhat.config.js`:\n\n```js\nrequire(\"@tenderly/hardhat-tenderly\");\n```\n\nOr, if you are using typescript:\n\n```js\nimport \"@tenderly/hardhat-tenderly\"\n```\n\n3. Then you need to call it from your scripts (using ethers to deploy a contract):\n\n```js\nconst Greeter = await ethers.getContractFactory(\"Greeter\");\nconst greeter = await Greeter.deploy(\"Hello, Hardhat!\");\n\nawait greeter.deployed()\n\nawait hre.tenderly.persistArtifacts({\n    name: \"Greeter\",\n    address: greeter.address,\n})\n```\n\n`persistArtifacts` accept variadic parameters:\n\n```js\nconst contracts = [\n    {\n        name: \"Greeter\",\n        address: \"123\"\n    },\n    {\n        name: \"Greeter2\",\n        address: \"456\"\n    }\n]\n\nawait hre.tenderly.persistArtifacts(...contracts)\n```\n\n4. Run: `npx hardhat compile` to compile contracts\n5. Run: `npx hardhat node --network hardhat` to start a local node\n6. Run: `npx hardhat run scripts/sample-script.js --network localhost` to run a script\n7. And at the end now when `deployments` directory was built you can run `tenderly init`\n\n### Push\n\nIf you are using Hardhat, take a look at [docs](https://docs.tenderly.co/monitoring/smart-contract-verification/verifying-contracts-using-the-tenderly-hardhat-plugin) instead of using this command.\n\nThe `push` command is used to add your contracts to the [Tenderly Dashboard](https://dashboard.tenderly.co).\n\nNote that the `push` command is used **only** for adding contracts that are deployed to a public network.\n\n```\ntenderly contracts push\n```\n\n#### Command Flags\n\n| Flag | Default | Description |\n| --- | --- | --- |\n| --networks | / | A comma separated list of network ids to push |\n| --tag | / | Optional tag used for filtering and referencing pushed contracts |\n| --project-slug | / | Optional project slug used to pick only one project to push (see advanced usage) |\n| --help | / | Help for push command |\n\n#### Advanced usage\n\nIt is possible to push to multiple projects by editing the `tenderly.yaml` file and providing a map of projects and\ntheir networks. To do this remove the already provided `project_slug` property and replace it with the `projects`\nproperty like the example below;\n\n```yaml\nprojects: # running tenderly push will push the smart contracts to all of the provided projects\n  my-cool-project:\n    networks:\n      - \"1\" # mainnet\n      - \"5\" # goerli\n  my-other-project:\n  # if the networks property is not provided or is empty the project will be pushed to all of the migrated networks\n  company-account/my-other-project:\n  # if you want to push to a shared project provide the full project identifier\n  # the identifier can be found in your Tenderly dashboard under the projects name\n```\n\n### Verify\n\nThe `verify` command uploads your smart contracts and verifies them on [Tenderly](https://tenderly.co).\n\n```\ntenderly contracts verify\n```\n\n#### Command Flags\n\n| Flag | Default | Description |\n| --- | --- | --- |\n| --networks | / | A comma separated list of network ids to verify |\n| --help | / | Help for verify command |\n\n### Check for updates\n\nThe `update-check` command checks if there is a new version of the Tenderly CLI and gives update instructions and\nchangelog information.\n\n### Version\n\nThe `version` command prints out the current version of the Tenderly CLI.\n\n```\ntenderly version\n```\n\n### Who am I?\n\nThe `whoami` command prints out basic information about the currently logged in account\n\n```\ntenderly whoami\n```\n\n### Logout\n\nThe `logout` command disconnects your local Tenderly CLI from your [Tenderly Dashboard](https://dashboard.tenderly.co)\n\n```\ntenderly logout\n```\n\n### Global Flags\n\nIn addition to command specific flags, the following flags can be passed to any command\n\n| Flag | Default | Description |\n| --- | --- | --- |\n| --debug | false | Turn on debug level logging |\n| --output | text | Which output mode to use: text or json. If not provided. text output will be used. |\n| --global-config | config | Global configuration file name (without the extension) |\n| --project-config | tenderly | Project configuration file name (without the extension) |\n| --project-dir | \"./\" | The directory in which your Truffle project resides |\n\n## Report Bugs / Feedback\n\nWe look forward to any feedback you want to share with us or if you're stuck with a problem you can contact us\nat [support@tenderly.co](mailto:support@tenderly.co).\n\n-----\n\nMade with ♥ by [Tenderly](https://tenderly.co)\n","funding_links":[],"categories":["Tools","Roadmap","Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTenderly%2Ftenderly-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTenderly%2Ftenderly-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTenderly%2Ftenderly-cli/lists"}