Dual Investment
Dual Investment is Peridot’s structured-yield product built on top of the core lending markets. Users open time‑boxed positions defined by strike, expiry, and direction (call/put). Positions are represented as non‑transferable ERC‑1155 tokens and are settled by an oracle at/near expiry. Capital can come from existing pTokens (collateral path) or by borrowing underlying (borrow path) in a risk‑managed way.
Architecture
Position Token:
contracts/DualInvestment/ERC1155DualPosition.solstores encoded position parameters and enforces mint/burn‑only flows.Manager:
DualInvestmentManager(.Upgradeable)validates inputs, coordinates collateral/borrow flows, mints positions.Vault:
VaultExecutorhandles redeem/mint for pTokens, withdrawal for settlement, and optional swaps.Settlement:
SettlementEnginereads price from oracle, determines winning side, executes payout, and burns the position.Router:
CompoundBorrowRouterperforms safe borrows and routes funds to the vault.Risk:
RiskGuardenforces health factor, market utilization, and size limits.DEX:
PancakeSwapAdapterprovides quotes and swaps (V2/V3).
Key Flows
Enter with Collateral
Manager validates and generates tokenId;
VaultExecutor redeems user pTokens → supplies underlying to protocol;
Position minted to user;
) Risk tracking updated.
Enter with Borrow
Manager validates;
Router checks health/liquidity, borrows underlying, routes to VaultExecutor;
Vault supplies and position is minted;
Risk tracking updated.
Settlement
SettlementEngine gets settlement price;
Computes winning pToken;
Tries direct withdraw/mint, else withdraws from source and swaps;
Mints payout pTokens to user and burns the position.
Admin & Observability
Configure supported markets, limits, routers, adapters, and treasury/rewards (Upgradeable).
Events:
PositionEntered,PositionSettled,BorrowAndRoute,UserCTokensRedeemed, utilization and risk updates.
Last updated