{"id":17478307,"url":"https://github.com/layr-labs/eigenlayer-cli","last_synced_at":"2025-04-04T11:08:52.926Z","repository":{"id":211975758,"uuid":"714024495","full_name":"Layr-Labs/eigenlayer-cli","owner":"Layr-Labs","description":"EigenLayer CLI ","archived":false,"fork":false,"pushed_at":"2025-04-03T14:33:20.000Z","size":906,"stargazers_count":75,"open_issues_count":11,"forks_count":110,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-03T14:37:43.085Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.eigenlayer.xyz/","language":"Go","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/Layr-Labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-11-03T18:45:28.000Z","updated_at":"2025-04-03T13:41:28.000Z","dependencies_parsed_at":"2023-12-11T23:09:28.571Z","dependency_job_id":"f042e2a7-fb51-4c4a-a711-c91a200c08a5","html_url":"https://github.com/Layr-Labs/eigenlayer-cli","commit_stats":{"total_commits":161,"total_committers":20,"mean_commits":8.05,"dds":"0.15527950310559002","last_synced_commit":"79add3518f856c71faa3b95b383e35df370bcc52"},"previous_names":["layr-labs/eigenlayer-cli"],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigenlayer-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigenlayer-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigenlayer-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigenlayer-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Layr-Labs","download_url":"https://codeload.github.com/Layr-Labs/eigenlayer-cli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166167,"owners_count":20894654,"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-10-18T20:18:25.304Z","updated_at":"2025-04-04T11:08:52.909Z","avatar_url":"https://github.com/Layr-Labs.png","language":"Go","readme":"![Tests](https://github.com/Layr-Labs/eigenlayer-cli/actions/workflows/tests.yml/badge.svg)\n![Linter](https://github.com/Layr-Labs/eigenlayer-cli/actions/workflows/golangci-lint.yml/badge.svg)\n![Build](https://github.com/Layr-Labs/eigenlayer-cli/actions/workflows/build.yml/badge.svg)\n\n# EigenLayer CLI\n\nEigenLayer CLI is used to interact with EigenLayer core contracts.\n\n\u003c!-- TOC --\u003e\n* [EigenLayer CLI](#eigenlayer-cli)\n  * [Supported Features](#supported-features)\n  * [Supported Key Management Backends](#supported-key-management-backends)\n  * [Supported Operating Systems](#supported-operating-systems)\n  * [Install `eigenlayer` CLI using a binary](#install-eigenlayer-cli-using-a-binary)\n    * [Installing a particular binary version](#installing-a-particular-binary-version)\n    * [Installing in a custom location](#installing-in-a-custom-location)\n  * [Install `eigenlayer` CLI using Go](#install-eigenlayer-cli-using-go)\n  * [Install `eigenlayer` CLI from source](#install-eigenlayer-cli-from-source)\n  * [Documentation](#documentation)\n  * [Release Process](#release-process)\n\u003c!-- TOC --\u003e\n\n## Supported Features\n* Operator Keys Creation and Management via local keystore (ECDSA and BLS over bn254 curve) - `eigenlayer keys --help`\n* Operator Registration, Updates and Status check - `eigenlayer operator --help`\n* Reward Claiming and Setting Claimers - `eigenlayer rewards --help`\n  * [Detailed Command Documentation](pkg/rewards/README.md)\n\n## Supported Key Management Backends\n* Private Key Hex (not recommended for production use)\n* [Local Keystore](https://ethereum.org/en/developers/docs/data-structures-and-encoding/web3-secret-storage/)\n* [Fireblocks](https://www.fireblocks.com/) backed by AWS KMS for secret management\n* [Web3Signer](https://docs.web3signer.consensys.io/)\n\n## Supported Operating Systems\n| Operating System | Architecture |\n|------------------|--------------|\n| Linux            | amd64        |\n| Linux            | arm64        |\n| Darwin           | amd64        |\n| Darwin           | arm64        |\n\n\n## Install `eigenlayer` CLI using a binary\nTo download a binary for the latest release, run:\n```bash\ncurl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s\n```\nThe binary will be installed inside the `~/bin` directory.\n\nTo add the binary to your path, run:\n```bash\nexport PATH=$PATH:~/bin\n```\n\n### Installing a particular binary version\nTo download a binary for a particular version, run:\n```bash\ncurl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s -- \u003cversion\u003e\n```\n\nExample: To install version `v0.11.0`, run:\n```bash\ncurl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s -- v0.11.0\n```\n\n### Installing in a custom location\nTo download the binary in a custom location, run:\n```bash\ncurl -sSfL https://raw.githubusercontent.com/layr-labs/eigenlayer-cli/master/scripts/install.sh | sh -s -- -b \u003ccustom_location\u003e\n```\nWe collect anonymous usage data to improve the CLI. To disable telemetry, set the environment variable `EIGENLAYER_CLI_TELEMETRY_ENABLED` to `false`.\n\n## Install `eigenlayer` CLI using Go\n\u003eNote: Some commands might not work as expected as we use some build time variables. We recommend using [binary installation](#install-eigenlayer-cli-using-a-binary) for best experience.\n\nFirst, install the Go programming language following the [official instructions](https://go.dev/doc/install). You need at least the `1.21` version.\n\nThis command will install the `eigenlayer` executable along with the library and its dependencies in your system:\n\n```bash\ngo install github.com/Layr-Labs/eigenlayer-cli/cmd/eigenlayer@latest\n```\n\nThe executable will be in your `$GOBIN` (`$GOPATH/bin`).\n\nTo check if the `GOBIN` is not in your PATH, you can execute `echo $GOBIN` from the Terminal. If it doesn't print anything, then it is not in your PATH. To add `GOBIN` to your PATH, add the following lines to your `$HOME/.profile`:\n\n```bash\nexport GOBIN=$GOPATH/bin\nexport PATH=$GOBIN:$PATH\n```\n\n\u003e Changes made to a profile file may not apply until the next time you log into your computer. To apply the changes immediately, run the shell commands directly or execute them from the profile using a command such as `source $HOME/.profile`.\n\n## Install `eigenlayer` CLI from source\n\u003eNote: Some commands might not work as expected as we use some build time variables. We recommend using [binary installation](#install-eigenlayer-cli-using-a-binary) for best experience.\n\nWith this method, you generate the binary manually (need Go installed), downloading and compiling the source code:\n\n```bash\ngit clone https://github.com/Layr-Labs/eigenlayer-cli.git\ncd eigenlayer-cli\nmkdir -p build\ngo build -o build/eigenlayer cmd/eigenlayer/main.go\n```\n\nor if you have `make` installed:\n\n```bash\ngit clone https://github.com/Layr-Labs/eigenlayer-cli.git\ncd eigenlayer-cli\nmake build\n```\n\nThe executable will be in the `build` folder.\n\n---\nIn case you want the binary in your PATH (or if you used the [Using Go](#install-eigenlayer-cli-using-go) method and you don't have `$GOBIN` in your PATH), please copy the binary to `/usr/local/bin`:\n\n```bash\n# Using Go\nsudo cp $GOPATH/bin/eigenlayer /usr/local/bin/\n\n# Build from source\nsudo cp eigenlayer-cli/build/eigenlayer /usr/local/bin/\n```\n\n## Documentation\nPlease refer to the full documentation [here](https://docs.eigenlayer.xyz/operator-guides/operator-installation).\n\nLinks to specific sections are provided below.\n* [Create Keys](https://docs.eigenlayer.xyz/operators/howto/operator-installation#create-keys)\n* [Import Keys](https://docs.eigenlayer.xyz/operators/howto/operator-installation#import-keys)\n* [List Keys](https://docs.eigenlayer.xyz/operators/howto/operator-installation#list-keys)\n* [Export Keys](https://docs.eigenlayer.xyz/operators/howto/operator-installation#export-keys)\n* [Fund Wallet with ETH](https://docs.eigenlayer.xyz/operators/howto/operator-installation#fund-ecdsa-wallet)\n* [Register Operator](https://docs.eigenlayer.xyz/operators/howto/operator-installation#operator-configuration-and-registration)\n* [Operator Status](https://docs.eigenlayer.xyz/operators/howto/operator-installation#checking-status-of-registration)\n* [Metadata Updates](https://docs.eigenlayer.xyz/operators/howto/operator-installation#metadata-updates)\n* [Frequently Asked Questions](https://docs.eigenlayer.xyz/operators/reference/operator-faq)\n* [Troubleshooting](https://docs.eigenlayer.xyz/operators/howto/troubleshooting)\n\nIf you see any issues in documentation please create an issue or PR [here](https://github.com/Layr-Labs/eigenlayer-docs)\n\n## Integration Testing\nIntegration testing uses Anvil to generate a reproducible state for the network to be tested against. \n\n### Forge \u0026 Anvil\nThe CLI package leverages tooling from the [eigensdk-go](https://github.com/Layr-Labs/eigensdk-go) to run [Forge](https://github.com/foundry-rs/foundry/tree/master/crates/forge) tests against an [Anvil](https://github.com/foundry-rs/foundry/tree/master/crates/anvil) server based on a predefined network state.\nThis allows the tests to run against a reproducible environment. See the [Run anvil chain](https://github.com/Layr-Labs/eigenlayer-cli/blob/master/.github/workflows/integration-test.yml#L28-L30)\nstep in the integration test workflow. See the [eigensdk-go README.md - Anvil](https://github.com/Layr-Labs/eigensdk-go/blob/dev/README.md)\nfor further discussion on how this environment state is generated and stored.\n\n## Release Process\nTo release a new version of the CLI, follow the steps below:\n\u003e Note: You need to have write permission to this repo to release new version\n\n1. Checkout the master branch and pull the latest changes:\n    ```bash\n    git checkout master\n    git pull origin master\n    ```\n2. In your local clone, create a new release tag using the following command:\n    ```bash\n     git tag v\u003cversion\u003e -m \"Release v\u003cversion\u003e\"\n    ```\n3. Push the tag to the repository using the following command:\n    ```bash\n    git push origin v\u003cversion\u003e\n    ```\n   \n4. This will automatically start the release process in the [GitHub Actions](https://github.com/Layr-Labs/eigenlayer-cli/actions/workflows/release.yml) and will create a draft release to the [GitHub Releases](https://github.com/Layr-Labs/eigenlayer-cli/releases) with all the required binaries and assets\n5. Check the release notes and add any notable changes and publish the release\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Feigenlayer-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flayr-labs%2Feigenlayer-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Feigenlayer-cli/lists"}