Exploring the Use of NFTs as Event Rewards
In recent times, there has been a surge of interest in NFTs, with people and companies exploring use cases beyond the traditional personal profile picture (PFP). As the potential of NFTs grows, many are looking to utilize them for community building and other innovative purposes. However, the technical expertise required to navigate the world of NFTs and Web3 can be daunting, especially for Web2 companies without prior experience with blockchain technology and cryptocurrency wallets.
One such company is flockx, which allows individuals to connect directly with other like-minded individuals, local businesses and brands to build communities. They reached out to us about using NFTs to reward users for their activities: for example, users could attend a concert from their favourite artist and receive NFTs exclusive to the event.
In response to their request, we have put together a proposal for an architecture that utilizes NFTs to represent images or collages of events that artists can share with their fans. With their permission, we are excited to share our insights on how NFTs can be utilized as rewards in the event space. With this article, we aim to provide a comprehensive yet accessible explanation of relevant Web3 concepts and outline potential architectures suitable for implementing such a system.
From here on, we will first provide a clarification on some Web3 concepts (Wallets, Addresses, NFTs, NFT contracts) and how they operate before describing several potential architectures that could be suitable for implementing this vision.
Wallets and Addresses explained
Addresses and wallets are key components of the blockchain ecosystem, and are essential for interacting with blockchain-based systems like NFTs. An address is like a unique identifier for a user on the blockchain. Think of it like a mailing address for sending and receiving mail. When someone sends you cryptocurrency or an NFT, they need your address to make sure it gets to the right place. Addresses are typically long strings of letters and numbers and are used to track ownership of assets on the blockchain.
A wallet, on the other hand, is like a digital bank account that holds your blockchain assets. It's where you store your private keys, which are like passwords that allow you to access and manage your blockchain assets. These private keys are what proves ownership of an address: a wallet then enables easy access to the blockchain.
So addresses and wallets would be used to allow users to interact with NFTs. For example, if an artist wants to give away an NFT to a fan, they would need to know the fan's address to send the NFT. The fan would need to have a wallet that is compatible with the blockchain that the NFT is issued on (in this case, the Fetch blockchain), and they would need to provide their address to the artist.
To simplify the flow, a developer can create smart contracts, which is what we'll showcase below.
A non-fungible token (NFT) is a unique digital asset that represents ownership of a specific item or piece of content, such as an artwork, a collectible, or a virtual real estate. Unlike traditional cryptocurrencies like Bitcoin, which are interchangeable and have the same value, each NFT is unique and cannot be replicated or divided. This makes NFTs ideal for creating digital scarcity and adding value to digital content that can be easily copied and shared.
To create, manage, and trade NFTs, developers often use a specific type of smart contract called an NFT contract. An NFT contract is a program that runs on a blockchain network, such as Fetch, and defines the rules for creating, minting, transferring, and burning NFTs. In particular, an NFT contract specifies the metadata that describes the attributes, characteristics, and ownership of an NFT, as well as the functions that enable users to interact with the NFT, such as buying, selling, or bidding on it.
In the context of flockx, an NFT contract is a type of smart contract that defines the NFTs that will be used to represent images or collages of events that artists can share with their fans. The NFT contract will specify the attributes of the NFTs, such as the event name, date, location, artist, and any other relevant information, as well as the functions that enable the creation, minting, and distribution of the NFTs.
Building a Smart Contract Architecture with NFTs for Community-building Apps
In this section, we'll focus on building a smart contract architecture that incorporates NFTs to enable new forms of engagement and value creation in a community-building app. We'll assume that the user already has a wallet that is compatible with the Fetch blockchain (Fetch Wallet, Keplr...).
1-Creating an NFT Contract The first step in building this architecture is to create an NFT contract, also known as an ERC721 (on EVM-based chains) or CW721 (for Cosmos chains) contract. This contract will define the Tokens that will be used to represent images or collages of events that artists can share with their fans.
2-Determining Eligibility for NFTs Once the NFT contract is in place, the artist can provide images or collages of their events to flockx, who can create the NFTs. From attendance to the event, or artist following, we can determine who is eligible to receive an NFT of the event. It's important to note that the images themselves will not be stored on the blockchain, but must instead be hosted on a publicly accessible url (usually either using cloud storage or through a decentralized storage application such as IPFS).
3-Minting NFTs There are a few different ways to mint NFTs. The simplest case is to mint directly with the user as the beneficiary. This means that the artist or flockx can send the NFT at mint time to the user's wallet using their address with no additional effort. Alternatively, flockx can mint the NFTs to themselves and then distribute them to eligible users at a later point. In this case, we would need to create a list of eligible users and their addresses to ensure that the NFTs are distributed to the right people.
Another option is to create a minter smart contract that handles new NFT creation and whitelisting of eligible users. This approach allows for more flexibility and automation in the minting process, as well as simple tracking of eligibility for NFT claims but it requires more development work upfront. Another plus is that a well-designed minter contract could track all the different collections.
4-Handling distribution through a dedicated smart contract Once the NFTs have been minted, we need to create a smart contract that handles the distribution of the NFTs to eligible users. This contract will specify the rules for how the NFTs are distributed, and it will interact with the NFT contract to ensure that the right NFTs are sent to the right users.
Overall, by creating a smart contract architecture that incorporates NFTs, we can enable new forms of engagement and value creation in a community-building app. With the right architecture in place, artists can share images or collages of their events as NFTs, and fans can receive these NFTs as a way to show their support and loyalty to the artist and the community.
In this setup, the artist uploads images of the event to flockx who then creates a collage. flockx then asks the flockx NFT Controller smart contract to create a new collection using these images. This controller contract serves as an “administrator” for all NFT collections, creating new collections as well as handling incoming minting operations and potential whitelisting of users.
Users can then interact with the NFT Controller themselves to claim their available NFTs, which will instruct the NFT collection to mint / create a new token and transfer it to the user.
NFTs collections creation and minting is handled by a controlling smart contract
In conclusion, NFTs provide a powerful tool for incentivizing user participation in events and communities. By utilizing NFTs as rewards, organizations can create a unique and valuable experience for their users while also building loyalty and engagement.
In this article, we've provided a comprehensive yet accessible explanation of NFTs and proposed several potential architectures that could be suitable for implementing this vision. We hope that this article has been helpful to you and that you now have a better understanding of how NFTs can be used in the event space.
If you have any questions or comments about the article, feel free to engage with us and our community on Twitter. We also provide consulting and development services for Cosmos-based blockchains, including support for implementing an NFT-based reward system. If you're interested in exploring this technology further, feel free to get in touch for more information.
Azoyalabs is a team of experienced blockchain developers who specialize in creating dApps on Cosmos-based blockchains. We provide consulting and development services for Web3 builders looking to bring their ideas to life on the blockchain. With a focus on innovation and collaboration, we help our clients succeed in the rapidly-evolving world of Web3.
flockx allows individuals to connect directly with other like-minded individuals, local businesses and brands in real-time, through a web-app and mobile app. Allowing individuals to engage with their favorite communities and discover live activities throughout the flockx ecosystem.