Obtain a unique SBT and image using a world ID and populate Tokyo with it.
Upon logging in with a World ID, an SBT (Soul Bound Token) with a unique image is generated based on the authentication hash value. This SBT also contains latitude and longitude information placing it somewhere within Tokyo. As the number of people logging in with a WorldId increases, Tokyo city gradually fills up with unique SBT images. But wouldn't you want others to know more about your unique SBT? If you travel to a location within 10km from your SBT's coordinates, you can generate an additional SBT. The same applies when you are within 10km from your new SBT's location. Race against others and let's fill the streets of Tokyo with these tokens!
I created two types of contracts. One is for conducting on-chain verification with WorldId, and the other is for SBT. As for the app, I integrated Worldcoin's idkit. Upon authentication, it communicates with the WorldId Onchain Verification Contract. Using the nullifier_hash, an image is generated through the stable-diffusionAPI, and with the normalized location data as metadata, the SBT is minted. Both the image and metadata are stored fully on-chain, and I save them to IPFS using Pinata's API. For communication with the blockchain, I utilized Viam, and for the map functionality, I used react-leaflet.