Inspiration
I want NFTs to move beyond profile picture collections. We can create entirely new products and markets by pushing the boundaries of what this standard can do. For this particular concept, I was inspired by low-res 2D game libs like raylib and "fantasy consoles" such as PICO-8.
What it does
I'm a sucker for anything that empowers indie developers and artists to ship interactive media and effectively monetize it. In this demo, the Phantom mobile app has been slightly modified to support a new additional kind of NFT media: The NFTCon ROM!
tldr; I put games in NFTs, and you can play them on your phone or in the browser. They can also connect to your Phantom wallet.
How we built it
This project has a few different moving parts. Some of them have been mocked due to time-constraints:
- A Solana program to store game metadata and bytecode (what I'm calling a ROM). The bytecode format is WebAssembly because 1) it's pretty fast 2) it's sandboxed 3) it can be targeted by many languages such as Rust and C*
- An API that can mint NFTs with ROM metadata and bytecode**
- A standard NFTCon runtime that provides a well-known API that ROMs can rely on to draw graphics, poll for user input, even connect to Solana wallets. I have two version of this runtime: one for web browsers written in JS and one that runs in native environments using WebGPU (written in Rust).
- Some tweaks to the mobile app to render NFT UI differently when viewing NFTCon ROMs.
- Some demo ROMs (check out phantomon) to play around with!
- * Exists, but not deployed
- ** This part is mocked
Challenges we ran into
The main challenge was rolling the runtime and getting some interesting demo ROMs off-the-ground in a few days. I had to write the JS runtime for playing the ROMs in a browser/WebView, the mobile UI updates (including basic message passing between the ROM and the mobile app), and the demo game ROMs themselves. I also wrote the Solana program for storing the ROM data on-chain, but I probably could've punted on that one for this hackathon.
Accomplishments that we're proud of
It's a concept that I'm sure others have thought of, but I had yet to see taken to a reasonable level of completion. I've actually been thinking about the game runtime for over a year and began to have ideas for how it can connect to web3 several months ago. So proud I'm to be a dev who did something. And I'll be even more proud if this demo gets others as excited as I am about this concept.
Also these sprites:

What we learned
I've seen some excitement from those I've shown this demo to, and given the number of amazing ideas folks immediately pitch, it's safe to say I've learned this demo just barely scratches the surface of what's possible.
What's next for NFTCon
Finishing the solana program aspect and creating a marketplace dapp where indie game devs and enthusiasts can upload and/or purchase ROM NFTs. That dapp needs some actualy UI design and so does the mobile app UI. I also need to finalize the runtime API, document it, and probably run it by a small group of beta testers to validate whether it has all the critical functionality it would need on day one.
Built With
- react-native
- rust
- solana
- typescript
- wasm
- webgpu
Log in or sign up for Devpost to join the conversation.