> For the complete documentation index, see [llms.txt](https://sestra.gitbook.io/sestra-whitepaper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sestra.gitbook.io/sestra-whitepaper/introduction/architecture-overview.md).

# Architecture Overview

## Architecture Overview <a href="#architecture-overview" id="architecture-overview"></a>

Sestra is built as a lightweight access middleware with clear boundaries.\
It evaluates verification results, issues short-lived sessions, and informs your backend through events.

Sestra does not store identity, does not process funds, and does not execute workloads.\
Its only job is access decision-making.

### System Roles <a href="#system-roles" id="system-roles"></a>

**Client (User / Agent / Service)**\
Requests access to your protected API endpoint.

**Provider Backend (Your API)**\
Owns the protected endpoints. Integrates Sestra via SDK/API and receives webhook events.

**Sestra Core**\
Creates sessions, validates verification signals, enforces privacy rules, and dispatches events.

**External Verification Systems**\
Systems that produce verification signals (e.g., payment receipts, attestations). Sestra verifies the result, not the underlying data.

### Control Plane vs Runtime Plane <a href="#control-plane-vs-runtime-plane" id="control-plane-vs-runtime-plane"></a>

### Control Plane (Developer Console)

Used to configure:

* policies (requirements, TTL, allowances)
* webhook endpoints
* access settings and environments

### Runtime Plane (Session + Verification)

Used during real traffic:

* create session
* verify fulfillment signal
* grant access session
* expire session automatically

### Data Minimization Model <a href="#data-minimization-model" id="data-minimization-model"></a>

Sestra stores only what is necessary to operate safely:

* session identifiers
* timestamps
* status
* hashed metadata (optional)

Sestra does not store:

* identity
* wallet addresses
* network identifiers (IP)
* raw verification artifacts
* behavioral analytics

### Runtime Flow (Short) <a href="#runtime-flow-short" id="runtime-flow-short"></a>

1. Client requests a protected endpoint
2. Backend requests a session from Sestra
3. Backend returns "verification required" to client
4. Client fulfills requirement externally
5. Sestra verifies fulfillment and grants a temporary session
6. Backend allows access while session is valid
7. Session expires automatically
