The protocol consists of four conceptual layers. Each layer has explicit interfaces. Substituting components within a layer does not require changes to the layers above or below.Documentation Index
Fetch the complete documentation index at: https://docs.tessera.finance/llms.txt
Use this file to discover all available pages before exploring further.
Registry layer
TesseraRegistry is the configuration root. It holds:
- The mapping of authorized lending protocols (
allowedLenders) - The mapping of authoritative oracles per collateral token (
oracle[token]) - The mapping of compliance adapters per token (
complianceAdapter[token]) - The asset class assignment per token (
tokenAssetClass[token]) - Per-asset-class auction parameters (start price multiplier, floors, duration, oracle staleness)
- The protocol fee in basis points and the fee recipient
- The active settlement adapter
- The pause switch
Identity & bond layer
Two contracts work together at this layer:SolverRegistry — the solver state machine. A solver moves through:
Active solvers can bid. Bonds are slashable buffers and serve as participation gates that deter frivolous registration.
ERC3643ComplianceAdapter — a thin facade over the issuer’s identity registry. The auction layer never speaks directly to a token’s IIdentityRegistry; it asks the adapter isCompliantRecipient(token, recipient), and the adapter delegates to whatever underlying compliance mechanism the issuer uses. Different token standards (ERC-3643, Securitize DS Protocol, Centrifuge RestrictionManager) get different adapter implementations. The auction layer doesn’t know or care.
Auction layer
TesseraAuction is the core. It implements the Dutch auction state machine, the per-asset-class price decay, and the eligibility checks that gate every bid.
The auction layer is independent of the settlement mechanism beneath it. It expresses what needs to happen — pull a specified amount of stablecoin from the solver, distribute portions to specified recipients, transfer collateral to the solver, all atomically — but does not specify how. The how is implemented by a settlement adapter.
LiquidationRouter sits in front of TesseraAuction as the public entry point for lenders. It validates lender authorization, oracle freshness, and parameter bounds before forwarding to the auction.