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

# Protocol architecture

This page maps the main system layers in Callput and makes one distinction explicit: protocol-core truth, service-layer convenience, and public product exposure are related, but they are not the same thing.

## Architecture at a glance

The simplest model is:

1. onchain protocol core
2. onchain read helpers
3. offchain pricing and market-data services
4. integration surfaces
5. operations and automation

## Onchain protocol core

### `OptionsMarket`

Defines market-facing options primitives and trading-related protocol rules.

### `Controller`

Coordinates validation and routing across vault and plugin flows.

### `Vault`

Holds collateral and pool assets.

### `PositionManager`

The canonical request entrypoint and request-state store for open and close flows.

### `SettleManager`

The canonical post-expiry settlement path.

### `OlpManager`

The core LP accounting layer for OLP mint, burn, and AUM logic.

## Onchain read helpers

### `ViewAggregator`

`ViewAggregator` is a convenience read layer. It should not be treated as the canonical source of the current public tradable market listing.

## Offchain pricing and market-data services

The pricing stack depends on:

* IV curve services
* futures index services
* spot index services
* rate-input services

These services affect market presentation and execution context, even though final lifecycle state is still resolved onchain.

## Integration surfaces

External builders typically use:

* the public market feed
* address bundles
* ABIs and event indexing
* MCP or other agent wrappers

## Operations and automation

The live product also depends on:

* request queue execution
* LP epoch management
* feed freshness
* indexing and synchronization

## Core takeaway

Use public market data for market discovery, `PositionManager` for request truth, and `SettleManager` for post-expiry settlement truth.
