An investor depositsDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. into a collateralCollateralThe asset an investor deposits into a raise (e.g., USDC, WETH). Each accepted collateral type runs in an isolated pool with independent reserve accounting. Active collateral is routed to the yield strategy and backs investor principal protection. pool. At depositDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. time, a live price feed converts collateralCollateralThe asset an investor deposits into a raise (e.g., USDC, WETH). Each accepted collateral type runs in an isolated pool with independent reserve accounting. Active collateral is routed to the yield strategy and backs investor principal protection. to USD notional, and the position’s token allocation is derived from the raise’s fixed token price.
Example:
- Raise token price: $0.05
- Alice depositsDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. 10,000 USDC -> $10,000 notional -> allocation equivalent to 200,000 token units
- Bob depositsDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. 3.33 WETH when WETH is $3,000 -> ~$10,000 notional -> same allocation equivalent
Equal USD notional maps to equal allocation regardless of collateralCollateralThe asset an investor deposits into a raise (e.g., USDC, WETH). Each accepted collateral type runs in an isolated pool with independent reserve accounting. Active collateral is routed to the yield strategy and backs investor principal protection. type.
In the codebase, investor positions are represented as pFTpFTERC-721 position token representing an investor's position. Stores collateral token, amounts, FT(fundraising token) allocation, and strike/oracle context. Transferable as a standard NFT. ERC-721 tokens.
Each pFT position stores:
Each position supports three actions: hold, exit via redeemRedeemExercise principal protection and exit to collateral. Implemented by the divest contract function. Always available, permissionless, and on-chain. and exit via withdrawWithdrawClaim project tokens and forfeit principal protection on the withdrawn amount. Implemented by withdrawFT. Requires transferable to be enabled. Released capital moves to capitalDivesting for buyback and burn..
After investing, investors have three choices:
Partial actions are supported. See Hold, Redeem, and Withdraw for detailed flow mechanics.
getAssetFTPrice(token, amount) returns:
At depositDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. time, the contract converts collateralCollateralThe asset an investor deposits into a raise (e.g., USDC, WETH). Each accepted collateral type runs in an isolated pool with independent reserve accounting. Active collateral is routed to the yield strategy and backs investor principal protection. to FTFT (Fundraising Token)The project's token being sold in a raise. Investors receive fundraising token allocation at deposit time, which they can later withdraw to claim the FT tokens. using strike, ftPerUSD, and the token’s decimal precision. The conversion is deterministic and uses only the values recorded at depositDepositThe action of investing collateral into a raise. Collateral is received by the raise contract, routed to the yield strategy, and a pFT position NFT is minted. At deposit time, a live oracle price feed determines USD notional for FT allocation via deposit-time conversion. time.
See Formula Reference for the exact formulas and worked examples.