> For the complete documentation index, see [llms.txt](https://docs.zofinance.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zofinance.io/building-on-zo/zo-sdk/architecture.md).

# 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()`)
