Fully decentralized NFT system towards Metaverse:
Next generation Seatlab business model
Inspiration
Democracy is the fundamental bedrock in our societies, but it has been increasingly encroached in the recent years following appalling reports of voter frauds and election tampering. Coming from the firm position of upholding such value, we came up with this voting
- Consulting with the Seatlab
- Literature reviews about the pain points in the NFT system
- Challenge
What it does
Core function
Event voting.
A user can create an event: set up a title, description, image, date, price (The price can be set in Ethereum), availability of seats (limited seats or not, if limited - the number of seats). When the event is created it is showed in the list of events. Other users can buy tickets for this event. All funds from the ticket’s sale go to the event creator directly.
Ticket buying
A user can see the list of events and can choose and buy a ticket for it. The user can pay by Ethereum depends on event’s settings. The user can see the list of all its tickets. The user can send its ticket to another user. All tickets are ERC721 tokens that means that users can do any action available for these type of tokens.
Benchmark
New system
How we built it
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WCGiIF2s-1646079840054)(https://lh3.googleusercontent.com/b0qp17SJxtcO1Zgm5z952loFh_suE7uOHnlfSbycVZmy-czRx_f8AmziWoVJ5z8D_fpXkc6Eqnh8NDkyYjaau7bdrLz89eM2Oy7umHCbxCGgexEAzS-K_raNlaINKr3jZNe57w4)] We implemented a voting contract. The main problems of electronic voting is how to assign voting rights to the correct persons and how to prevent manipulation. We shows how delegated voting can be done so that vote counting is automatic and completely transparent at the same time. The idea is to create one contract per ballot, providing a short name for each option. Then the creator of the contract who serves as chairperson will give the right to vote to each address individually. The persons behind the addresses can then choose to either vote themselves or to delegate their vote to a person they trust. At the end of the voting time, winningProposal() will return the proposal with the largest number of votes.
Challenges we ran into
Since none of the members had come into contact with web3/dapp development, the learning curve at the start was slightly daunting, but once we got hang of it, our development agility quickly ramped up and we managed to come up with innovative ideas based on current implementations.Integration with known APIs (MetaMask, for instance) was also quite time-consuming due to environment incompatibility issues, but the trials do look promising.
Accomplishments that we’re proud of
What we learned
What’s next for Web3
- A further system integration between the ticket voting and ticket selling
- Deployment.
- Adding Support for more ERC20 tokens.
- Dynamic Pricing to mitigate effect of fluctuating price of eth.
- Adding Support for multiple event admins.
- Optimizing UI and UX.
|