James Bachini

POAP vs NFT | A Guide With Examples

poap vs nft

In this article we will look at what POAPs are and how their technology is built on top of NFT standards. We will also look at how to create simple POAPs and NFTs. In the conclusion I’ve put together some thoughts on why I think POAPs should only be used for fun and not for anything of value.

  1. What is a POAP?
  2. How To Create A POAP
  3. Creating NFTs On Opensea
  4. Creating NFTs On Remix
  5. Conclusion
James On YouTube

What is a POAP?

POAP stands for Proof of Attendance Protocol, it is a form of NFT which is run by a centralized service at https://poap.xyz which mints the token on the Gnosis Chain. These can be minted by users with a secret link for free without paying a transaction fee. They do not however, to the best of my knowledge, hold any value or are likely to do so in the future. The idea is to create a verifiable historical record of activity for a wallet address. So if you attend a conference or hackathon you can mint a POAP to your wallet which proves you attended. It makes a nice keepsake like a digital fridge magnet.

How To Create A POAP

You can create your own POAP at: https://app.poap.xyz/admin/events/new/

Create A POAP Drop
Dashboard to create a POAP

You’ll need an image to use as a badge, here are the specs:

  • Mandatory: PNG or GIF format
  • Recommended: measures 500x500px, round shape, size less than 200KB (Max. 4MB)

Once minted your application needs to be approved and then you will get a text file full of links which you can send out to your users so they can claim their POAPs. The user clicks the link, enters their wallet address and the backend system will send out the POAP. There are no transactions to sign or gas fees to pay because it’s sent out from the backend script using the Gnosis Chain network.

Creating NFTs On Opensea

An alternative to POAPs are standard NFT’s. The drawback is that you and/or your users will have to pay a gas fee to mint their NFTs. This can get expensive if you want an NFT on the Ethereum mainnet.

You can create an NFT without getting involved in the code by using the OpenSea platform: https://opensea.io/asset/create

Opensea NFT
OpenSea dashboard for creating NFTs

Minting an NFT gives more options like adding custom traits and expanding the functionality of the token. It also makes the product resellable and may have more perceived value than a POAP. However this platform still relies on OpenSeas smart contract.

Creating NFTs On Remix

If you aren’t afraid to dig in to the code then you can deploy your own contract which gives you full control over the functionality of your token as well as making it permissionless without any gatekeepers.

You will need an image again, this can be the same for each NFT or you can use something like JANG.js to create thousands of images based on a layer system.

Head over to https://remix.ethereum.org to start creating your code.

Remix NFT
Creating a simple NFT smart contract in Remix

Here is the code for a simple ERC721 NFT smart contract:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Base64.sol";

contract EthereumHackerNFT is ERC721 {
    uint256 public tokenId;

    constructor() ERC721("EthereumHacker", "EH") {

    function tokenURI(uint256) override public pure returns (string memory) {
        string memory json = Base64.encode(bytes(string(abi.encodePacked('{"name": "EthereumHacker", "description": "Thank you for playing, gg", "image": "https://ethereumhacker.com/img/nft.png"}'))));
        return string(abi.encodePacked('data:application/json;base64,', json));

    function mint() public {
        require(tokenId < 1000, "All 1000 tokens have been minted");
        require(balanceOf(msg.sender) == 0, "You already have an NFT");
        _safeMint(msg.sender, tokenId);
        tokenId = tokenId + 1;


POAPs offer a simple way to create a nice gift to participants of your event but the fact it’s a centralized service and your POAP needs to be approved by someone isn’t very web3. Creating a standard NFT either with a platform like OpenSea or coding your own in Solidity offers more flexibility and potentially more perceived value. The negative of this is that NFT’s minted on networks like Ethereum will require a transaction fee to be paid to deploy and interact with the contract.

Because POAPs are sent out from a backend script they do not require the end user to pay a transaction fee and provide a nice way to provide a digital keepsake for an event. For anything that holds value now or in the future you are better of creating a custom NFT.

Get The Blockchain Sector Newsletter, binge the YouTube channel and connect with me on Twitter

The Blockchain Sector newsletter goes out a few times a month when there is breaking news or interesting developments to discuss. All the content I produce is free, if you’d like to help please share this content on social media.

Thank you.

James Bachini

Disclaimer: Not a financial advisor, not financial advice. The content I create is to document my journey and for educational and entertainment purposes only. It is not under any circumstances investment advice. I am not an investment or trading professional and am learning myself while still making plenty of mistakes along the way. Any code published is experimental and not production ready to be used for financial transactions. Do your own research and do not play with funds you do not want to lose.