Skip to main content
Lasso RPC Core v0.5.0 returns JSON-RPC responses. Metadata is optional. Cloud workload behavior defines the separate managed-service execution and compatibility boundaries.

Standard responses

Successful requests contain jsonrpc, the echoed JSON-RPC id, and a method-specific result:
An error response contains error instead of result. The error has a numeric code, a message, and optional data. Do not assume an upstream HTTP failure becomes the same downstream HTTP status or exposes internal provider attempts. Routing exhaustion is a JSON-RPC error over HTTP 200; malformed requests and admission failures have their own responses. See error codes and supported methods. Valid request IDs retain their type and value. Notifications omit an ID and have no JSON-RPC response. Batch behavior and transport differences are documented in the method contract; a batch is not one atomic read.

Observability metadata

The released schema uses chain_id, end_to_end_latency_ms, selection_latency_ms, lasso_overhead_ms, executed_channel and attempted_channels. It does not promise a timestamp, total_latency_ms, or provider display-name/region field. Top-level nil values are omitted. Use the single metadata field reference for optional fields, channel identity, opaque correlation IDs and head-policy extensions. These fields describe Core v0.5.0, not a Cloud quota or billing schema.

Body mode

Add include_meta=body, and the response carries a top-level lasso_meta object:
The request metadata page shows generated success and failover records. Read the raw response envelope; an SDK’s method result does not necessarily retain lasso_meta.

Headers mode

Use include_meta=headers or X-Lasso-Include-Meta: headers. The response carries an opaque X-Lasso-Request-ID and, within the size limit, a base64url X-Lasso-Meta JSON object with the same schema as body mode. See decoding and size limits.

WebSocket responses

Forwarded calls use JSON-RPC response envelopes. Subscription events use the eth_subscription notification with params.subscription and params.result:
The event above shows only the envelope and one illustrative result field; actual payloads depend on the subscription type. Subscription IDs are opaque. See subscriptions and the recovery guide for supported streams and limits.