Endpoints
Production API:Initial Snapshot: 200 OK
Request:
200 OK, the Partner should:
- Parse the response into a new lowercase address
HashSet. - Verify
chain_id,schema_version, andcount. - Save the response
ETag. - Atomically replace the previous
HashSetonly after parsing succeeds.
Conditional Refresh: 304 Not Modified
Poll once every 15-60 seconds using the last ETag:
304 response has no JSON body. The Partner should keep its existing HashSet.
This avoids repeatedly downloading and parsing the full address list.
If the list changed, Rialto returns 200 OK with a new body and ETag. The Partner
should build and atomically publish a replacement HashSet.
Quote Flow
For each genuine user quote request:Unsupported Demand Probes
The Partner may send a/quote request for a token missing from its local snapshot
when that request represents real user demand. Rialto returns an explicit
unsupported-token response quickly.
The response is an explicit unsupported-token error, for example:
Probe and Quote Limits
The Partner authenticates/quote with its existing API key and quote:read scope.
There is no additional API-key scope to configure.
Internally, Rialto uses two independent rate-limit buckets:
The probe allowance is configured at up to 10 times the Partner’s normal quote
allowance over the same limiter interval. An unsupported request consumes the
probe bucket but returns before consuming the expensive
quote:read bucket.
A supported request passes admission and then consumes the ordinary quote
allowance as well.
The probe bucket is still bounded and rate-limited. The Partner should send only
genuine user demand, not synthetic loops or repeated requests intended only to
force promotion.
Recommended Client Behavior
- Maintain one shared full snapshot per chain.
- Fetch the full universe on startup.
- Poll every 15-60 seconds with
If-None-Match. - Keep the current
HashSeton304or transient refresh failure. - Atomically replace it after a valid
200response. - Call
/quotenormally when both addresses are present. - For genuine demand involving a missing address, send the quote once as an unsupported-demand probe and handle the explicit rejection.
- Do not repeatedly probe the same unsupported request inside a retry loop.
- After a later snapshot includes the token, process it through the normal supported quote path.
