NFTLoanAuction

NFTLoanAuction

NFT Loan Auction: A groundbreaking DApp on Flow, enabling loans via NFTs as collateral, fostering a dynamic marketplace for DeFi lending, and redefining financial accessibility.

The problem NFTLoanAuction solves

NFT Loan Auction addresses several challenges in the DeFi space:
Financial Access: It allows NFT owners to unlock the financial value of their assets without selling them. This is particularly beneficial for those who own high-value NFTs but might be cash-poor.
Flexibility: Borrowers have full control over the loan parameters, including the loan amount, interest rate, auction time limit, and yield. This level of customization is not typically available in traditional DeFi lending platforms.
Dynamic Marketplace: It creates a competitive bidding environment for loans, potentially leading to better loan terms for borrowers.
Safe and Transparent: The use of smart contracts ensures the safety and transparency of the lending process. The NFTs used as collateral are securely held in the contract until the loan is repaid.
Yield Opportunities: For lenders, it provides an opportunity to earn yield on their funds by lending them out to borrowers.
Overall, NFT Loan Auction opens up new possibilities for lending and borrowing in the DeFi space, making it more accessible, flexible, and competitive.

Challenges I ran into

The only little problem we faced was with contract fields when updating and iterating so quickly. Using the recommended best practices/example code where fields such as let ExampleTokenStoragePath which are set in the contract initalizer a became a problem.
To overcome this hurdle, we decided to employ getter functions for constants. This approach allowed us to update constant values without altering the contract’s state directly. It meant that we could avoid the need to redeploy the contract to a new address each time we needed to make an update, thereby bypassing the cumbersome process of dealing with resources from the old contract.
This experience has reinforced the importance of designing smart contracts with flexibility and maintainability in mind. Getter functions for constants proved to be a helpful tool in achieving this, and we intend to utilize this approach in future projects to enhance the efficiency of our development process.

Discussion