Motoko Bootcamp — a recap

The goal to be reached.

What was my goal in this game?

Requirements for Graduation

  • The core project was the creation of a live basic non-fungible token (NFT) minter. A NFT is basically a non-interchangeable unit of data stored on a blockchain, a form of digital ledger, that can be sold and traded. Types of NFT data units may be associated with digital files such as photos, videos, and audio.
  • In its most simple version, the project should have been composed of one webpage where the user can login, click on a button and then mint an NFT that will belong to the user.
  • This could be achieved with a single page application composed of a login button using a wallet (STOIC or PLUG). I used the PLUG — wallet. Plug is a browser & mobile crypto wallet and identity/authentication provider for the Internet Computer, compatible with ICP, and soon with cycles and any Internet Computer token. The handle ICP stands for a utility token that allows users to participate in and govern the Internet Computer blockchain network. For frontend development I used an Angular application. How you can use Angular with an IC frontend canister you can check out in my article “Angular meets the Internet Computer” on Medium.
  • The backend canister we had to use was the DIP 721 token standard for storing the NFTs. DIP 721 is an ERC-721 style non-fungible token standard built mirroring its Ethereum counterpart and adapting it to the Internet Computer, maintaining the same interface.
  • Regarding the mint functionality we had to use a button that can mint one or more NFTs for the user which consists of an image link. We used that for simplicity and this leads to more space for improvement. Out of the scope was storing the images directly on the IC blockchain.
  • A way to display the NFT sent to the user was either by displaying it within the webpage and/or redirecting the user to the raw NFT image.
  • Integration of some form of token transactions into the application. In my case I have developed my own simple system. The idea behind can be summarised as follows: If you mint some NFTs you will receive some fictitious token rewards from the contract. If you have received some token and your token balance is positive then you are able to buy other NFTs for a fixed amount of tokens.
  • A final criteria was a proper frontend that displays all of the NFTs from your collection held by the wallet of a logged in user, as well as a way to view some other NFTs minted in your collection not owned by the user.
IC NFT minter demo application

Conclusion

People who made this happen

--

--

--

CEO sdg - samlinux development group and focused on the Internet Computer and Cloud Computing Engineering.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Introduction to OOP in Golang

Back to Bash

Path To Awesome Dev Portfolio, Web NavBar

Want to start with web development?

Automating Flutter Publishing with GitHub Actions & Firebase App Distribution

Importance of cross-functional skillset as a Reliability engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Bole Roland

Bole Roland

CEO sdg - samlinux development group and focused on the Internet Computer and Cloud Computing Engineering.

More from Medium

AMA interview with Relation:Linking Relation of Multiple Chains

How fast can a blockchain be? ‘Webspeed’ says the Internet Computer

How does Web3 bring data back to users? Start with Mirror and Dstar

Riding the Wave: How Music is Being Integrated in ICWave