Inspiration
UNIN stands for UNiversal INventory -- it's hard to think about the initial inspiration because it's an idea that's been in my head for sometime. Maybe it was the inventory from the novel Ready Player One that initially seeded the idea in my head. I also needed an idea that I could comfortably take from zero to done in the amount of time allotted -- this was a low-cost idea that I felt I could finish in my free-time away.
What it does
The application allows users to generate custom ERC721 tokens with 7 attributes stored in the URI section of the token. Generating these for a small cost gives users "raw UNIN". The owner of the raw UNIN can make a one time registration call using a signed message to register a name and description for the UNIN. After this, a third-party application is able to look up all registered inventory owned by a wallet address. Later, the owner can trade their NFT and the new owner can claim the item for their inventory. This is a cross-platform universal inventory system for the metaverse.
How I built it
The APIs are written in NodeJS and the client is using NextJS -- these are two technologies I have been using daily in my professional life. The client is using the Chakra UI component library.
The APIs are hosted as a API Gateway / Lambda function on AWS, configured and deployed with the Serverless framework; registered UNIN are stored in DynamoDB. The APIs contact the mumbai testnet using the Alchemy service. All client application images are stored on IPFS -- those images were generated by DALL·E 2 and post-processed in Photoshop.
The serverless API is deployed to AWS using the Serverless framework and the client application is hosted on Vercel.
The contract uses OpenZeppelin libraries and Hardhat to test and deploy.
Challenges I ran into
The most challenging aspect of building UNIN was deep diving into crypto and creating solidity contract. Before the start of the contest, I have had no exposure to these technologies. The quality of tutorials and documentation across the internet is somewhat hit and miss but once I found the right resources and got everything figured out, it started going smoothly. There is still a lot I don't know but I always feel better after learning a new technology that's been on my mind; like a weight has been lifted. I'm always glad I've done it but it's usually a grind.
What I learned
Before mid-July, I had very little working knowledge of how DAPPs and blockchains worked but now that I have taken this deep dive, I have a better handle on what is possible when designing and developing my next project in the future. I'm now more comfortable with the problems it can solve and offering it as a solution.
What's next for UNIN
I'm still working on the overall vision of a UNIN eco-system. Right now, it's a passion project and I'm just along for the ride, figuring where it takes me. I think the most logical next step would be developing a small application that utilizes Universal Inventory.
Built With
- alchemyapi
- amazon-web-services
- c#
- dalle2
- dynamodb
- ipfs
- javascript
- lambda
- nextjs
- nft
- node.js
- openzeppelin
- photoshop
- serverless
- solidity
- typescript
- unity
- vercel
Log in or sign up for Devpost to join the conversation.