Reputation System to track the on-chain activity of a user via granting upgradable NFTs.
This project basically acts as a proof of concept for building a reputation system of a user on blockchain. The idea behind the project is that say an address is provided, then an off-chain call could be made to polyscan or etherscan via any simple api call to say fetch the total number of transactions made by the user, or to get balance of some token or to see if a user has a particular nft which makes him a part of the dao. Once we have this information with us we can then call the dynamic nft contract deployed on the wallaby filecoin network to mint a particular nft to the user. Say we have an nft which has some metadata value which denotes that he has 10 of some currency, after some time if he buys 10 more of it and we have a condition to level up the nft such that it only updates the metadata of the particular nft and its bumped up to level 2. This bumping up of the nft can only be done for now by the deployer of the contract, later we can even have some whitelisted logic to drive this.
In this way the user can collect multiple nfts, all denoting various other things and have a on-chain reputation which is verified. This would help in creating a credibility of the user. For example, say Alice wants to hire a good freelancer who has at least 5 smart contracts deployed on the mainnet. Alice cannot right now verify very easily if the freelancer, Bob, has genuinely deployed 5 contracts. Using this dynamic nft she can see the level of the nft Bob has which denotes the deployments and be sure that Bob in deed has deployed those many contracts and is not lying. Lets, extend this idea to hiring and recruitment process. Imagine all the companies started minting nfts for all their employees as a proof of employment. Consider these nfts are bound with the role of the employee or even the experience. As and when the employee is promoted, this nft can be bumped to provide proof in a single shot. The above example of Alice verifying Bobs work also holds true in the case of recruitment to give assurance to the recruiters about the capabilities of the candidate.
NOTE: The main NFT minting contract cannot be called by anyone other than the owner or some whitelisted contracts to preserve the sanctity of the system
This PoC is build using the most simplest of the technologies. The smart contract was build using solidity on the Remix IDE and deployed on the wallaby network. The frontend is a very very simple react project just to make it easier to be able to see the actual dynamic updation of the nft. This project can be extended to allow the smart contract to interact with the storage providers where you update the metadata of the nft with the industry standard, strike a deal and store the .json file and then mint the nft with the CID/hash like any normal nft. The dynamic part could be then handled by asking the provider to delete the metadata and write a new one to then be mapped to the nft. The other way is to have an orcale such as chainlink in between to do the above for us. To automate the process of updating the nft of the user when he reaches a certain milestone could also be done using api calls with chainlink