Inspiration
I was inspired to create a fun and easy to use decentralized application.
What it does
Cari Studio is decentralized application for people from around the word buy, sell or exchange unique digital characters. What does this mean? You can draw your own character and upload it to Cari Studio dapp with unique token. Or you can buy digital character from other person with unique token as well.
Itβs important to note: when you create your digital character and sell it, the person who buy it will became an owner but you still will be creator of this character. And in case new owner will resell this character, creator will get 3.75% of profit.
How I built it
For the Cari Studio dapp, I build 11 Smart Contracts store users tokens, prove they ownership, allow transfer tokens, create tokens and create auctions. The primary reason to write 11 different Smart Contracts is to keep all the Smart Contract code modularised, keeping security as the prime goal.
The first contract allow give different roles to addresses who can set contract on pause or unpause it for security purpose. The second contract for approve token ownership and who was creator. The third contract for creating digital characters. Contract number 5 and 6 for clock auctions. Contract 7 declaring the contract owner. And contract number 8 for pause and unpause all contracts.
Challenges I ran into
The Key Points to be noted over here are:
When user create auction, his token will be transferred to a contract for prevent user to transfer his token to someone else during auction. If auction end successfully token will be transferred to new owner. Otherwise user must chancel auction and token will be returned to him.
Function transferFrom takes three arguments(_from β user address, _to - contract address and _tokenId ) and will transfer token to contract during auction running.
Function transfer takes to arguments (address _to β new owner address and _tokenId) and will transfer tokens between users.
Keeping Security in mind, my Smart Contracts have pause() function that will pause all other functions in case of emergency.
Keep all 11 Smart Contracts in mind to create they entire structure that way to allow them work with each other and keep them secure and safe. Check all 11 Smart Contracts for possible bugs and redesign them in a better way if it was possible.
Accomplishments that I'm proud of
What I learned
- I learned more about Smart Contracts security.
- The better ways to build Smart Contract functions for costing less gas.
- How to improve Smart Contracts security.
What's next for Cari Studio
- Run more tests.
- Make advanced search for auctions.


Log in or sign up for Devpost to join the conversation.