This project aims to help any individual or organization create and operate an open fund. Individual participants are divided according to the profits that the entire fund has.
Transfund is a groundbreaking initiative aimed at revolutionizing the world of decentralized finance (DeFi) by providing a decentralized and open protocol for creating and managing investment funds. The project harnesses the power of blockchain technology, specifically leveraging the features of ERC4626, to enable individuals and organizations to create their own open funds, attracting both fund managers and investors into the world of DeFi. Let's break down the key components and features of Transfund:
----- Overview -----
----- Benefits ----- For Investors:
For Fund Managers:
For Other DeFi Protocols:
For Project Developers:
----- FundVault Features ----- The heart of the Transfund project is the FundVault, which introduces a range of features to facilitate fund management:
Customization: Fund managers have the flexibility to customize various parameters when creating a fund vault. These parameters include the choice of asset type (e.g., USDC or DAI), the initial fee percentage (_feeBasisPoint), the owner's share percentage (_ownerSharesPercentage), and the profit-sharing percentage (_divideProfits). This customization empowers fund managers to tailor their funds to specific investment strategies and goals.
Asset Choice: Fund managers can choose between assets like USDC or DAI to represent their fund.
Fee Structure Flexibility: The initial fee percentage can be set to any value, including 0, allowing fund managers to design their fee structure according to their vision.
Ownership Commitment: The _ownerSharesPercentage parameter represents a commitment from the fund manager to the investors. This percentage defines the maximum assets that can be minted by the fund manager, demonstrating their commitment to the fund's success.
Profit Distribution: The _divideProfits parameter ensures that investors and fund managers have a clear agreement on how profits are distributed, promoting transparency and trust.
Capital Adjustment: The _afterDeposit function is a crucial feature that enables the adjustment of the fund's ratio as both the fund manager and investors deposit additional funds into the vault. This function is vital to maintain predefined ratios and percentages as the fund grows and adapts to changing circumstances.
The idea of this project came up when I saw a friend of mine, who is a very good crypto investor. Another investor messaged my friend asking that they would send money to my friend and my friend would take 20% of the total profit earned by the investor who sent my friend the money to invest. It's like a form of passive investment.
However, I always have this thought: What will happen when I send money to someone to invest on my behalf, but instead of them using my money for investment, they simply take the entire amount and run away with the money they've deceived?
To answer my question, I built this protocol to minimize the risk of investing in hedge funds, even those hedge funds with only one manager.
Based on my experience, I use the Foundry library to develop smart contracts. According to the provided formulas, I require a Chainlink Oracle for performing calculations within the system. The project's documentation specifies that I need to access the project's total capitalization in USD.
I'm struggling to figure out how to calculate profit and loss when an investor walks into the vault. Then I came across OpenZeppelin's ERC4626 standard, and it was like an oasis in the desert, the core of this project. It is extremely useful in profit sharing and calculating profit or loss for investors when participating in a Fund Vault.
I have learned and upgraded the ERC4626 standard (but without violating the principles of this standard) to build for fee calculation and other profit and loss formulas.
You can refer to the formulas in the project's documentation on its Github page.
Finally, I build the project's user interface using the NextJs library. However, I only had about 16 hours left until I had to submit the project, so I quickly built the front-end of this project.
There are still many things that cannot be implemented in time, but if you read the documentation, I hope you understand the spirit of the entire project to bring to the community.