> For the complete documentation index, see [llms.txt](https://docs.useicaria.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.useicaria.xyz/architecture/off-chain-services.md).

# Off-chain services

The stateless services around the contracts, and why not one of them has to be trusted.

Three services surround the contracts, and one constraint governs all of them: a service may make the venue quicker or easier, never more trusted. Let any of them fail and convenience degrades while the guarantees stay exactly where they were.

## Quote service

What would this swap cost at this moment is the question the quote service answers. It runs `SwapRouter` in simulation against current oracle and vault state, broadcasts RFQ requests to connected makers, collects signatures over a few hundred milliseconds, and hands back the best composite quote with its breakdown attached. Both the platform ticket and the public [API](/architecture/api.md) are built on it.

Why none of that has to be trusted:

* No keys, no funds. Its output is a preview, and in the RFQ case a set of maker signatures the chain checks for itself.
* Vault pricing gets re-derived on-chain by the router at fill time, so a wrong preview produces a revert against the trader's signed bound instead of a bad fill.
* Hiding the vault path is impossible: whenever the vault beats every supplied quote, the router settles through the vault.

Take the service offline and vault swaps carry on from any interface that can reach the contract, at identical prices. RFQ aggregation and convenience are what go missing, and nothing else.

## Keeper service

Regime transitions, staleness halts and the expiry of sequencer grace are all permissionless pokes, and the keeper service is simply the process that makes those calls promptly. Because every quote recalculates the regime within its own transaction anyway, a sluggish keeper cannot cause stale-session pricing; all that happens is a lag before the explorer's display catches up. The reference keeper is open source and running one is open to anybody.

## Indexer

Ponder, self-hosted in TypeScript, or Envio HyperIndex turns fill and parameter events on chain 4663 into the [trade explorer](/using-icaria/trade-explorer.md), the [execution quality](/transparency/execution-quality.md) dataset, and per-market LP statistics. Every displayed figure links back to the event behind it, so anyone who does not trust the indexer can rebuild the whole thing from Blockscout.

## Maker gateways

Makers reach the quote service over the WebSocket protocol set out in [API and SDK](/architecture/api.md): requests broadcast out, signed quotes come back. Those gateways belong to the makers themselves, and the Icaria side does nothing beyond relaying and ranking. A dropped maker connection removes that maker's quotes from the auction and changes nothing else.

## Monitoring

Public state is all the operations stack watches, the same state available to everyone: oracle staleness and divergence, vault skew against bands, halt states, sequencer uptime, how close fills sit to the band, and drift in execution quality. Alerts reach the guardian on-call. Privileged telemetry does not exist here, because everything worth monitoring already lives on-chain, which is as much a statement of design as of operations.

## Running your own

Every piece above is open source. Anyone wanting independence can run the quote service, keeper and indexer from the public repositories against whichever RPC provider they prefer, and the [platform](/architecture/platform.md) front-end is a reference client for the very APIs it documents.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.useicaria.xyz/architecture/off-chain-services.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
