Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Fraction

See our application, deployed here: https://fraction-nft.herokuapp.com/

Fraction is a platform where users can invest in assets, with the help of fractional NFTs. We set the entry barrier for high value items very low and therefore allow a brought investor base to invest in an asset class, that wasn’t accessible for them beforehand.

We research items with a high growth value and propose them on our website. Users can connect with their Radix wallet and buy fractions of the asset. One asset is represented by one NFT, which in turn is composed of multiple other NFTs. Those NFTs will verify the ownership of investors.

Once a funding goal is reached, investors receive an NFT, representing their share and we will buy and store the item. When the asset increases in value according to our goals, we sell it and all holders share the profit.

There is no risk if the funding goal is not reached, as users will get their money back immediately.

User Journey

User Connecting

drawing

The landing page, shows the user an overview of the website.

Users can connect their wallet using the AlphaNet wallet extension: https://docs.radixdlt.com/main/scrypto/alphanet/wallet-extension.html

Once connected

drawing

A user can then go through the different campaigns of the project available on the 'Invest' tab.

This shows the user the target amount needed to raise for the project. From there users can contribute any amount they wish.

After investing, users will then receive an NFT showing how much they have invested.

Getting funds back out

Once the company has fulfilled their target of funds to raise. The company will then buy the item and eventually sell it for profit.

After selling the item, the user can then retrieve their funds by hitting the Retrieve Funds button.

Smart Contract

The smart contract for this application is in fond/src/lib.js

It splits the roles into two user types Admin & User.

Admin

Admins can

  • see available campaigns data
  • create campaigns,
  • buy items with completed campaigns
  • sell items

Calling these methods

To call these methods there are some Transaction Manifests defined in the codebase.

instantiate.rtm is the method needed for an admin to instantiate the component.

create-campaign.rtm is the method need for creating a campaign.

buy.rtm and sell.rtm are both self explanatory.

All of these manifests are using addresses etc on the Alphanet network but some details might need to be adjusted, such as the campaign index etc.

User

Users can

  • see available campaigns data
  • invest in campaigns
  • retrieve funds from completed campaigns.

Frontend

The frontend of this application is a basic React App.

Initially install the dependencies with npm i and then run npm start to run the application.

What Next??

This project serves as an MVP for Fraction. Going forward Fraction has a wide set of ideas to implement.

Validation

Given the easy nature of Scrypto smart contracts. We want to simplify the process of creating new admins and having admin protected functionality.

Dao

Creating a campaign can be difficult when finding high value items with good potential returns. To improve this process, Fraction is considering creating a DAO where approved members can vote and contribute on the future investments.

Improved User Journey

As the project grows, the requirement for Users to revoke their contribution from an investment will become more of a concern. Further, if for some reason an investment seems to have lost it's potential, admins will have the functionality to cancel a campaign in which case contributors will be able to retrieve their funds.

Admin panel

At present, there is no admin panel. Everything is being done by Transaction Manifest in the browser extension. The intention is to build out a fully formed interactive admin page, where admins can handle all of the neccessary functionality needed.

License

The Radix Scrypto Challenges code is released under Radix Modified MIT License.

Copyright 2024 Radix Publishing Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software for non-production informational and educational purposes without
restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

This notice shall be included in all copies or substantial portions of the
Software.

THE SOFTWARE HAS BEEN CREATED AND IS PROVIDED FOR NON-PRODUCTION, INFORMATIONAL
AND EDUCATIONAL PURPOSES ONLY.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE, ERROR-FREE PERFORMANCE AND NONINFRINGEMENT. IN NO
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES,
COSTS OR OTHER LIABILITY OF ANY NATURE WHATSOEVER, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE, MISUSE OR OTHER DEALINGS IN THE SOFTWARE. THE AUTHORS SHALL
OWE NO DUTY OF CARE OR FIDUCIARY DUTIES TO USERS OF THE SOFTWARE.