Standard responses
Successful requests containjsonrpc, the echoed JSON-RPC id, and a
method-specific result:
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 useschain_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
Addinclude_meta=body, and the response carries a top-level lasso_meta
object:
lasso_meta.
Headers mode
Useinclude_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 theeth_subscription notification with params.subscription and params.result: