Ethereum: The Tribe was designed as a fun NFT project where users can mint a collectible trading card based on their Ethereum account engagement. Each card displays a users decenralised identity and avatar along with qualifications they have achieved on the network. The original intent was to calculate the various metrics to create an XP score however this wasn't possible within the weekend. So instead it offers 3 dimensions with two potential options each. "ETH Maxi" vs "Token Trader" attribute, based on whether a user has ERC20 transactions or not. "NFT Collector" or "My First NFT" based on whether a user has any prior NFT transactions and finally "ETH Miner" or "Blockless" based on wether the user has mined any blocks ot not.
Unfortunately the potential team members I connected with during the first day all fell through. Therefore, I was somewhat limited by what I could do alone over the weekend. I began with a starter prokect from the IPFS/Filecoin team (https://github.com/DeveloperAlly/filecoin_nft_starter/blob/main/src/App.js) and forked this as the basis of Ethereum: The Tribe. It utilises NFT.Storage to publish a layered custom SVG to IPFS and Filecoin. This fork has a custom designed card style and also pulls in more dynamic elements from the Etherscan API. It queries the Etherscan API to get a list of; Ethereum, ERC20, ERC721, and Mining transactions to establish whether user has completed transactions of each type. It then outputs different attributes onto the card image for each of these as discussed above. Additionally, it pulls the ENS avatar with the ENS overlay from the ENS Metadata service. The project was working with the raw avatars, however the version with overlays requires the ENS namehas to be generated and I ran out of time to complete that funcionality this weekend. Once the image and attributes have been generated and uploaded to IPFS, the resulting NFT is then Minted. There were some issues with Rinkeby over the weekend so the project was ported to Goerli for testing. Additionally to mint the screenshots, I temporarily modified the API calls to pull data from mainnet where I already had an ENS name and Avatar configured. There were some challenges with getting NFT.Storage to upload images with avatar images embedded within them. I narrowed this down to what I believe is a security block for base64 encoded PNG inclusions within SVG files. Apart from this, it completely automates the process of pinning in a sustaible fashion and is much easierto set up than managing your own node, plus with the API you aren't limited to manual uploads. One thing I have noticed is the final SVGs which work on their own and within the site, do not appear on OpenSea. I'm not sure if this is a parsing issue or something to do with their testnet edition. I requested an API key, but did not have the opportunity to go deeper here. Overall, I still think the project is quirky and could find some appeal however the codebase still needs significant development to reach production levels of code. If this were to be released and promoted it may also make sense to pull more data diectly from the chain instead of through a mixture of APIs.