Project Description / Problem Statement:
Manga, Manwha, Comic Books, and even literary authors are all content creators. They have created millions of literary and entertaining works. Some extremely popular Web2 apps include Webtoon and Wattpad. Problem is that many authors, like most creators, don’t earn a lot on their creations.
With the advent of NFTs, ToonVerse aims to become a one stop shop for consumers to come consume content (i.e. read manga, manwha, novels, etc.) and for authors/artists to MINT their publications and chapters as NFTs that can be traded on secondary marketplaces like OpenSea and LooksRare. Stretch goal would be to mint NFTs with royalty to author and integrating something like ImmutableX.
Learnings / Challenges / What Worked, What Didn’t:
- I’m a Rails developer, I did the backend in Rails which includes the Web3 Authentication with Metamask.
- Rails is very good for saving the publication/chapters and making associations between models. But it does NOT work well with Web3 right now.
- Rails integration with Metamask, connecting, and signing is extremely complicated.
- NFT Storage is very hard to use because of the lack of documentation.
- A lot of trial and error went into grabbing the image from S3, uploading the data.Body, and figuring out the format Metamask liked when minting the NFT. ⁃ I would still use NFT.Storage though. Although, it lacked docs, I made it happen.
- Did not use Rails to interact with the smart contract – don’t think you can with today’s current tools (or it is very hard and I didn’t have the time)
- Decided to run a expressJS app on one server (i.e. localhost:5000) and run Rails on another (i.e. localhost:3000)
- Used CORS to let them communicate.
- Rails calls expressJS when minting NFT, which calls smart contract function to MINT NFT, return the txHash to expressJS to Rails to save it in MySQL Database.
- Deployment on Spheron DID NOT work at all – gave up on that.
- A lot of the docs on Fluence was broken… :(
- Transactions didn’t send from NodeJS using Infura… something about eth_SendTransaction missing that I wasn’t able to figure out.
- Ended up using Alchemy and Hardhat (so much better)
Tracks:
NFTs and Web3 Integration in Web2
Sponsors Integrations Used:
- AWS S3
- NFT.Storage (IPFS)
Mumbai Testnet SC Address:
- 0x23C682622B9B5Af492332f470a6Da2bB1BaeB8b5
Goerli SC Address:
- 0xA5d657DD528457723F13EA9C230b6e3b1da43578
Built With
- alchemyapi
- amazon-web-services
- bootstrap
- express.js
- ganache
- hardhat
- infura
- ipfs
- jquery
- mysql
- nftstorage
- node.js
- openzepellin
- ruby-on-rails
- s3
- solidity
- truffle
Log in or sign up for Devpost to join the conversation.