Formulas
Relevant Contract Sources
Section titled “Relevant Contract Sources”PutManager.collateralFromFTPutManager.ftFromCollateralPutManager.getAssetFTPrice
All oracle-scaled values use 1e8 precision (Chainlink standard 8-decimal format).
Variable Glossary
Section titled “Variable Glossary”| Variable | Description |
|---|---|
ftAmount | Amount of FT (project token allocation) in the position |
collateral | Amount of collateral token (e.g., USDC, WETH) |
strike | Oracle price at deposit time, scaled to 1e8. See strike |
ftPerUSD | Number of FT per USD at the raise price, scaled to 1e8. See ftPerUSD |
tokenDecimals | Decimal precision of the collateral token (e.g., 6 for USDC, 18 for WETH) |
Collateral from FT
Section titled “Collateral from FT”collateral = ftAmount * (1e8^2 * 10^tokenDecimals) / (strike * ftPerUSD * 1e18)FT from collateral
Section titled “FT from collateral”ft = collateral * (strike * ftPerUSD * 1e18) / (1e8^2 * 10^tokenDecimals)Worked Example
Section titled “Worked Example”Assume a raise with token price $0.05, using USDC collateral (6 decimals):
strike=100000000(USDC at $1.00, scaled to 8 decimals)ftPerUSD=2000000000(20 FT per USD at $0.05/token, scaled to 8 decimals)tokenDecimals= 6
Deposit 10,000 USDC:
ft = 10,000e6 × (1e8 × 20e8 × 1e18) / (1e16 × 1e6) = 10,000e6 × 20e34 / 1e22 = 200,000e18 FTResult: 200,000 FT (10,000 USD × 20 FT/USD).
collateral = 100,000e18 × (1e16 × 1e6) / (1e8 × 20e8 × 1e18) = 100,000e18 × 1e22 / 20e34 = 5,000e6 USDCResult: 5,000 USDC (100,000 FT ÷ 20 FT/USD).
Deposit-time pricing outputs
Section titled “Deposit-timeDeposit-Time ConversionThe process of converting collateral to FT allocation at deposit time using a live oracle price feed. The conversion records strike and ftPerUSD values that are used for all future exit calculations. pricing outputs”getAssetFTPrice(token, amount) returns:
ftOutstrikeftPerUSD