The objective of this project is to provide a full-stack working application that allows users in a closed system (permissioned blockchain network) to hold an English-type auction with either an open bid strategy. For this, we use Radix as a ledger to secure the bidding process. Smart contracts written in Scrypto, which is Rust based, allow us to focus on quickly programming finance logic for the auction system.
The mainstream smart contracts present in the market today do not live up to the principles of being: easy, safe, reusable, or composable. Scrypto provides a solution that is scalable. The Radix Engine V2 and Scrypto rethinks smart contracts from scratch to fulfill the requirements of DeFi applications.
In our system every item detail is stored as an NFT. Each NFT holds basic details of the item like name, id, and the price of the item. Whenever a certain NFT is proposed, the admin has the privileges of checking if the item is valid and then can approve the NFT. The seller can then use the NFT badge to authorise the start of the auction.
This decentralised auction system can be used in place of the existing online auction systems. Advantages include transparency, security, traceability, process integrity, and more.
Users can use there credentials to login to the auction portal
If the credentials are wrong, the user will not be able to able to access the auction page.
If the credentials are right, the user will be able to login and access the auction page which shows the latest activity performed, auctions that are going on and also the items that are present in the auction
In this page all the items that are present in the auction are shown. Users can bid on whatever item they are interested in. This page also shows if the item is still on bid or it is sold.
This is the admin view. The admin can see all the users that are present in the auction and the status of the items in the auction.
The admin can register new items, their name, description, tag, and price. These items can be then be a part of the acution process
The user can place bids on the items in the auction. They can see the initial price of the auction item and also the last called bid price on that item.
Users can upload the contacts on Radbid in bulk to import participants into the system. The uploaded participants will have to confirm their registration via email.
Admin can add users to the system. Details like user's name, and their address is required.
As an admin, you can register the participants in the system by providing their information such as Name, Address, Email, etc. Here the assumption is that the people willing to join the application have contacted the admin and provided their details. This process can be deferred to prospective future work.
Manage entitlements or badges of the participants based on the time they are associated with the platform and maybe things like ratings given by other users. These entitlements or badges may include permission for sellers to sell a high-priced item and for the buyers to bid for a high-priced item. This will protect both buyers and sellers from fraud.
This proposed item goes to the admin for approvals. For this case, an NFT can be used as a way to provide requests. The NFT data will have fields such as item description, value, age etc, and the status of the item which will be an enum of pending, approved or rejected.
Only approved items can be put up for auction.
This process is automated and does not require approval from admins. You can only participate in items corresponding to your entitlement value.
Registered participants can enter the bidding of an item being auctioned. The initial price of the item is displayed for the participants. There will be a set time limit before the auction ends and there is no time before the next bid.
The applicaiton must be able to serve more users at once without a load on the servers. The user experience can be improved by adopting rich UX principles for the website. The response time of the application can be improved to make sure the auction takes place without a hassle. The applicaiton can be implemented using Radix betanet. Need to look at other ways to add items and users such as bulk import functionality. Need to work on seamless UI integration with Radix Alphanet.