Lava is an open network of node operators that effectively scales API access for data consumers—AI agents, dapps, wallets, enterprises, and beyond. It’s a protocol that directs RPC requests to fast and reliable data providers on any chain. To successfully serve consumers and ensure high-quality service, data providers are constantly striving for improvement.
Lava’s most recent release has introduced Provider Reputation. The Provider Reputation score replaces the previous Quality of Service (QoS) Excellence metric, offering a clearer and more refined approach to measuring provider performance. This ensures that consumers are paired with providers that offer the best service for their needs.
This post will break down the key changes, explain how Reputation works, and highlight its impact on the Lava ecosystem.
Important Note: Reputation will not affect pairing immediately after the release of v5; it will take effect only after it has been fully tested.
Reputation is a comprehensive metric that evaluates a provider's quality of service using three key performance indicators (KPIs):
All these KPIs are reported by consumers, not providers. Consumers measure latency, check block freshness, and determine provider availability—all of which contribute to calculating a provider’s Reputation. Reputation is then recorded on-chain when a relay payment transaction for the provider’s service is issued.
Every epoch (30 blocks), Reputation scores are calculated using the following equations:
score = latency + sync*syncFactor + ((1/availability) - 1) * FailureCost
score = latency + blockErrorProbability * FailureCost + ((1/availability) - 1) * FailureCost
Details for the some of variables included in the equations above:
The overall Provider Reputation Score, that will be available on the Lava info page, is derived by comparing providers based on raw reputation scores (calculated using the equations above) and assigning them a number between 0.5 (the lowest possible score for providers with the lowest raw reputation scores) and 2 (the highest possible score for providers with the highest raw reputation scores).
Pairing is a time-based mechanism that ensures consumers are connected to the most suitable data providers based on various factors such as location, preferences, and more. Before the introduction of Reputation scores, provider stake was one of the key factors influencing a provider’s likelihood of being paired with consumers over other suitable providers. This sometimes disadvantaged providers with excellent service quality but lower stakes.
Providing consumers with the highest quality of service and minimal downtime is at the core of what Lava strives to achieve. Therefore, the introduction of Reputation enhances the pairing mechanism, ensuring that service quality plays a much more significant role in pairing.
Each epoch (30 blocks), providers are first sorted in descending order based on their Reputation scores and then grouped into tiers to ensure high-quality service is rewarded.
The number of tiers providers are grouped into is set in the consumer's configuration. More precisely, consumers have an internal mechanism called the “provider optimizer,” which optimizes their choice of providers. The optimizer is configured with the number of selection tiers and the number of providers in each tier.
The pairing mechanism selects the best tier for a consumer based on factors such as consumer preferences, geolocation, consumer type, and more. Higher-quality service tiers are more likely to be chosen, but the pairing mechanism includes a randomness factor to ensure that other tiers are not always excluded.
Once a tier is selected, the final selection within that tier is stake-weighted, giving higher-stake providers better odds of being paired with a consumer while still allowing smaller-stake providers a chance through randomization.
Below is a simplified visualization of how pairing works in a single epoch:
Note: The pairing mechanism aims to distribute an equal number of providers into each tier. If that is not possible (e.g., 10 available providers and 4 tiers), some providers will be included in more than one tier. To maintain balanced pairing chances, the mechanism adjusts the stake weight of those providers accordingly. For example, if a provider is included in two tiers—significantly increasing their pairing chances—their stake weight will be divided by two, ensuring an equal penalty to their selection odds within each tier.
Provider reputation scores are calculated relative to other providers, meaning that a provider’s ranking always depends on the performance of other providers. At any time, providers can access details about their overall performance and relative ranking among their peers by running the Provider Reputation Query:
lavad query pairing provider-reputation [address] [chain-id] [cluster]
Note: The cluster
argument should 99% of the time be "*"
(including both the quotation marks and the asterisk). If you want to see all chain IDs at once, you can also use "*"
for the chain-id
argument.
Providers can always improve their Reputation by enhancing their quality of service, including factors such as latency, synchronization, availability, and other configurations. The Reputation score is decay-based, meaning that older performance—whether good or bad—has less impact over time. The half-life of a reputation sample is one hour, meaning that if a provider initially has a low reputation score but improves after an hour, the weighted average between the two scores will be calculated as follows:
(0.5*bad_score + 1*good_score) / 2
This ensures that even providers with the lowest scores can effectively recover as they improve. Conversely, providers with good reputation scores are incentivized to maintain high-quality service to preserve their rankings.
Various factors can influence provider quality of service, including server setup, capacity, and provider configuration (e.g., geolocation and add-on configurations). It is crucial for providers to continuously monitor and optimize their services to improve their scores.