# Architecture

The SDK supports multiple LP tokens through a unified interface:

* **ZLP (ZO Liquidity Provider)**: Original ZO Protocol LP token
* **SLP (Sudo Liquidity Provider)**: Sudo SDK-based LP token
* **USDZ (USD Stablecoin)**: Stablecoin LP token

### Key Components

1. **Common Interfaces**: Unified API surface for all LP tokens (`IBaseAPI`, `IBaseDataAPI`)
2. **Abstract Base Classes**: Shared logic with delegation to DataAPI (`BaseAPI`, `BaseDataAPI`)
3. **Concrete Implementations**: LP-specific functionality (`ZLPAPI`, `SLPAPI`, `USDZAPI`)
4. **Factory Pattern**: Type-safe instance creation via `SDK` (e.g. `SDK.createZLPAPI()`)
