{"id":13572786,"url":"https://github.com/ssvlabs/ssv-keys","last_synced_at":"2026-01-16T19:19:16.364Z","repository":{"id":37469484,"uuid":"492427044","full_name":"ssvlabs/ssv-keys","owner":"ssvlabs","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-13T01:31:53.000Z","size":4357,"stargazers_count":8,"open_issues_count":24,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-13T05:18:17.363Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ssvlabs.io","language":"TypeScript","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/ssvlabs.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-15T08:16:49.000Z","updated_at":"2025-07-13T14:43:41.000Z","dependencies_parsed_at":"2024-04-16T20:06:39.051Z","dependency_job_id":"41990f03-8ecf-4ffa-8721-38c9f2cd2836","html_url":"https://github.com/ssvlabs/ssv-keys","commit_stats":null,"previous_names":["ssvlabs/ssv-keys","bloxapp/ssv-keys"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/ssvlabs/ssv-keys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssvlabs%2Fssv-keys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssvlabs%2Fssv-keys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssvlabs%2Fssv-keys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssvlabs%2Fssv-keys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssvlabs","download_url":"https://codeload.github.com/ssvlabs/ssv-keys/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssvlabs%2Fssv-keys/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28481670,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":[],"created_at":"2024-08-01T15:00:19.825Z","updated_at":"2026-01-16T19:19:16.352Z","avatar_url":"https://github.com/ssvlabs.png","language":"TypeScript","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# SSV Keys CLI\n\n![GitHub](https://img.shields.io/github/license/ssvlabs/ssv-keys)\n![GitHub Workflow Status](https://img.shields.io/github/workflow/status/ssvlabs/ssv-keys/Lint%20and%20test)\n![GitHub package.json version](https://img.shields.io/github/package-json/v/ssvlabs/ssv-keys)\n\n![GitHub commit activity](https://img.shields.io/github/commit-activity/y/ssvlabs/ssv-keys)\n![GitHub contributors](https://img.shields.io/github/contributors/ssvlabs/ssv-keys)\n![GitHub last commit](https://img.shields.io/github/last-commit/ssvlabs/ssv-keys)\n\n![GitHub package.json dynamic](https://img.shields.io/github/package-json/keywords/ssvlabs/ssv-keys)\n![GitHub package.json dynamic](https://img.shields.io/github/package-json/author/ssvlabs/ssv-keys)\n\n![Discord](https://img.shields.io/discord/723834989506068561?style=for-the-badge\u0026label=Ask%20for%20support\u0026logo=discord\u0026logoColor=white)\n\n---\n\nCLI to work with the ETH keystore file and extract the latest validator cluster snapshot to build the payload:\n1. Parse the private key using the keystore password\n2. Use the private key to get shares for operators\n3. Build the payload for the transaction\n\n## Option 1: Running an Executable (Recommended route)\n\nIf you want to run a compiled version (easier option than the CLI)\n\n1. Go to the releases section: https://github.com/ssvlabs/ssv-keys/releases\n2. Select the latest release for the specific version of the CLI: `vX.Y.Z-v1` - for the first version of the contract, `vX.Y.Z-v2` - for second etc.\n   Example: `v0.0.1-v1` or `v0.0.1-v2`.\n3. Download the native executable for your operating system:\n   * `ssv-keys-lin` - for Ubuntu Linux\n   * `ssv-keys-mac` - for macOS\n   * `ssv-keys.exe` - for Windows\n4. Open the terminal and change the directory to where you downloaded the executable. For instance, on macOS you can:\n   ```bash\n   cd ~/Downloads\n   ```\n5. (Mac and Linux) Make sure that the executable has permissions to run by running:\n   ```bash\n   chmod 777 ./ssv-keys-mac\n   ```\n6. Now you can run it:\n   ```bash\n   ./ssv-keys-mac\n   ```\n7. If your operating system prevents you from running the executable, you can open it from the file manager (Finder in case of macOS), right-click on it, and click the `Open` menu. Once open click the `Open` or `allow` button when you are asked to do so. After this, go back to the console and try to run it again.\n\n## Option 2: Running from the CLI\n\n### Installation\n\nThis installation requires Node.js on your machine.\nYou can download it [here](https://nodejs.org/en/download/).\n\nOnce you have installed Node.js, follow instructions:\n\n```bash\ngit clone https://github.com/ssvlabs/ssv-keys.git\ncd ssv-keys\nnpm install -g pnpm@latest-10\npnpm install\npnpm run cli --help\n```\n\n### Help\n\nHelp on available actions:\n\n```bash\npnpm run cli --help\n```\n\nHelp on a specific action:\n\n```bash\npnpm run cli \u003caction\u003e --help\n```\n\n\n### Example\n\nTo run, you will use the \"shares\" command\n\n**Input parameters:**\n- keystore (ks) = The path to either a validator keystore file or a folder that contains multiple validator keystore files. If a folder is provided, it will split in bulk all the keystore files within it according to the additional arguments provided\n- password (ps) = The keystore file encryption password, if a folder was provided the password will be used for all keystore files in the folder\n- operator-ids (oids) = Comma-separated list of operator IDs. The amount must be 3f+1 compatible\n- operator-keys (oks) = Comma-separated list of operator keys (same sequence as operator ids). The amount must be 3f+1 compatible\n- output-folder (of) = Target folder path to output the key shares file\n- owner-address (oa) = The cluster owner address (in the SSV contract)\n- owner-nonce (on) = The validator registration nonce of the account (owner address) within the SSV contract (increments after each validator registration), obtained using the ssv-scanner tool\n\n```bash\n# single file\npnpm run cli shares --keystore=keystore.json --password=test --operator-ids=1,2,3,4 --operator-keys=LS..,LS..,LS..,LS.. --output-folder=./ --owner-address=... --owner-nonce=..\n\n# folder with multiple keystore files\npnpm run cli shares --keystore=./keystore-files --password=test --operator-ids=1,2,3,4 --operator-keys=LS..,LS..,LS..,LS.. --output-folder=./ --owner-address=... --owner-nonce=..\n```\n\n**Output:** Name will start with keyshares-timestamp.json\n\n## Option 3: Integration in your projects\n\n### Node Project\n\nTo run an example of a Node.js project containing all the code snippets to build the share and transaction payload, simply follow these instructions!\n\n```bash\ncd examples/console\npnpm install\n```\n\nTo run a JavaScript example:\n\n```bash\n# example 1\npnpm run start:basic:js\n# example 2\npnpm run start:complex:js\n```\n\nTo run a TypeScript example:\n\n```bash\npnpm run start:ts\n```\n\nOpen the developer console to see how it works in a browser environment.\n\n## Development\n\n### Run the CLI as a TypeScript executable:\n\n```bash\npnpm run dev:cli ...\n```\n\n### Run the CLI as a JavaScript compiled executable:\n\n```bash\npnpm run cli ...\n```\n\n### Lint\n\n```bash\npnpm run lint\n```\n\n### Building\n\n```bash\npnpm run build\n```\n\n## License\n\nThe ssv-api is licensed under the\n[GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html),\nalso included in our repository in the `LICENSE` file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssvlabs%2Fssv-keys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssvlabs%2Fssv-keys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssvlabs%2Fssv-keys/lists"}