{"id":17478284,"url":"https://github.com/layr-labs/eigensdk-rs","last_synced_at":"2025-05-16T02:02:24.720Z","repository":{"id":227023845,"uuid":"770187441","full_name":"Layr-Labs/eigensdk-rs","owner":"Layr-Labs","description":"EigenLayer Rust Developer Tooling","archived":false,"fork":false,"pushed_at":"2025-04-12T00:25:28.000Z","size":36367,"stargazers_count":84,"open_issues_count":30,"forks_count":28,"subscribers_count":4,"default_branch":"dev","last_synced_at":"2025-04-12T01:06:04.996Z","etag":null,"topics":["avs","eigenlayer","ethereum","restaking","rust","sdk","verifiable-computing"],"latest_commit_sha":null,"homepage":"","language":"Rust","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":"CHANGELOG.md","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":"2024-03-11T05:11:13.000Z","updated_at":"2025-04-12T00:25:27.000Z","dependencies_parsed_at":"2024-03-22T16:49:28.616Z","dependency_job_id":"cb9ba827-17d3-4bdf-ab65-a85acfe1b9f8","html_url":"https://github.com/Layr-Labs/eigensdk-rs","commit_stats":{"total_commits":365,"total_committers":13,"mean_commits":"28.076923076923077","dds":"0.29315068493150687","last_synced_commit":"f3a9f3299a26366931c6b25761abdb1c8cfc72cd"},"previous_names":["anjaneyalabs/eigensdk-rs","supernovahs/eigensdk-rs","supernovahs/eigen-rs"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigensdk-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigensdk-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigensdk-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layr-Labs%2Feigensdk-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Layr-Labs","download_url":"https://codeload.github.com/Layr-Labs/eigensdk-rs/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248501861,"owners_count":21114683,"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":["avs","eigenlayer","ethereum","restaking","rust","sdk","verifiable-computing"],"created_at":"2024-10-18T20:18:24.893Z","updated_at":"2025-05-16T02:02:24.712Z","avatar_url":"https://github.com/Layr-Labs.png","language":"Rust","funding_links":[],"categories":["AVS"],"sub_categories":["AVS development"],"readme":"# EigenSDK-rs\n\nEigenSDK-rs is an initiative for rust developers to build AVSs on eigenlayer.\n\n## Installation\n\n ```bash\ncargo add eigensdk --features full\n```\n\n## Overview\n\n List of crates in the repository :-\n\n- [eigen-client-avsregistry](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/chainio/clients/avsregistry) - Read, Write and subscribe methods for AvsRegistry\n- [eigen-client-elcontracts](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/chainio/clients/elcontracts) - Convenience methods to call Eigenlayer contracts\n- [eigen-crypto-bls](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/crypto/bls) - New bls key pair, sign message, conversion utilites between alloy and arkworks bn254.\n- [eigen-crypto-bn254](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/crypto/bn254) - verify message on G2, map to curve.\n- [eigen-metrics](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/metrics) - performance, rpc and economic metrics\n- [eigen-services](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/services) - Spawn tokio services for operators info, bls aggregation\n- [eigen-types](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/types) - Common types\n- [eigen-utils](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/utils) \n    - `rewardsv2` - Publicly exportable `mainnet rewards-v2 v0.5.4` compatible alloy bindings.\n    - `slashing` - Publicly exportable alloy bindings compatible with [v1.1.1-testnet-slashing](https://github.com/Layr-Labs/eigenlayer-middleware/releases/tag/v1.1.1-testnet-slashing).\n- [eigen-testing-utils](https://github.com/Layr-Labs/eigensdk-rs/tree/main/testing/testing-utils) - Contains publicly exportable anvil, holesky, mainnet addresses for eigen contracts.\n- [eigen-cli](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/eigen-cli) - ECDSA, BLS keystore cli\n- [eigen-nodeapi](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/nodeapi) - NodeApi implementation for EigenLayer.\n- [eigen-logging](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/logging) - Logging utilities\n- [eigen-common](https://github.com/Layr-Labs/eigensdk-rs/tree/main/crates/common) - Common utilities like provider and signer getters.\n\n## Examples\n\nYou can run any [example](https://github.com/Layr-Labs/eigensdk-rs/tree/main/examples) using the command `cargo run --example \u003cexample-name\u003e`\n\nExample :\n  \n```bash\ncargo run --example get_quorum_count\n```\n\n## Generating and saving anvil state\n\n- Copy env\n```bash\ncp ./crates/m2_contracts/.env.example ./crates/m2_contracts/.env \ncp ./crates/operator_sets_contracts/.env.example ./crates/operator_sets_contracts/.env\n```\n\n- Run the command\n```bash\nmake dump-state\n``` \n\n## Contract Bindings\n\nThe main branch of this repo is intended to be syncronized with mainnet version of core contracts.\n\nTo update the bindings of this repo, run:\n\n```bash\nmake bindings\n```\n\nThis command will generate the bindings files in the folder: `crates/utils`.\n\n**Important:** this command requires Docker installed and running since it uses a container to generate the bindings.\n\n## Contributor Guidelines\n\nWe are actively looking for contributors. Thank you for your interest. We have strict ci checks in place. In case of any questions and support, feel free to raise an issue.\n\n## Branches\n\n- `main` - Points to the  latest **mainnet** release of contracts.\n- `testnet` - Points to the latest **testnet** release of contracts.\n- `dev` - Points to the latest **dev** branch of the contracts.\n\n### PR\n\nTo test locally :-\n\nYou need `foundry` to successfully run it.\n\n```bash\ncargo test --workspace\n```\n\nAt least 1 `approving` review is required to merge the PR.\n  \n### lint\n\n```bash\nmake lint\n```\n\n### To run fireblocks tests\n\nAdd the following variables to your env\n\n- FIREBLOCKS_API_KEY\n- FIREBLOCKS_PRIVATE_KEY_PATH\n- FIREBLOCKS_API_URL\n\n and then run the following command\n\n```bash\nmake fireblocks-tests\n\n```\n\n### Test Coverage\n\nTest coverage should aim to be around 80%.\n\nHere's how to generate test coverage reports:\n\nInstall llvm tools:\n\n```bash\nmake deps\n```\n\nRun the tests with coverage instrumentations:\n\n```bash\nmake coverage\n```\n\nOpen the coverage html report in a web browser:\n\n```sh\nopen target/llvm-cov/html/index.html\n```\n\n## Supported Rust Version\n\nRolling `MSRV` policy of 6 months. The current `MSRV` is 1.79\n\n## Release process\n\nThe step-by-step process to make a release is documented in [`RELEASE.md`](./RELEASE.md).\n\n## Disclaimer\n\n🚧 EigenSDK-rs is under active development and has not been audited. EigenSDK-rs is rapidly being upgraded, features may be added, removed or otherwise improved or modified and interfaces will have breaking changes. EigenSDK-rs should be used only for testing purposes and not in production. EigenSDK-rs is provided \"as is\" and Eigen Labs, Inc. does not guarantee its functionality or provide support for its use in production. 🚧\n\n## Credits\n\n- [eigensdk-go](https://github.com/Layr-Labs/eigensdk-go/tree/master)\n\n## Security Bugs\n\nPlease report security vulnerabilities to \u003csecurity@eigenlabs.org\u003e. Do NOT report security bugs via Github Issues.\n\n## Support\n\nJoin our [telegram](https://t.me/+0_kYjD7TTCRjMjZh) channel .\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Feigensdk-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flayr-labs%2Feigensdk-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayr-labs%2Feigensdk-rs/lists"}