Skip to main content
This page describes Lasso RPC Core v0.5.0 metadata. It is opt-in and describes request execution, not an upstream-capacity or availability guarantee. Cloud RPC behavior and versions and evidence separate managed-service fields and deployment state from this Core contract.

Request metadata

Choose include_meta=body or include_meta=headers. The equivalent request header is X-Lasso-Include-Meta: body or headers; the query parameter takes precedence. Omit both to keep the ordinary response format.

Metadata fields

The released metadata builder removes top-level nil values. Nested attempt fields can still be null. Treat missing optional evidence as unknown, and tolerate additional fields. A channel identity contains profile, provider_id, instance_id, transport and route_generation. Instance/profile identifiers are opaque. The recorded attempt contains channel, outcome, category and code; successful attempts can have null category/code. See the released request context. Core generates an opaque request ID when needed; its fallback is 32 lowercase hexadecimal characters. Do not validate all IDs against that fallback shape or confuse this correlation ID with the JSON-RPC request’s id.

Body mode

include_meta=body adds lasso_meta beside result or error. Read the raw HTTP JSON response when you need this outer field: SDK methods commonly return only result and discard the envelope. These examples were generated with the v0.4.3 metadata builder and channel-history helpers, which are unchanged in v0.5.0. Provider identities and timings are fixed hermetic fixture inputs, not live performance measurements. The fixtures follow the released success and failover test setup.

Successful first attempt

Successful failover

The failed primary and successful backup are both in attempted_channels. executed_channel identifies the backup. A candidate label alone would not establish either attempt.

Headers mode

include_meta=headers puts the same metadata object in X-Lasso-Meta as base64url-encoded JSON without padding. X-Lasso-Request-ID is the correlation ID. There is no promised X-Lasso-Latency header. Decode the header and handle its absence explicitly:
If the encoded metadata exceeds max_meta_header_bytes (default 4,096 bytes), Core omits X-Lasso-Meta and retains X-Lasso-Request-ID. Body mode avoids this metadata-header limit; it is not a promise of unlimited response size.

Record evidence safely

Store the correlation ID, result/error, source revision and available timing and channel fields. Record missing metadata explicitly. A successful request proves neither independent operator redundancy nor that every candidate was attempted. Do not use candidate_providers as an upstream amplification counter.

Block protection metadata

These optional fields help diagnose Block regression protection. They are not required to enable protection or read several values at one block. When head_policy.policy is local, a protected latest-block response can include: Compare nonoverlapping requests within the same service profile, chain, instance and generation to assess local protection. These fields do not prove that a particular number of peers received an update or predict recovery time. Global policies report policy=global and can include attributed chain-change observations. Their retained number/header responses have no executing upstream provider. Explicit-number/hash requests can legitimately have no head_policy object. State-read results do not independently attest which block the provider used to execute them. For correlation, use x-lasso-request-id, or x-request-id when no routing context was created. service_profile_id identifies the service profile and profile_id identifies the effective route. Core currently uses the same file-profile identity for both fields; treat them as opaque values. HTTP batch headers expose only one item’s routing context. Oversized metadata can be omitted. If complete per-request diagnostics are required, use individual HTTP requests and record missing metadata explicitly; this is a diagnostics choice, not a requirement for consistent reads.