Disaster relief funding pre-emptively distributed to local aid organisations based on a trigger of imminent disastrous weather (hurricane or strong winds) -- all funded by educational, free-to-play generative NFT gaming.
This project can be thought of in two parts–the free-to-play game the allows players to generate and mint cultural NFTs and the automated function that sends relief money to a local aid organization in advance of a disaster.
Player signs into the WordRealm with WorldCoin Sign In. Player selects which region they would like to learn about and are then presented with a random selection of words organized into three categories. API3 QRNG provides on-chain quantum randomness for a random index that is then used to select words presented to the player from which to select. Player selects words that teaches her about cultural elements from the local region -- the selected words are then passed as a prompt to DALL-E which is then used to generate an NFT that visualizes the chosen words. Nouns NFT art and style is featured prominently -- given the game exists to fund public goods in a whimsical, cryptographic method, there is no art more fitting than Nouns. Players can enjoy Nouns art uniquely incorporated in different geographic locations. The NFT is stored for free in NFT.Storage. The player can choose to mint the NFT -- proceeds are then sent to a disaster relief contract on Base Goerli (base.disasterrelief.eth). Player can choose to sell the NFT -- proceeds from royalties are sent to the same disaster relief contract (base.disasterrelief.eth) on Base Goerli.
Worldcoin integration was imperative to this project because funds generated from players is donated to local non-profit aid organizations--hence, proof of personhood is important to prevent sybil attacks that would render the game unplayable due to DDOS attacks and donations fraudulent. The game uses Worldcoin’s anonymous actions for the action of minting a generative NFT constructed by the player in the game.
Chainlink CCIP is used to transfer tokens from the disaster relief contract on Base Goerli to DisasterRelief.eth address on Ethereum Sepolia. Chainlink Automation is used with a Chainlink Function that performs an API call to the MET Norway Weather API, a Digital Public Good that provides free access to high-quality 10-day weather forecast data for any geolocation in the world. When the player initially selected a location in WordRealm, the geolocation was passed to the Chainlink Function so that the DisasterRelief contract funded was the DisasterRelief contract designated to support that geolocation.
The Chainlink Automation is triggered when a disaster threshold for a parameter in the weather data is hit for a forecast two days in advance -- in this project, we designate the disaster threshold trigger as precipitation for xyz number of hours. When the Automation is triggered, money in the DisasterRelief.eth contract is sent to an Arx NFC chip wallet. This allows for direct distribution of accumulated funds to the NFC chip wallet of a local non-profit aid organization without the need for Internet connectivity two days in advance of the forecasted inclement weather.
NFT holders are connected with members of the local region by a token-gated channel supported by Push Protocol. When disaster strikes, NFT holders are in direct contact with locals in the disaster stricken zone. This allows for real-time communication and coordination, directly from the NFT holders' MetaMask wallet connected by a MetaMask Snap. NFT holders can opt in and define what notifications they receive on an ongoing situation with disastrous weather conditions.
WordRealm: How it's made Sign in with Worldcoin ID Deploy contract and store a predefined list of words in contract (call it WORDLIST). Start a new round. User calls "mint" User gets a unique ID for their mint Request sent to API3 QRNG (Base Goerli) to select a random number in range [0, len(WORDLIST) - 1] After some time, API3 provides random number that is used as the random index Callback function selects a word in the list using the random index from VRF Callback function maps the unique ID to the word Transfer the mint cost (ETH) to the treasury for this round. User calls "draw" on their NFT minted Request sent to Chainlink Functions (or Any API) to our server Server combines the word with pre-defined prompt (e.g. You are a creative artist, draw [word]), call OpenAPI DALLE-3 Server gets image (one or multiple) from OpenAPI and saves them to IPFS using NFT.storage Server returns the list of IPFS URLs to the Chainlink operator Chainlink calls pre-defined callback function on our contract with the IPFS URLs Callback function maps the unique ID from (3a) to IPFS URLs (string[]) User calls "combine" with two NFTs Repeat procedure with the two words combined as one word (ie. phrase) Upon completion of callback function mapping, burn the original two NFTs. Finish the round after certain period. Top users with most points (that we can calculate via different metrics) get rewards from the treasury of this round. Start a new round, repeat the game Mint generative NFT with Worldcoin anonymous actions
Funding DisasterRelief.eth: How it's made Chainlink CCIP from mint contract on Base to Ethereum address with disasterrelief.eth Other users can donate directly to disasterrelief.eth address Chainlink Functions calls the MET Norway Weather API on an hourly basis Checks for the trigger of a hurricane or excessively strong winds in the next 5-10 day weather forecast If this trigger is met, Chainlink automations sends the funds from disasterrelief.eth address to the NFC chip wallet address Local aid organization receives the pre-emptive disaster relief funds from the NFC chip wallet address and is able to further distribute funds to proactively prepare for disaster
Promoting Continuing Cross Cultural Ties: How it's made Holding the generative NFT from the WordRealm game qualifies holders for the Push Protocol channel Users define what notifications they would like to receive from Push Protocol Users receive notifications directly in their MetaMask wallet thanks to Snaps