Introduction

The KittyConnect project allows users to buy cats from our partner shops and also get a NFT for their purchase of cat which will track all the information regarding the cat ensuring decentralization, transparency and immutability.

What it does

Our platform KittyConnect allows users to buy cat from our partner shops and get a NFT for their cat purchase and the NFT will track all the information regarding the cat like their name, date of birth, breed, previous owners, latest remarks, image ipfs hash, current owner address.

Cat Owners can bridge their NFT to another chain if they want and bridging of NFT is powered by chainlink CCIP. Initially when user calls the bridge function then the NFT on source chain is burnt and all the related NFT information is transferred to destination chain via chainlink CCIP and NFT is minted to it's owner on destination chain in very less time ensuring transparency and decentralization.

Also, cat owners can transfer the ownership of their to other owner if they want, first they need to approve their cat NFT to the new owner and visit the partner shop to finalize the transaction to transfer the ownership to the new owner and thus transferring the ownership of their cats to new owner.

How we built it

Smart Contracts are written in solidity in Foundry Framework and frontend is prepared by ReactJS. There is no back-end as everything is stored on-chain, thus ensuring fully decentralized platform.

KittyConnect comprises of 5 smart contracts:

  1. KittyConnect This contract allows users to buy a cute cat from our partner shop and mint NFT when they buy a cat. The NFT will be used to track the cat info and all related data for a particular cat corresponding to their token ids. Cat owners can also visit any partner shop for vet checkup and makes payment in KittyToken (the price of the token is same as USDC).

  2. KittyBridge This contract allows users to bridge their Kitty NFT from one chain to another chain via Chainlink CCIP by transferring the data to the destination chain. It involbes burning their NFT on source chain and minting NFT with the same data provided by chainlink CCIP on the destination chain.

  3. KittyToken This contract allows users to buy KittyToken which pegged with the USDC and all the data feeds of prices are come from the the Chainlink Data Feeds.

  4. KittyInsurance This contract allows users to pay his premium in KittyToken to the policy provider and also claim the insurance by any shop partner in KittyToken. The insurance will be valid for either 1 year or 6 month as per the user choice.

  5. KittyInsuranceProvider This contract allows policy provider to deploy the insurance policy for the users. The policy parameter will be decided between the policy provider and the cat Owner (for example: coverage amount, premium amount, Time(1 year or 6 month), etc.). By the contract, policy provider can also mark the insurance complete when the insurance time completed with all the premium amount paid by the user.

Frontend is implemented via ReactJS and it is hosted on surge

Roles

  1. Kitty Connect Owner The owner of the KittyConnect platform

  2. Partner Shop Partners from which user will buy cat. Partner Shop will call the function on the KittyConnect contract which will mint a NFT to them when users buy cat.

  3. User (Cat Owner) These are normals users who can buy cat from our Partner Shop, bridge their Cat NFT or transfer ownership of their cat to other owner.

Challenges we ran into

While developing KittyConnect we ran into some challenges as described below:

  1. Using Chainlink CCIP Initially we know nothing how CCIP works, we ran through the docs, read them thoroughly to make ourselves more familiar with CCIP and with whole heart and dedication understaned how to implement chainlink CCIP in our project.

  2. Managing Contracts Preparing smart contracts and managing them properly was the major task and also to ensure security so that no one can hamper with our platform and disturb its normal functioning.

Accomplishments that we are proud of

  1. Learnt about chainlink While completing our project, we deep dived into chainlink services and learn a lot about it from docs and from tutorial videos conducted on a regular basis.

  2. Implemented Chainlink CCIP Initially we were not familiar with chainlink CCIP and how to implement it but with our sincere efforts and dedication we implemented it effectively in our project to bridge NFT from source chain to destination chain and tested it thoroughly.

  3. Implementing front-end We developed user friendly interface for all the people participating in our platform and made it easy for KittyConnect owner, partner shops and Cat Owner to interact with our platform with ease.

What we learned

  1. Integrating Chainlink services We learnt how to integrate chainlink cross chain interoperability protocol in our project in order to bridge NFT. Also, learnt the security practices to keep in mind while integrating it and also learnt about the Risk Management Network that monitors for malicious activity.

  2. Time Management: We learnt how to plan and manager our time effectively so that we can complete our project in the given time constraints and ensured all the main functionalities are completed.

What's next for KittyConnect

  1. Providing more services to user With our future updates we will provide more services to the user so that they can get more from our platform with ease and friendly interfaces.

  2. Implementing Proxy As smart contracts are immutable and they can't be changed, so we will implement it via Proxy so that Smart Contracts can be updated whenever required, also to use governance based systems to update it.

  3. Completing uncovered frontend part Some of our functionalities remain uncovered in our frontend part but they are fully implemented in smart contracts. So, our next aim is to cover those functionalities in our frontend.

Built With

  • avalanche
  • chainlink
  • chainlink-ccip
  • ethers.js
  • foundry-framework
  • metamask
  • react
  • sepolia
  • solidity
  • surge.sh
Share this project:

Updates