Skip to main content
Capabilities declare what a provider supports and its operational limits. Lasso uses this information to filter eligible providers and classify errors during request routing.

Overview

The capabilities field in provider configuration allows you to specify:
  • Unsupported methods - RPC methods the provider doesn’t support
  • Limits - Block range and age restrictions
  • Error rules - Custom error classification for provider-specific error codes
When capabilities are omitted, Lasso assumes the provider is fully capable (only local_only methods are blocked by default).

Unsupported Methods

Unsupported Categories

array
List of method categories this provider doesn’t support. Requests for these methods will skip this provider during routing.
Available categories:
  • debug - Debug namespace methods (debug_*)
  • trace - Trace namespace methods (trace_*)
  • txpool - Transaction pool methods (txpool_*)
  • eip4844 - EIP-4844 blob methods
  • filters - Filter methods (eth_newFilter, eth_getFilterChanges, etc.)
  • subscriptions - WebSocket subscriptions

Unsupported Methods

array
List of specific RPC methods this provider doesn’t support.

Example: Public Provider Restrictions

This configuration prevents Lasso from routing debug traces, transaction pool queries, or filter-based subscriptions to PublicNode.

Limits

Limits define operational boundaries for the provider. Lasso uses these to filter providers before sending requests.

Block Range Limit

integer
Maximum block range for eth_getLogs and similar range queries.
If a request exceeds this range, Lasso skips the provider or splits the request into smaller chunks (depending on routing strategy).

Block Age Limit

integer
Maximum age (in blocks) for state methods on pruned providers.
Providers with this limit are excluded for requests older than current_block - max_block_age.
array
Methods subject to max_block_age limit. Typically state-reading methods.

Example: Pruned Provider Configuration

This provider:
  • Only serves data from the last 1000 blocks
  • Limits eth_getLogs queries to 1000-block ranges
  • Automatically excluded for historical state queries

Error Rules

Error rules allow you to classify provider-specific error codes for better routing decisions. Lasso uses error categories to determine retry behavior and provider health.
array
List of error classification rules. First matching rule wins.Each rule can match by:
  • code - JSON-RPC error code
  • message_contains - Substring in error message
And assigns a category:
  • capability_violation - Provider doesn’t support the method
  • rate_limit - Provider rate limit exceeded
  • requires_archival - Request needs archival data
  • internal_error - Provider internal error

Error Categories

Example: dRPC Error Rules

Example: PublicNode Error Rules

Complete Example

Here’s a fully configured provider with all capability types:

Default Behavior

When capabilities is omitted entirely:
Lasso assumes:
  • All methods are supported except local_only category
  • No block range or age limits
  • Standard error code interpretation
This is appropriate for:
  • Your own full nodes
  • Enterprise provider subscriptions with full support
  • Initial testing before fine-tuning capabilities

Testing Capabilities

After configuring capabilities, verify they work correctly:

Test Unsupported Methods

Test Block Range Limits

Test Error Rules

Trigger rate limits or capability violations and check the dashboard for correct error categorization.

Best Practices

Begin with no capabilities configured. Monitor errors in the dashboard and add restrictions based on actual provider behavior.
Use YAML comments to note where capability values came from (provider docs, observed behavior, support tickets).
Provider API documentation often lists error codes. Create rules for rate limits, method restrictions, and data availability.
Verify that requests fail over correctly when a provider’s capabilities are insufficient.
Provider capabilities change (new methods, increased limits). Review configurations periodically.

Real-World Examples from default.yml

Archival Provider (dRPC)

Pruned Provider (PublicNode)

Limited Free Provider (Merkle)

Next Steps

Environment Variables

Configure runtime settings and API keys

Provider Configuration

Learn about provider setup and priorities