Skip to content

wesfloyd/hello-world-avs-vibe-front-end

Repository files navigation

Hello World AVS ~ Vibe Coded AVS Frontend ~

Welcome to the Hello World AVS fork with a vibe coded front end. Please see the video recording of this project here and the parent project here for more background.

Hello World Frontend Screenshot

Architecture

Hello World Architecture Diagram

AVS User Flow

  1. AVS consumer requests a "Hello World" message to be generated and signed.
  2. HelloWorld contract receives the request and emits a NewTaskCreated event for the request.
  3. All Operators who are registered to the AVS and has staked, delegated assets takes this request. Operator generates the requested message, hashes it, and signs the hash with their private key.
  4. Each Operator submits their signed hash back to the HelloWorld AVS contract.
  5. If the Operator is registered to the AVS and has the minimum needed stake, the submission is accepted.

That's it. This simple flow highlights some of the core mechanics of how AVSs work.

Development Environment

This section describes the tooling required for local development.

Install dependencies:

Quick start (TypeScript)

Start Anvil Chain

In terminal window #1, execute the following commands:

# Install npm packages
npm install

# Start local anvil chain
npm run start:anvil

Deploy Contracts and Start Operator

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:forge

# 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

Create Hello-World-AVS Tasks

Open a separate terminal window #3, execute the following commands

# Start the frontend
cd avs-frontend
npm install
npm start

Help and Support

For help and support deploying and modifying this repo for your AVS, please:

  1. Open a ticket via the intercom link at support.eigenlayer.xyz.
  2. Include the necessary troubleshooting information for your environment:
  • Local anvil testing:
    • Redeploy your local test using --revert-strings debug flag via the following commands and retest: npm run deploy:core-debug && npm run deploy:hello-world-debug
    • Include the full stacktrace from your error as a .txt file attachment.
    • Create a minimal repo that demonstrates the behavior (fork or otherwise)
    • Steps require to reproduce issue (compile and cause the error)
  • Holesky testing:
    • Ensure contracts are verified on Holesky. Eg forge verify-contract --chain-id 17000 --num-of-optimizations 200 src/YourContract.sol:YourContract YOUR_CONTRACT_ADDRESS
    • Send us your transaction hash where your contract is failing. We will use Tenderly to debug (adjust gas limit) and/or cast to re-run the transaction (eg cast call --trace "trace_replayTransaction(0xTransactionHash)").

Contact Us

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

Disclaimers

  • This repo is meant currently intended for local anvil development testing. Holesky deployment support will be added shortly.
  • Users who wish to build an AVS for Production purposes will want to migrate from the ECDSAServiceManagerBase implementation in HelloWorldServiceManager.sol to a BLS style architecture using RegistryCoordinator.

About

Vibe Coded Front End for Hello WOrld

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published