The RPC Server is a core component of the EigenLayer-AVS Aggregator service that provides remote procedure call (RPC) interfaces for client applications and operators.
The RPC Server is a core component of the EigenLayer-AVS Aggregator service that provides remote procedure call (RPC) interfaces for client applications and operators. It serves as the primary communication gateway for the system, exposing gRPC endpoints that enable task management, smart wallet operations, operator coordination, and secret management.
The RPC Server is implemented as a gRPC server that handles requests from external clients and operators. It authenticates incoming requests, routes them to the appropriate internal components (primarily the Task Engine), and returns the results.
Sources:
The RPC Server comprises several key components that work together to handle client requests:
Sources:
The RPC Server is initialized and started by the Aggregator service. It sets up the gRPC server, registers the service implementations, and starts listening for requests.
Sources:
The RPC Server exposes two main service interfaces:
The Aggregator Service provides several groups of APIs for different functionalities:
| API Group | Description | Key Methods |
|---|---|---|
| Authentication | Handles user authentication | GetKey |
| Smart Wallet | Manages smart account operations | GetNonce, GetWallet, ListWallets |
| Task Management | Manages task lifecycle | CreateTask, GetTask, ListTasks, CancelTask, DeleteTask, TriggerTask |
| Execution | Manages task executions | ListExecutions, GetExecution, GetExecutionStatus |
| Secret Management | Manages user secrets | CreateSecret, UpdateSecret, DeleteSecret, ListSecrets |
| Analytics | Provides system metrics | GetWorkflowCount, GetExecutionCount |
Sources:
The Node Service provides APIs for operator interactions:
| Method | Description |
|---|---|
SyncMessages | Streams task check messages to operators |
NotifyTriggers | Receives trigger notifications from operators |
Ack | Acknowledges messages from operators |
Sources:
The RPC Server uses an authentication mechanism based on Ethereum addresses. Most API methods require authentication:
Almost all RPC methods in the server begin with authentication verification, as can be seen in methods like GetWallet, CreateTask, etc.
Sources:
The RPC Server provides comprehensive APIs for managing tasks throughout their lifecycle:
The Task Management APIs allow clients to:
Sources:
The RPC Server provides APIs for managing smart wallets (account abstraction):
Sources:
The RPC Server provides special APIs for interacting with operators in the network:
This bidirectional communication enables:
Sources:
The RPC Server provides APIs for managing secrets that can be used in tasks:
These APIs allow for:
Sources:
The RPC Server uses BadgerDB as its storage backend, with a well-defined key schema for different entities:
| Entity Type | Key Format | Description |
|---|---|---|
| User Tasks | u:<eoa>:<smart-wallet>:<task-id> | Maps user to task status |
| Task Data | t:<task-status>:<task-id> | Stores actual task data |
| Wallet Info | w:<eoa>:<smart-wallet-address> | Stores wallet information |
| Execution History | history:<task-id>:<execution-id> | Stores execution history |
| Trigger Status | trigger:<task-id>:<execution-id> | Stores execution status |
| Secrets | secret:<org_id>:<eoa>:<workflow_id>:<name> | Stores secret values |
Sources:
The RPC Server uses standard gRPC error codes along with custom error codes defined in the protocol:
| Error Code | Description |
|---|---|
UnknowError | Generic unspecified error |
RpcNodeError | Error with the RPC node |
StorageUnavailable | Storage system unavailable |
StorageWriteError | Error writing to storage |
SmartWalletRpcError | Error with smart wallet RPC |
SmartWalletNotFoundError | Smart wallet not found |
TaskDataCorrupted | Task data corrupted |
TaskDataMissingError | Task data missing |
TaskTriggerError | Error triggering task |
Errors are returned to clients as gRPC status errors with appropriate codes and messages.
Sources:
The RPC Server is a critical component of the EigenLayer-AVS system that:
It serves as the primary entry point for all external interactions with the system, providing a comprehensive API for task automation, smart wallet management, and operator coordination.
Feature this wiki to auto refresh weekly