Common Taskfile tasks for WAVS (WASI AVS) projects. These taskfiles provide reusable automation for building, testing, deploying, and managing WAVS infrastructure.
This repository contains shared Taskfile configurations that can be used across multiple WAVS projects to standardize development workflows.
Build tasks for Solidity contracts and WASI components.
Tasks:
build:all- Build everything (Solidity + WASI)build:forge- Build Solidity contracts onlybuild:wasi- Build WASI components (all or specific)
Docker-related automation tasks.
Foundry/Forge testing and deployment tasks.
Tasks:
- Testing tasks with various verbosity levels
- Coverage reporting
- Contract deployment and verification
Operator registration and management tasks.
Tasks:
operator:register- Register operator with WAVS Service Manageroperator:update-signing-key- Update operator signing keyoperator:verify- Verify operator registration status
Rewards distribution and claiming tasks.
Local development service management.
Tasks:
services:start-all- Start all local services (anvil, IPFS, WARG, Jaeger, prometheus)services:stop-all- Stop all local services
WASI component execution, validation, and registry management.
Tasks:
wasi:exec- Execute WASI component locallywasi:exec-fixed- Execute with fixed input (for Go/TS components)wasi:validate- Validate component against best practiceswasi:upload-to-registry- Upload component to WASI registry
Once this repo is pushed to GitHub, you can reference these taskfiles remotely:
# Taskfile.yml
version: "3"
experiments:
- remote-taskfiles
includes:
build:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/build.yml
docker:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/docker.yml
eas:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/eas.yml
forge:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/forge.yml
operator:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/operator.yml
rewards:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/rewards.yml
services:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/services.yml
wasi:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/main/wasi.ymlFor local testing before pushing to GitHub:
# Taskfile.yml
version: "3"
includes:
build:
taskfile: ../wavs-taskfiles/build.yml
docker:
taskfile: ../wavs-taskfiles/docker.yml
eas:
taskfile: ../wavs-taskfiles/eas.yml
forge:
taskfile: ../wavs-taskfiles/forge.yml
operator:
taskfile: ../wavs-taskfiles/operator.yml
rewards:
taskfile: ../wavs-taskfiles/rewards.yml
services:
taskfile: ../wavs-taskfiles/services.yml
wasi:
taskfile: ../wavs-taskfiles/wasi.ymlWhen using remote taskfiles, you can pin to specific versions for stability:
build:
taskfile: https://raw.githubusercontent.com/Lay3rLabs/wavs-taskfiles/v1.0.0/build.yml- TrustGraph
- EN0VA
When adding or modifying taskfiles:
- Ensure changes are backwards compatible
- Test with all dependent projects
- Update this README with any new tasks
- Consider versioning for breaking changes
MIT