README.md

February 27, 2025 ยท View on GitHub

Usage

Deploy Your AVS

cargo tangle blueprint deploy eigenlayer \
    --devnet \
    --ordered-deployment

Run Your AVS

TASK_MANAGER_ADDRESS=0x07882Ae1ecB7429a84f1D53048d35c4bB2056877 cargo tangle blueprint run \
    -p eigenlayer \
    -u http://localhost:55004 \
    --keystore-path ./test-keystore

Qdrant

# to retrieve all collections
curl -X GET http://localhost:6333/collections


# to create a new collection
curl -X PUT http://localhost:6333/collections/{collection_name} \
  -H "Content-Type: application/json" \
  -d '{
        "vectors": {
          "size": 768,            # Size of the vector (required)
          "distance": "Cosine"   # Distance metric (e.g., Cosine, Euclidean, Dot)
        }
      }'

Deployment Configuration

ContractAddress
Registry Coordinator0xc3e53f4d16ae77db1c982e75a937b9f60fe63690
Pauser RegistryObtained from the beginning of the Deployment output
Initial Owner0x70997970C51812dc3A010C7d01b50e0d17dc79C8
Aggregator0xa0Ee7A142d267C1f36714E4a8F75612F20a79720
Generator0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65
AVS Directory0x0000000000000000000000000000000000000000
Rewards Coordinator0x0000000000000000000000000000000000000000
Stake Registry0x5fc8d32690cc91d4c39d9d3abcbd16989f875707
Tangle Task ManagerObtained in the Deployment output
  • Pauser Registry: The address is provided in the deployment output at the beginning of the logs.
  • Tangle Task Manager: The address is generated during the deployment process and can be found in the deployment output.
  • Initial Owner: This address has ownership privileges over the deployed contracts.
  • Aggregator: Responsible for aggregating task responses.
  • Generator: Used to create new tasks.
  • Registry Cooridnator: a smart contract responsible for managing the registration of operators in the EigenLayer ecosystem.
  • Stake Registry: manages the staking mechanism for operators.
  • Rewards Coordinator: manages rewarding mechanism for operators.

An EigenLayer AVS ๐ŸŒ

A simple Hello World AVS for EigenLayer with the BLS-based Contract Configuration

๐Ÿ“š Overview

This project is about creating a simple Hello World AVS for EigenLayer. An AVS (Actively Validated Service) is an off-chain service that runs arbitrary computations for a user-specified period of time.

๐Ÿ“š Prerequisites

Before you can run this project, you will need to have the following software installed on your machine:

You will also need to install cargo-tangle, our CLI tool for creating and deploying Blueprints:

To install the Tangle CLI, run the following command:

Supported on Linux, MacOS, and Windows (WSL2)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tangle-network/gadget/releases/download/cargo-tangle-v0.1.2/cargo-tangle-installer.sh | sh

Or, if you prefer to install the CLI from crates.io:

cargo install cargo-tangle --force # to get the latest version.

๐Ÿš€ Getting Started

Once cargo-tangle is installed, you can create a new project with the following command:

cargo tangle blueprint create --name <project-name> --eigenlayer <type>

where <project-name> is the name of the project that will be generated, and <type> is BLS or ECDSA. If you aren't sure which type to use, you likely want the default: BLS. After all, this is the template for BLS. If you don't specify a type, it will default to BLS.

Upon running the above command, you will be prompted with questions regarding the setup for your generated project. If you aren't sure for any of them, you can just hit enter to select the default for that questions.

Note

If Soldeer fails to update/install the necessary dependencies, you may need to run it manually with the following command:

forge soldeer update -d

๐Ÿ“œ License

Licensed under either of

at your option.

๐Ÿ“ฌ Feedback and Contributions

We welcome feedback and contributions to improve this blueprint. Please open an issue or submit a pull request on our GitHub repository.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.