This guide provides the required steps to install and migrate from an existing local indexer deployment to the on-premises version of the Unified Indexer Service (UIS).
The UIS is available from v1.26 LTS and uses a decomposed, component-based architecture. For on-premises deployments, the migration process is fully automated by the Ledger Accounting (LA) component, which orchestrates the transition in the background.
Before you begin: Familiarize yourself with the UIS architecture, components, and data flow by reading the Unified Indexer Service architecture documentation.
Before starting the migration, ensure you understand the following:
The UIS uses a modern, component-based architecture with several key components:
- Generic Indexer - Orchestrates data fetching for each ledger/network
- Processor - Generates standardized events from indexed data
- Ledger Adapters - Chain-specific translation layers
- Ledger APIs - Provide access to live blockchain data
- Events API - Primary interface for consuming indexed data
For detailed information about data flow and each component, see the UIS architecture and Components sections.
Ensure your blockchain nodes meet the required specifications before migration. See the On-premises node requirements section for detailed node version and configuration requirements for each supported blockchain.
The UIS architecture requires more database connections than the legacy monolithic indexer due to its component-based design.
Actions:
- Increase connection limit: Increase
max_connectionsin PostgreSQL to accommodate UIS components. Monitor your actual connection usage during deployment to determine the appropriate limit for your environment. - Monitor connection pool: Watch connection pool usage during migration
- Verify resources: Ensure database has sufficient CPU, memory, and IOPS
This guide assumes the use of helm-next for deployment to your Kubernetes cluster.
The new UIS architecture introduces several components (Generic Indexer, Processor, Ledger Adapters) that run as isolated containers.
Actions:
- Download new charts: Download the latest helm-next charts for v1.26.3 or later.
- Update configuration: Modify your
values.yamlfile to enable UIS for the desired chains (see Step 2 below for details and examples).
This section explains what needs to be changed in your helm-next configuration to migrate from local indexers to UIS.
When migrating to UIS, you do NOT need to manually disable the old local indexers. The migration process handles this automatically:
The Ledger Accounting component will automatically stop using the old indexer once UIS is available
The old indexer pods will continue running but will not be actively used
You can manually remove the old indexer configuration after confirming successful migration
Do not remove old indexer configuration before migration is complete. The system needs access to the last indexed block number from the old indexer to ensure data continuity.
For on-premises deployments, UIS is automatically enabled for certain chains upon upgrade to v1.26:
Automatically migrated to UIS (no configuration required):
| Chain | Status |
|---|---|
| Solana | Will automatically use UIS |
| XRPL | Will automatically use UIS |
| TRON | Will be added to UIS (new chain, not a migration) |
Must be explicitly configured to use UIS:
| Chain | Status |
|---|---|
| Arbitrum | Required to use UIS (will not work without it) |
| Base | Required to use UIS (will not work without it) |
| Optimism | Required to use UIS (will not work without it) |
| Ethereum | Optional (can continue using legacy indexer or migrate to UIS) |
| Polygon | Optional (can continue using legacy indexer or migrate to UIS) |
| Stellar | Optional (can continue using legacy indexer or migrate to UIS) |
To enable UIS for a specific chain, set the type parameter to "uis" in that network's configuration block:
ledgers:
evm:
networks:
- name: optimism-sepolia
type: "uis" # Enable UIS for this network
raw_config: |
tracker.opindexer-sepolia.base-url = "http://api-management-uis"
indexer:
node:
url: "http://your-optimism-sepolia-node-url"For XRPL and Solana, no additional configuration is required - they will automatically use UIS when you upgrade to v1.26.
Migration is one-way. Once a chain is migrated to UIS, it cannot be rolled back to the legacy indexer. Plan your migration carefully.
For more configuration examples and details, see the Configuration section in the UIS architecture documentation.
Once the new UIS components are deployed, the Ledger Accounting (LA) component automatically handles the migration logic during its startup sequence. You do not need to manually trigger the migration - it happens automatically.
The migration process is fully automated:
- Detection: When Ledger Accounting starts, it detects that UIS is available for certain chains (Solana, XRPL, TRON)
- Data continuity: The system reads the last indexed block number from the old indexer
- Handoff: UIS begins indexing from that block number to ensure no data gaps
- Automatic switch: Ledger Accounting automatically starts consuming events from UIS instead of the old indexer
Actions:
- Ensure your Ledger Accounting configuration is updated to point to the new UIS service endpoint (this is typically handled automatically by the helm chart)
- The Ledger Accounting service will flag that a migration is needed for any ledger that uses UIS
The migration process happens very quickly and is largely automated. The Ledger Accounting component performs the following steps:
Migration process:
- Database check - Ledger Accounting checks for existing database
- Deployment type check - Verifies if running on-premises
- Last block retrieval - Ledger Accounting sends API call to Events API to get the last indexed block number
- Event consumption - When complete, Ledger Accounting makes API calls to
/uis/ledger/eventsendpoint to start consuming events
Monitoring:
Due to the speed of the migration process, it's not practical to monitor individual stages in real-time. Instead, check the Ledger Accounting logs for:
- API calls to the Events API endpoint
- Successful event retrieval from UIS
- Any error messages related to UIS connectivity
Expected behavior during migration:
During the initial deployment, you might observe the Processor component restarting or "crash looping" briefly. This is expected behavior while it waits for the first address to be tracked. Once the LA completes the Address Sync stage, the Processor will stabilize and start running normally.
This is not an error - the Processor is designed to wait for tracking to begin before it can process events.
Once the logs confirm the migration is complete and the system is in the Ready state, perform the final validation before cleaning up.
Verify successful migration:
- Check transaction processing: Verify that new blockchain transactions are appearing in your system and that the Ledger Accounting sequence numbers are incrementing correctly
- Monitor UIS components: Check the logs of the new UIS components (Generic Indexer, Processor) to ensure there are no connection errors or timeouts.
- Verify data continuity: Confirm that there are no gaps in indexed blocks between the old indexer and UIS
- Test operations: Perform test transactions on the migrated chains to ensure end-to-end functionality
The legacy local indexer is now redundant. However, do not remove it immediately:
Wait for confirmation: Keep the old indexer running for at least 24-48 hours after migration to ensure stability
Verify configuration: Confirm that Ledger Accounting configuration points to UIS. Note: Indexer selection is based on configuration only - there is no automatic fallback mechanism, so Ledger Accounting will always use the configured indexer.
Safe removal: Once confirmed, you can safely stop or uninstall the legacy indexer deployment
Clean up resources: Remove any associated resources (deployment configs, containers) for the old indexer from your OCP cluster
The old indexer disposal is not automated. You must manually remove the old indexer configuration and pods after confirming successful migration.
When you upgrade to v1.26:
| Chain | Migration Status |
|---|---|
| Solana | Automatically migrated to UIS |
| XRPL | Automatically migrated to UIS |
| TRON | Added to UIS (new chain, not a migration) |
Other chains:
| Chain | Status |
|---|---|
| Arbitrum, Base, Optimism | Only available with UIS (no legacy indexer support) |
| Ethereum, Polygon, Stellar | Can use either UIS or legacy indexer (requires explicit configuration) |
Yes. All installed UIS components are required for proper operation:
| Component | Requirement |
|---|---|
| Generic Indexer | Required for data fetching |
| Processor | Required for event generation |
| Events API | Required for Ledger Accounting to consume events |
| Ledger Adapters | Required for chain-specific data translation |
| Ledger APIs | Required for accessing indexed data |
Removing any component will cause system failures.
UIS is available from v1.26.0.
This is expected behavior during initial deployment. The Processor will crash loop until the first address is tracked. Once Ledger Accounting syncs addresses to UIS, the Processor will stabilize. If it continues crash looping after address sync is complete, check the Processor logs for errors.
No. Migration to UIS is a one-way process and cannot be rolled back. Plan your migration carefully and test in a non-production environment first if possible.
Monitor the Ledger Accounting logs for migration completion messages. You should see confirmation that:
- Address sync is complete
- Block handover is successful
- UIS is actively indexing new blocks
- Ledger Accounting is consuming events from UIS
The old indexer data remains in the database. UIS will start indexing from the last block indexed by the old indexer to ensure data continuity. The old indexer pods can be removed after confirming successful migration.
- Unified Indexer Service Architecture - Detailed architecture, components, and configuration reference
- Supported blockchain ledgers - Complete list of supported blockchains
For additional assistance with UIS migration, please contact your Customer Platform Engineering (CPE) team or Ripple Support.