Charisma analyzes your personality through your NFT assets and on-chain data. Mint your personality NFT and find similar friends.
Charisma is a tool that tells you your personality by analyzing your wallet's NFT assets and your on-chain activity. Similar to the Myers Briggs personality test which uses 8 personality traits to create 16 different personality types. We have created the Wallet Personality Indicator, which are 8 wallet personality traits to create 16 different wallet personality types. The 8 personality traits were debated and sourced from our team. We also created algorithms that incorporate variables such as wallet transaction frequency, project total trade volume, historical prices, time of purchase in order to objectively determine which of the 8 personality traits matches your wallet. For example, if you have more in transactions than out, you probably hodl your NFTs and would receive a "diamond hands" personality trait. Underneath the hood of Charisma is a transparent, adaptable and community governed reputation and identity system that is backed by verifiable onchain data. Your media consumption will become a part of your reputation and identity. We are creating portable identity by separating the reputation layer from the media object. By creating transportable identity, we are giving power to the user, fulfilling the promise of decentralization.
Our project has three main components:
FastAPI was used for backend since it is performant and can be written in a few lines of code.
We designed one main endpoint /address/{walletAddress}
This endpoint makes secondary calls to OpenSea, Etherscan, Coingecko APIs and aggregates the data. In particular, we heavily utilized the OpenSea API - especially the Collections and Asset models to establish key findings regarding the NFTs held by a particular wallet.
Fast API returns a single response object to the front end for rendering.
The application includes a Dockerfile so it can be more easily deployed.
We built the Docker container and deployed it to Azure AppService.
We split responsibilities on our team for frontend / backend. Being able to quickly setup and deploy an internet-accessible API helped enable collaboration.
Bootstrapped with create-react-app
The simple user interface allows a user to enter ETH address and hit "Analyze" button. This submits an Axios request to Charisma-API and renders the response from API.
Web3.js and MetaMask were utilized to allow the user to interact with the NFT smart contract
If the analyzed wallet address and current metamask user match, a button is exposed which allows the user to mint an NFT.
The CharismaNFT smart contract was deployed to testnet with ERC-721 standard. The CharismaNFT.json file allows the user to interact with the smart contract in concert with web3.js. The 4-letter Wallet Personality Index is stored on-chain. In the future, ipfs may be integrated to allow images to be associated with the NFT.