| Crates.io | eigensdk |
| lib.rs | eigensdk |
| version | 2.0.0 |
| created_at | 2024-09-30 13:48:28.96367+00 |
| updated_at | 2025-06-20 09:48:59.091855+00 |
| description | SDK for eigenlayer |
| homepage | |
| repository | https://github.com/Layr-Labs/eigensdk-rs |
| max_upload_size | |
| id | 1391746 |
| size | 188,375 |
EigenSDK-rs is an initiative for rust developers to build AVSs on eigenlayer.
cargo add eigensdk --features full
List of crates in the repository :-
rewardsv2 - Publicly exportable mainnet rewards-v2 v0.5.4 compatible alloy bindings.slashing - Publicly exportable alloy bindings compatible with v1.1.1-testnet-slashing.eigen-logging crateThe internal eigen-logging crate has been removed in favor of the community-standard tracing crate.
eigen_logging::info(), eigen_logging::warn(), eigen_logging::error(), eigen_logging::debug() have been replaced by tracing::{info!, warn!, error!, debug!} macros.#[instrument] to automatically capture metadata information in the logs.To configure the logging, you can use the tracing-subscriber crate.
// Example of how to configure the logging
tracing::subscriber::set_global_default(
tracing_subscriber::fmt::Subscriber::builder()
.with_max_level(Level::INFO)
.with_ansi(false)
.finish(),
)
.unwrap();
For more details, see:
You can run any example using the command cargo run --example <example-name>
Example :
cargo run --example get_quorum_count
cp ./crates/m2_contracts/.env.example ./crates/m2_contracts/.env
cp ./crates/operator_sets_contracts/.env.example ./crates/operator_sets_contracts/.env
make dump-state
The main branch of this repo is intended to be syncronized with mainnet version of core contracts.
To update the bindings of this repo, run:
make bindings
This command will generate the bindings files in the folder: crates/utils.
Important: this command requires Docker installed and running since it uses a container to generate the bindings.
We 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.
main - Points to the latest mainnet release of contracts.testnet - Points to the latest testnet release of contracts.dev - Points to the latest dev branch of the contracts.To test locally :-
You need foundry to successfully run it.
cargo test --workspace
At least 1 approving review is required to merge the PR.
make lint
Add the following variables to your env
and then run the following command
make fireblocks-tests
Test coverage should aim to be around 80%.
Here's how to generate test coverage reports:
Install llvm tools:
make deps
Run the tests with coverage instrumentations:
make coverage
Open the coverage html report in a web browser:
open target/llvm-cov/html/index.html
Rolling MSRV policy of 6 months. The current MSRV is 1.82
The step-by-step process to make a release is documented in RELEASE.md.
🚧 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. 🚧
Please report security vulnerabilities to security@eigenlabs.org. Do NOT report security bugs via Github Issues.
Join our telegram channel .