AltLayer Documentation
  • 👋Welcome
    • Overview
  • Restaked Rollups
    • VITAL for Decentralised Verification
      • Tier-1 Finality
      • Tier-2 Finality
      • Tier-3 Finality
    • MACH for Faster Finality
      • Interoperability via MACH
    • SQUAD for Decentralised Sequencing
    • Staking of dApp Token
  • Wizard
    • Introduction
    • Technical overview
    • Create AVS
    • Manage AVS
    • Operator management
    • Hosted operator API (BLS based)
    • Custom AVS specification
      • Constructor specification requirements
      • Import Externally-Deployed AVS
    • Report bug or submit a feature request
  • Autonome
    • Deploy AI Agent
    • Autonome API guide
    • Uploading your own agent framework
    • Twitter/X login troubleshooting guide
  • ♾️AltLayer-Facilitated Actively Validated Services
    • Overview
    • AltLayer MACH AVS
      • Operator Guide
      • User Delegation Guide
    • Cyber MACH AVS for Cyber L2
      • Operator Guide
      • User Delegation Guide
    • DODOchain MACH AVS for DODO Chain
      • Operator Guide
      • User Delegation Guide
    • Fast Finality Layer for Soneium
      • Operator Guide
      • User Delegation Guide
    • Xterio MACH AVS for Xterio Chain
      • Operator Guide
      • User Delegation Guide
  • Upgrade Guide
  • 🥩ALT Restaking
    • Staking Info & Parameters
    • Restake ALT
    • Delegating reALT
    • Check and Claim Staking Rewards
    • Unstake ALT
    • Migration from Xterio (Legacy) ALT Pool to Xterio Restaked ALT Pool
    • Testnet reALT faucet
  • Rollup-as-a-Service
    • What is Rollup-as-a-Service (RaaS)?
    • AltLayer's RaaS Offering
    • RaaS Onboarding Guide
      • Optimism Rollup FAQ
      • Arbitrum Rollup FAQ
    • AltLayer Ecosystem
    • Clients in the Spotlight
    • Pricing Model
  • External Integrations
    • Account Abstraction using Biconomy
    • Enabling permissionless interoperability on AltLayer Rollup with Hyperlane
      • Deplying Hyperlane Warp Routes for ERC20 Token Bridging
      • Running Off-chain Agents
      • Setting up the bridging UI
    • Cross-chain Interoperability using Celer
      • Fungible Token Bridging
      • Non-fungible Token Bridging
      • Generic Message Passing
      • cBridge SDK
  • AltLayer's In-House Rollup Stack in Depth
    • How does AltLayer's in-house rollup stack work?
    • Decentralized Sequencer Set
    • Security via Fraud Proof
  • Rollup Types
    • Flash Layer Rollups
      • Example Use cases
        • NFT Mint Events
        • Games
        • Event Ticketing
    • Persistent Rollups
  • Core Features of AltLayer's In-House Rollup Stack
    • Modular
    • Elastic
    • Multi-VM Support
    • Fraud Proofs
    • Decentralized Sequencers
    • Tiered-Finality
  • FlashLayer Showcase
    • AltLayer's POAP NFTs Collection Mint
      • Performance Test in the Wild
    • Dark Forest Community Round
    • Oh Ottie! NFT Collection Mint
    • Dark Forest Community Round for Jump Crypto's Pit Event
    • Ottie 2048
    • Other demos
      • Fraud Proof Demo
      • Flash Layer Demo
      • Rollup Launchpad Demo
      • FlashGPT Demo
  • Implementation Status
    • Roadmap
    • Development Status
  • Community & Support
    • Community
    • Support
Powered by GitBook
On this page
  • Overview
  • Version Requirement
  • 1. Interface Compliance
  • 2. Metadata Requirements
  • 3. Signature Validation
  • 4. Compatibility with AVS Directory
  • 5. Examples
  1. Wizard
  2. Custom AVS specification

Import Externally-Deployed AVS

PreviousConstructor specification requirementsNextReport bug or submit a feature request

Last updated 7 months ago

Importing Externally-Deployed AVS into WIZARD is currently still work in progress

Overview

An externally-deployed AVS (Active Validator Set) must adhere to a set of standardized interfaces and practices to ensure compatibility within the EigenLayer ecosystem and AltLayer. This document outlines the requirements for these AVS contracts, guaranteeing that they work seamlessly with other components expecting AVS conformity. Additionally, an optional allowlist feature using IOperatorAllowlist can be implemented to further restrict which operators can register.

Version Requirement

At the moment, developers are required to use version v0.2.1-mainnet-rewards of the . Ensure that your AVS contract adheres to this version for proper functionality and compatibility.

1. Interface Compliance

Every AVS must implement the IServiceManager interface. This ensures that the AVS can be indexed, managed, and interacts properly with both EigenLayer and AltLayer services. Below are the details for the primary interfaces:

IServiceManager

The IServiceManager interface forms the main point of interaction for an AVS to push updates to the EigenLayer rewards system. It is an extension of IServiceManagerUI and includes functionalities to create reward submissions and manage operator interactions.

  • Source File:

IServiceManagerUI

This interface outlines the required user interface functionalities that every AVS should provide. It includes the following functionalities:

  • Updating the metadata URI

  • Registering and deregistering operators with the AVS

  • Fetching restaked strategies for operators

  • Providing the list of restakable strategies

  • Source File:

Optional: IOperatorAllowlist

To further enhance security and control over which operators can interact with the AVS, the IOperatorAllowlist interface can be optionally implemented. This allows the AVS to manage a list of approved operators who can register and participate. AVS that do not wish to impose restrictions on operators can ignore this feature.

Benefits of IOperatorAllowlist

  • Restricts which operators can register, providing better security and control over participation.

  • Operators can be added or removed from the allowlist dynamically through the AVS interface.

2. Metadata Requirements

The AVS metadata must be stored at a URI accessible through updateAVSMetadataURI. The JSON file at this URI should follow the example structure below:

{
  "name": "Example AVS",
  "website": "https://example-website.xyz/",
  "description": "This is an example of an AVS",
  "logo": "https://example-bucket.s3.amazonaws.com/logo.png",
  "twitter": "https://twitter.com/examplehandle"
}

Each field is required and should accurately reflect the AVS service.

3. Signature Validation

The contract must handle operator registration and deregistration securely by validating the signatures properly using the ISignatureUtils interface. Ensure:

  • Signatures include a salt and expiry to avoid replay attacks.

  • Signature validation logic complies with the ISignatureUtils.SignatureWithSaltAndExpiry structure.

4. Compatibility with AVS Directory

Your AVS contract must be able to communicate with the AVSDirectory contract. This involves:

  • Correctly forwarding operator registration and deregistration calls to the AVSDirectory.

  • Ensuring your contract’s structure and state are compatible with AVSDirectory expectations.

5. Examples

By adhering to these standards, externally-deployed AVS contracts will be able to maintain full compatibility with both the EigenLayer and AltLayer ecosystems, ensuring smooth operations across all services and interfaces.

Source File:

You can easily inherit and use the OperatorAllowlist implementation from the template provided in .

You can find examples in .

EigenLayer Middleware
IServiceManager
IServiceManagerUI
IOperatorAllowlist
this repository
here