Doggos
Adoptable dog NFT marketplace to raise funds for shelters and rescues.
Screenshots



Problem Statement
Every year over three millions dogs are surrendered to animals shelters. Approximately 10% of those dogs are ultimately euthanized. Doggos' goal is to raise awareness of available rescue dogs while also raising funds for the shelters that house them.By "Adopting" (minting an NFT) of a dog, a portion of the purchase price goes directly to the shelter's crypto wallet. Another portion is put into a "gaming" pool where adopters will get some of their funds back based on the length of time the animal is in the shelter (Phase 2). A small percentage is added to a developer wallet to cover costs of hosting and future development.
Solution
There are three main parts to Doggos:Functions: Backend, serverless functions to query the Petfinder.com API to retrieve shelter dogs.Doggos UI: A React app that displays and handles the adoption (minting) of Dog NFTs.Smart Contract: A Solidity smart contract that allows for the purchase , minting, and transfer of an NFT and distributes the tokens received.Tableland: I am using Tableland tables to store data for the projectDog ListDog TraitsTableland was helpful for me to create the Token metadata, and for storing a list of animals and their adopted/minted status. When a dog is minted, or is adopted from the shelter, this data will change. That is why I selected using Tableland vs static metadata files. A future phase of this project will "gamify" dog adoptions and metadata will change based on how long an animal has been in a shelter.I used OpenZeppelin contracts for the ERC721 Smart Contract, RainbowKit and wagmi libraries for the UI, Tableland Javascript SDK for data access, and Chakra UI for design elements.