Earlier this year we published our vision link. In short, we believe that funglible tokens are the odd ones, and that NFTs have a very important role to play in Web3.0, and we see Substrate as the platform to accomplish the lofty goals for the NFT network. Earlier this year we built the NFT module on Substrate, and the remaining components of the network were built in scope/time of this Hackathon.
What it does
This first iteration of Unique Network is focused on Gaming use cases. During the Hackusama we built the following items. They can be line-by-line verified using these Walk-Through Instructions.
- Updates to NFT Chain:
- Project Description
- Deployed NFT TestNet (Public node: wss://unique.usetech.com)
- Enabled Smart Contracts Pallet
- Enabled integration between Smart Contracts and NFT Pallet (required special edition of RC4 Substrate version)
- Fixed misc. bugs in NFT Pallet
- New Features:
- Re-Fungibility support (ERC-1155 functionality PoC)
- Off-Chain Schema to store token image URLs
- Modifications to the Runtime to support new economic models allowing freemium games to be built, the first of many more to come
- White Lists and Public Mint Permission
- NFT wallet
- Project Description
- Enables adding favorite collections
- Shows tokens owned
- Allows NFT and Re-Fungible transfers
- Shows Re-Fungible Balances
- Shows Token Images
- Our version of AppsUI that locks matching version of AppsUI and API and helps users with all relevant operations on the chain
- Loads appropriate custom API types
- Defaults to NFT TestNet
- Unity API and SDK PoC
- Project Description
- Create or import address with private key
- Display wallet balance in the network currency
- Create/Destroy collection
- Show list of collections owned by this wallet
- Sample application: SubstraPunks Game - See below.
- BlockX Labs Faucet connection is also coming soon
Fully decentralized game 100% hosted on IPFS. This is a complete remake of CryptoPunks game. We created our own assets for it as well as simplified game flow so that it serves demonstration purposes. Copyright note - we checked licenses and chatted with the team, their smart contract is open source, and images are under NIFTY license, so we created our own images. This game is just a tribute to the original one, and we are discussing with them to bridge the original game to our chain for full interoperability.
How I built it
Challenges I ran into
The biggest challenge was the speed of changes in all underlying components (Substrate, Rust, AppsUI, etc.) and the lack of well documented processes and procedures to manage them. It took us more than 2 weeks to wack all the moles jumping out, and a special branch for rc4 to get to the stable working chain.
Accomplishments that I'm proud of
We utilized a lot of expertise we built in the last few years of developing in Substrate, Ethereum and many other blockchains to accomplish everything. We hope that after thorough testing Unique Network will become a valuable Parachain in the Kusama ecosystem, but all components we built can spark the development of games right away, as gaming studios now will have all they need to start their work. Here's how we see us matching the Hackathon criteria:
Contribution to Decentralization and Web 3.0 Friendliness (25%)
Gamers can now build games on Substrate. Quickly, fairly simply, we already started ourselves for our client https://foreverhasfallen.com/, Everdreamsoft is designing the UI for simple collection creation, and Jessica Angel is very keen to start making some art. We also tried to inspire the developers to make one step further toward decentralization and host the game content on IPFS. Our SubstraPunks game example is completely decentralized and can be accessed from any IPFS Gateway from the official public gateway list with this IPNS hash:
Originality, Creativity, and Innovation (25%) We didn't invent a space ship, most of the things we built are available on Ethereum or few other chains. But, no one has the sponsored economic model built into the chain. And no one has built any of these components on Substrate before. Best is yet to come with Innovation on this.
Technical Difficulty (25%) Scope was very ambitious, and it required deep knowledge of most Substrate/Kusama components, which are very fast changing as mentioned above and of other technologies - .NET, Unity, etc. In addition, tying together Ink!, NFT Module, Re-Fungibility, Economic models, UI, NFT wallet and building a game on top within 6 weeks was pretty tough.
User Experience (25%) Initial users will be blockchain gaming studios. We've shown the testnet to a few, with the understanding that design and the whole solution are just a PoC they were very excited.
What I learned
Our team learned a lot during this Hackathon. Stabilizing this pretty complex project with a lot of dependencies developed in a highly paced environment and using the tools that are yet to be perfected such as Rust and Cargo was a huge challenge. We learned how to deal with moving parts and stay on top of constantly changing dependencies and protocols. Another big learning experience was understanding new design patterns that Blockchain and decentralization bring to the table. Even thought the team had previous theoretical knowledge about Single Page and Serverless Applications as well as dApps, this was the first time we completely pushed this to the end and asked ourselves all the right questions that needed to be asked: How to optimize performance of our nodes, How to offload computation to the client and when not to do it, How to design our data structure properly, Estimate complexity of our operations and not to overburden components.
What's next for Unique Network
As you see, we built a lot. But these are mostly all PoCs, and need a lot more work to be production ready for widespread use. We plan to build a number of tests to insure the public launch of the Unique Network is successful. As EVM nears completion we plan to work on NFT components to allow full compatibility with Ethereum ecosystem, which opens the doors to the explosive growth of the ecosystem.
Log in or sign up for Devpost to join the conversation.