Inspiration
I think it'd be cool to have an all-in-one wallet for NFTs which you can use to store, buy and sell NFTs and consists of tools which you can mint, create collections of NFTs just in it. And eventually evolve it into a social platform which NFT lovers can communicate, create, share, store and trade NFTs securely.
What it does
Pix0 - is an all-in-one NFT wallet on the XRP Ledger.
There are 5 sections in it:
The Wallet, this is a browser-based wallet, which stores the XRP wallets on the user's browser's local storage and the password on the session storage with 256 AES encryption. It does NOT store any wallets' private key and seed on the server backend. Only public key and the XRP classic address are being stored on the app's backend for referring back to any collections or other data created by the wallet users. Users are able to create up to 5 wallets.
The Collectibles section displays a list of NFTs the wallet users have minted into their wallets. And from each individual NFT, they can view the details, sell the NFT on the marketplace by creating sell offers for public or private for any intended wallet. Sell offers and buy offers can also be managed here.
The Mint NFT section has two tools - one is Simple Mint, which allows the users to simply provide a url or upload an image of the art piece they own and key in information including name, description and metadata of the NFT and mint it into their wallet. Once it is minted, the image and metadata NFT are uploaded to Arweave - the decentralised and permanent storage. The metadata of the NFT is based on OpenSea NFT metadata standard.
The second one is users can mint any NFT randomly from any collections created by creators or artists in the Creator section. Minted NFT image and metadata are stored on Arweave.
The Buy NFT section lets users to buy any NFT from a public list of sell offers or a private list which the sell offers are created solely for them. They can also create buy offers from here.
The Creator section is for any artists or creators to create their collections of NFTs, so others can mint them randomly into their wallets. When a collection created, with its info and metadata such as name, description, price in XRP and transfer fee etc, they can start adding images for those collections.
Images of these collections are temporarily stored on Cloudinary image storage. Once they are minted from the , they are then stored on decentralised and permanent storage - Arweave. The upcoming features of this section including creators are able to create their groups of minters with different prices such as OG, WhiteList etc.
How I built it
- I developed the front-end with React/TypeScript/Redux, Tailwind CSS and XRPL JS (https://js.xrpl.org/)
- I developed the Arweave and Cloudinary image upload with their API
- I developed the backend REST API for off-Ledger data storing such as storing the collections, sell & buy offers and other data with ExpressJS and Mongo DB as the data store.
Challenges I ran into
1) Completely new to the XRP Ledger. I solely depended on the XRPL documentations and JS examples for my development. My past development experiences on web 3, NFT on other blockchains do help.
2) It took me sometime to figure out on how to obtain the offer ID from the transaction's result meta in order to store the offer ID off Ledger.
3) Doing it part time with other daytime work, the time management is a challenge,
Accomplishments that I'm proud of
Having developed a functional prototype, with wallets & tools for creating, minting, selling and buying NFTs on the XRPL dev net. Although some features are still not so complete. I noticed this hackathon only in the 4th week of November, my initial intention was just to try out some of the XRP technologies and experiment to build something without thinking that I'd have completed something functional in such a short period of time.
What I learned
I learned a lot, especially on the XRPL on how to mint NFT with the required flags such as burnable, transferrable, the transfer fee for creator. How to create sell/buy offers etc. And I took the challenge to create a browser-based wallet from scratch which I've been longing to do on other blockchains.
What's next for Pix0
- Improve the UI/UX, the responsiveness etc.
- Complete some of the incomplete features
- Improve the backend security
- To develop tools for creating other more specific NFT collections e.g. motivational quote NFT, real estate NFT etc and also tools for mass upload for collections etc
- Currently, each user/seller/buyer is only identified by the XRP classic address, will need to extend to allow each wallet user to create and link their profile off Ledger and users can create their profile page with the NFTs and use the NFT as their profile pictures etc. And evolve it into a social network.
- A mobile native version for it.
Built With
- arweave
- express.js
- mongodb
- node.js
- react
- typescript
- xrpl
- xrpljs
Log in or sign up for Devpost to join the conversation.