Services Architecture
TL;DR
The Vultisig app ecosystem uses a distributed architecture with four core services: HTTP Server (API interface and app management), Worker Service (asynchronous transaction processing), Scheduler Service (time-based triggers and recurring operations), and Transaction Indexer (blockchain monitoring and event processing). These services communicate through Redis queues and interact with Vultisig's managed Verifier infrastructure for TSS-based transaction signing. To build your own app, implement the HTTP Server and transaction logic locally, import the Scheduler and TX Indexer from the verifier package, test against local Vultisig infrastructure, then submit an app configuration YAML for production deployment where only your custom services run while the Verifier and Fee App remain Vultisig-managed. Key packages include github.com/vultisig/verifier/plugin, github.com/vultisig/recipes/engine, github.com/hibiken/asynq for queuing, and blockchain-specific clients for EVM, Solana, and Bitcoin networks.
Overview
The Vultisig app ecosystem is built on a distributed architecture with specialized services that handle different aspects of automated transaction processing. Each service has distinct responsibilities and communicates through well-defined interfaces to ensure security, scalability, and maintainability.
Core Services Architecture

This is a diagram of the verifier's components, but in general all apps have the same structure
Service Components
1. HTTP Server
The HTTP Server is the primary interface for external interactions and app management.
Responsibilities:
Handle API requests from users and external systems
Manage app installation and configuration
Serve automation creation and management endpoints
Provide real-time status and monitoring information
Handle authentication and authorization
Key API Endpoints:
Technology Stack:
Framework: Echo (Go HTTP framework)
Authentication: JWT tokens
Validation: Custom middleware for request validation
Monitoring: Built-in health check endpoints
Configuration Example:
2. Worker Service
The Worker Service handles asynchronous job processing and transaction execution.
Responsibilities:
Process transaction signing requests
Execute scheduled tasks and recurring operations
Handle retry logic for failed operations
Manage resource-intensive computations
Coordinate with the Verifier for TSS operations
Job Processing Pipeline:
Job Reception: Receive jobs from Redis queue
Validation: Validate job parameters and automation compliance
Transaction Construction: Build blockchain transactions using Recipes
Signing Request: Request signature from Verifier
Broadcasting: Submit signed transactions to blockchain networks
Result Handling: Process results and update job status
Key Features:
Concurrency Control: Configurable worker pools
Error Handling: Automatic retry with exponential backoff
Resource Management: Memory and CPU usage monitoring
Monitoring: Job processing metrics and logging
3. Scheduler Service
The Scheduler Service manages time-based triggers and recurring operations.
Responsibilities:
Queue periodic tasks (subscriptions, recurring payments)
Manage execution timing and frequency
Handle rate limiting and throttling
Coordinate with business logic for trigger conditions
Maintain scheduling state and persistence
Scheduling Patterns:
Fixed Intervals: Execute every N seconds/minutes/hours
Cron-like Scheduling: Complex time-based triggers
Event-driven: Triggered by blockchain events or external conditions
Rate Limited: Ensure compliance with automation rate limits
Implementation:
Example Usage:
4. Transaction Indexer
The Transaction Indexer monitors blockchain networks and processes relevant events.
Responsibilities:
Monitor blockchain networks for transaction confirmations
Index app-related transactions and events
Trigger post-transaction processing
Maintain transaction history and state
Provide blockchain data for business logic
Supported Networks:
EVM Chains: Ethereum, Polygon, Arbitrum, Base, Optimism, Avalanche, BSC
Solana: Program logs and account changes
Bitcoin: UTXO tracking and confirmation monitoring
THORChain: Cross-chain transaction tracking
Event Processing:
Key Features:
Real-time Monitoring: WebSocket connections for live updates
Historical Indexing: Backfill missed blocks during downtime
Multi-chain Support: Unified interface across different blockchains
Reliable Processing: Checkpoint-based progress tracking
Service Interaction Patterns
Building Your Own App Services
Service Deployment Model
For Development and Testing:
Developers can run local instances of all services including Verifier and Fee App
Use provided Docker configurations for local development
Test your app against local Vultisig infrastructure
For Production Deployment:
Only your custom app services (HTTP Server, Worker, Scheduler, TX Indexer) are deployed
Verifier and Fee App remain Vultisig-managed infrastructure
Submit app configuration YAML for review and approval
App Proposal Process
To deploy your app to production:
Develop and Test Locally using the full Vultisig stack
Prepare App Configuration YAML (see App Configuration section below)
Submit App Proposal to Vultisig for review
Security Review by Vultisig team
Production Deployment on approved infrastructure
Required Components
To build a complete app, you need to implement these core components:
1. HTTP Server for core functionality (reshare, automations, etc.)
For reference, you may use vultisig/dca app
2. TX preparation and proposing logic
Do it in accordance with user's signed automations
3. Scheduler and Tx indexer
You can import it from verifier package
Essential Packages
Core Packages
Blockchain Clients
Last updated
Was this helpful?
