Inspiration
When I was in high school, we spent evenings playing Team Fortress and CS:GO with friends, naturally I got fascinated with the in-game economies of virtual items (hats, knives, gun skins). Looking back, this was my first exposure to NFTs before they even existed. In these gaming communities we had an assortment of tools for exchanging virtual items between friends, and strangers without having to go to an open marketplace. These p2p trading tools allowed us to transact multiple assets securely, something which is lacking in today's Solana ecosystem example. Furthermore, as new video games start using NFTs as a backbone of their in-game economies, gamers will be looking for familiar tools to exchange them, as on proprietary platforms like Steam.
What it does
Jpeg Super Trader (placeholder name until I come up with something better) is a peer-to-peer multi-asset escrow trading tool with UX designed to mimic a familiar video game trading experience. Users can create trades and share them with another party, where both propose offers by adding or removing tokens, and once both parties confirm the assets can be exchanged. Users can exchange up to 12 items in a trade and can inspect each item being traded to assert their authenticity.
The program supports trading with any SPL token, but the UI currently only enables trading with Metaplex NFTs.
How we built it
The backbone of the project is a Solana program written in Rust that handles secure state changes of the trade. A web app written in React is used to interact with the program and provide a useful UI to the user. The UI is served from Azures CDN.
Challenges we ran into
The most noticeable challenge was a lack of developer resources, for which I had to look through existing GitHub repositories to figure out existing design patterns. Another thing that caught my by surprise was how easily the compute-units on Solana could be spent, originally the program allowed an exchange of 20 items, however that had to be reduced to 12 to stay withing the computation limits.
Accomplishments that we're proud of
I am most proud of going over the learning curve with Solana and Rust, and am now comfortable with the architecture and design patterns. I'm also really proud of the communities I've come to know.
What we learned
I've initially started playing around with this project mostly to learn programming on Solana, and this was my biggest take way from this.
What's next for Jpeg Super Trader
Short-term goals:
- Writing many many tests (done)
- Deployment on mainnet (done)
- Authenticity tools: NFT collections visible on the UI.
- Re build the UI client to have much more polished UX.
- Add UI support for all SPL tokens.
- Add support for trading SOL. (done)
Long-term goals:
- Enable any project to extend our UI to feature their custom flavor and collections (e.g video game, that has a specific design, and specific items to be traded)
- Enable importing of data for verifying NFT authenticity, for example when a community wants to trade a collection before officially supported.
- Provide a smooth UX by using backend servers for caching static assets and real-time events for delivering trade state changes.

Log in or sign up for Devpost to join the conversation.