Overview

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.

Aim

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.

Work

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.

Use Cases

This decentralised auction system can be used in place of the existing online auction systems. Advantages include transparency, security, traceability, process integrity, and more.

Preview

Login Page

Users can use there credentials to login to the auction portal

Responsive image

Invalid Authorisation

If the credentials are wrong, the user will not be able to able to access the auction page.

Responsive image

Valid Authorisation

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

Responsive image

Auction Item Listings

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.

Responsive image
Responsive image

User Page - Admin

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.

Responsive image

Register new auction item

The admin can register new items, their name, description, tag, and price. These items can be then be a part of the acution process

Responsive image

Place bid on an auction system

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.

Responsive image

Import contacts

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.

Responsive image

Add a new user to the as an admin

Admin can add users to the system. Details like user's name, and their address is required.

Responsive image

Development

Responsive image

Participant Registration

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

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.

Propose an item to be put up for auction as a seller.

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.

Approve registration of an item proposed by a seller

Only approved items can be put up for auction.

Participants need to register to participate in a particular auction.

This process is automated and does not require approval from admins. You can only participate in items corresponding to your entitlement value.

Bidding process.

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.

Future Scope

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.

Our Team

team-member
  • Researched on how decentralised auction systems can be useful.
  • Researched on building decentralised applicaitons.
  • Worked on the UI of the application.
  • Worked on the system design of the application.
  • Researched about Radix and Scrypto by implementing basic projects, ex - Gumball.
  • Created smart contracts required for the applcation.
team-member
  • Researched on building decentralised applicaitons.
  • Created front end modules of the application.
  • Worked on the system design of the application.
  • Researched on Cerberus, Radix Engine's Shared Consenus Mechanism
  • Researched about Radix and Scrypto by implementing basic projects, ex - Gumball.
  • Worked on creating the Admin Page and Auction Item Listing's Page
team-member
  • Researched on building decentralised applicaitons.
  • Created front end modules of the application.
  • Worked on the system design of the application.
  • Researched on Alphanet extension, Scrypto and Cerberus
  • Worked on adotpting Radix for the project backend
  • Worked on creating the Admin Page and Auction Item Listing's Page
team-member
  • Researched on building decentralised applicaitons.
  • Worked on User authorisation module.
  • Connected the Scrypto smart contracts with the front end via typescript.
  • Worked on the system design of the application.
  • Researched on Alphanet extension and implemented gumball.
  • Worked on adotpting Radix for the project backend.
team-member
  • Researched on how decentralised auction systems can be useful.
  • Researched on building decentralised applicaitons.
  • Connected the Scrypto smart contracts with the front end via typescript.
  • Brainstormed the basic and key scrypto smart contracts required for the application.
  • Worked on the Login page UI components.
  • Worked on adotpting Radix for the project backend.