I’ve been interested in blockchain technology and its application in cryptocurrencies for several years. I’ve used several smart contract blockchains such as Ethereum, Cardano and Solana for activities like trading NFTs and crypto tokens. This project was my first experience developing a smart contract. The smart contract is a faucet which distributes 1000 of my Playmakr tokens to a user’s account. Once the user has these tokens, they can send them to other addresses on the blockchain. The faucet is here and the source code is found here. Users must have an ICP Internet Identity before they can access the application.
The smart contract is written in the Motoko language and deployed in a Canister on the Internet Computer Protocol (ICP), it has a React.js front end. ICP is a new kind of decentralized internet and global computing system where independent data centres from around the world join together to create an alternative to the centralised cloud services (like AWS and Azure) that power most of the current internet. ICP’s plan is to have the protocol running on millions of computers around the world.
A Canister is an ICP computational unit that consists of both code and data. A canister can be deployed on the Internet Computer and accessed over the internet. Canisters hold all the elements required to run a scalable web3 application.
It was fascinating learning how the Internet Computer Protocol works. The technology is potentially revolutionary! Building the React.js front end was simple, the front end is heavily inspired by Curve Finance. The Motoko language was completely new to me and was quite challenging to use because of how strongly typed it is. I’m glad to have got some experience with smart contracts as I believe they’ll be an important technology in the near future as more use cases emerge.