Integration
This guide walks through the integration flow for an SSN. The process is split into three key phases:
- Setup Phase β Deploy contracts and initialize the network.
- Implementation Phase β Add your business logic with the SDK.
- Deployment Phase β Package the implementation and hand off to operators.
1. Setup Phaseβ
This phase is focused on bootstrapping your network.
πΉ Step 1: Deploy Smart Contractsβ
Use the Lumos CLI to deploy the three core contracts for SSN:
NetworkManager
StakeManager
TaskManager
Youβll need to provide details like the Network Name, SSN Metadata, Chain ID, RPC URL, Deployer Private Key etc.
lumos network register --flags
This deploys the contracts to your specified chain (e.g., Sepolia, or Holesky) and returns a network output JSON with all deployed contract addresses.
πΉ Step 2: Share Deployment Info with Operatorsβ
Once deployed, share the contract addresses and network metadata with your operators. Theyβll need this info to register and run nodes.
πΉ Step 3: Operator Registrationβ
Operators must install the Lumos CLI and register themselves with the AVS using:
lumos network register operator --flags
Each operator provides their operator metadata
, p2p_peer_id
(used for validator identity) and any additional information needed for your network.
The command:
- Registers the operator with the NetworkManager
- Binds them to the deployed SSN contracts
- Stores their registration info on-chain
π This step is initiated by the operator, but requires contract details from the AVS developer.
πΉ Step 4: AVS Owner Adds Committees and Vaultsβ
Once operators are registered, the AVS owner configures the networkβs security structure:
- Create committees using:
lumos committee create --flags
- Add vaults (representing sources of economic security) to each committee:
lumos vault add --flags
The vaults are registered with the StakeManager
and mapped to the corresponding committees.
These vaults are later used to:
- Verify the stake backing each operator
- Resolve slashing or reward logic
π οΈ All of this is still handled using the Lumos CLI. No SDK logic is touched yet.
2. Implementation Phaseβ
This is where you define the task logic for your network β how tasks are executed and verified.
π§± Step 1: Scaffold Boilerplateβ
Run the scaffold command to generate boilerplate SSN logic:
lumos scaffold --flags
This creates a basic project structure with two key functions:
execute()
β defines how your SSN handles a taskverify()
β defines how task results are validated
π§ Step 2: Implement Business Logicβ
Implement the execute
and verify
methods with your custom task logic. This is the core of your SSNβs behavior.
βοΈ Step 3: Package the SSN Clientβ
Once the logic is implemented:
- Package the SSN code as a Docker image
- Prepare a
config.yaml
file with:- Deployed contract addresses (from Setup Phase)
- Any SSN-specific runtime parameters
π This config is currently not auto-generated. Developers must manually include the contract addresses from the Setup phase.
3. Deployment Phaseβ
With everything in place, youβre ready to launch your network & hand it over to Operators.
π Step 1: Distribute the Client to Operatorsβ
Once your AVS logic is packaged:
- Share the Docker image and the accompanying
config.yaml
file with your operators. - Operators run the SSN client using this image + config.
The config should include:
TaskManager
,StakeManager
, andNetworkManager
contract addresses- Vault and committee references (as configured in the setup phase)
- Any other network-specific runtime parameters
At this point, the SSN is live and operators are now fully capable of processing and validating tasks on-chain.
π Step 2: Monitor with Observability Toolsβ
Once deployed, itβs crucial to monitor the behavior and health of your network.
- The SSN client includes built-in observability features (metrics, logging & tracing).
- These help SSN developers monitor task processing, operator participation, error rates and latency.
- Operators can use these tools to monitor node uptime, rewards processing and slashing exposure.
Good observability makes it easier to debug issues, track liveness and understand network performance over time.