Hello World AVS
MIT License
Welcome to the Hello World AVS. This project shows you the simplest functionality you can expect from an AVS. It will give you a concrete understanding of the basic components. For new users, please find this video walkthrough of the hello world AVS repository.
That's it. This simple flow highlights some of the core mechanics of how AVSs work.
The following instructions explain how to manually deploy the AVS from scratch including EigenLayer and AVS specific contracts using Foundry (forge) to a local anvil chain, and start Typescript Operator application and tasks.
Install dependencies:
In terminal window #1, execute the following commands:
# Install npm packages
npm install
# Start local anvil chain
npm run start:anvil
Open a separate terminal window #2, execute the following commands
# Setup .env file
cp .env.example .env
cp contracts/.env.example contracts/.env
# Updates dependencies if necessary and builds the contracts
npm run build
# Deploy the EigenLayer contracts
npm run deploy:core
# Deploy the Hello World AVS contracts
npm run deploy:hello-world
# (Optional) Update ABIs
npm run extract:abis
# Start the Operator application
npm run start:operator
Open a separate terminal window #3, execute the following commands
# Start the createNewTasks application
npm run start:traffic
For help and support deploying and modifying this repo for your AVS, please:
--revert-strings debug
flag via the following commands and retest: npm run deploy:core-debug && npm run deploy:hello-world-debug
forge verify-contract --chain-id 17000 --num-of-optimizations 200 src/YourContract.sol:YourContract YOUR_CONTRACT_ADDRESS
cast call --trace "trace_replayTransaction(0xTransactionHash)"
).--revert-strings debug
flag. Deploy the contracts again and retest.forge verify-contract --chain-id 17000 --num-of-optimizations 200 src/YourContract.sol:YourContract YOUR_CONTRACT_ADDRESS
cast call --trace "trace_replayTransaction(0xTransactionHash)"
).If you're planning to build an AVS and would like to speak with a member of the EigenLayer DevRel team to discuss your ideas or architecture, please fill out this form and we'll be in touch shortly: EigenLayer AVS Intro Call
ECDSAServiceManagerBase
implementation in HelloWorldServiceManager.sol
to a BLS style architecture using RegistryCoordinator.The architecture can be further enhanced via:
Run make start-chain-with-contracts-deployed
Run make start-rust-operator
Run make spam-rust-tasks
Tests are supported in anvil only . Make sure to run the 1st command before running the tests:
cargo test --workspace
Contract Name | Holesky Address |
---|---|
Hello World Service Manager | 0x3361953F4a9628672dCBcDb29e91735fb1985390 |
Please see Current Testnet Deployment for additional deployed addresses.
You don't need to run a deployment script for holesky testnet, the contracts are already deployed.
Use the HOLESKY_ namespace env parameters in the code , instead of normal parameters.
Run make start-rust-operator
Run make spam-rust-tasks