Developer Resources on the Internet Computer

Developer Resources on the Internet Computer

For those seeking to get involved with the Internet Computer Blockchain, and start building great apps that take advantage of the speed and scalability offered by the IC, there are a range of different resources available.

Most of these resources can be accessed via the IC and Dfinity Websites, where you can find all sorts of information, including career opportunities that might be available with the IC and Dfinity teams.

Documentation

The documentation is always the best place to start when trying to get to grips with new technology. While none of us enjoy reading the manual, all of the information is there for you to be successful. The IC documentation is well written and should be easy for you to navigate.

The IC Developer Docs contain separate docs for the different pieces associated with development on the IC. Here you will find links to docs for Motoko, Rust, Typescript, Python and Solidity, alongside developer guides and tutorials which can help guide you in your transition to building on the IC blockchain.

For those of you unfamiliar with Motoko; Motoko is a programming language that is specifically designed for the Internet Computer. It is a compiled language, which means that it is converted into machine code before it is executed. This makes it faster and more efficient than interpreted languages, such as JavaScript.

At the bottom of this Developer-Docs page there are even more helpful resources, including a link to the developer forum, where you can ask any burning questions you may have about developing on the IC blockchain.

There are also links to Live Sessions, Technical Working Groups, and the Developer Discord. Links to IC Bug Bounties and Grants offered by Dfinity are also there.

For complete beginners, the IC also has a Learn Section, and for users there is a Use Section. These areas of the IC website may be worth checking out if you have questions you need answers for.

Developer Tools

Beyond the academics of trawling though Docs, there are a number of helpful developer tools that have been provided by Dfinity and the IC Developer Community.

DFINITY website showing link which redirects to Bitfinity.

Tools By Dfinity;

  • dfx - the command-line interface for the Internet Computer development toolkit. It provides a number of commands for building, deploying, and managing dapps on the Internet Computer.
  • Motoko VS code - an extension for Visual Studio Code that provides Motoko language support. It includes features such as type checking, autocompletion, and syntax highlighting.
  • Motoko Formatter - formats Motoko code to a consistent style. It can be used to improve the readability and maintainability of Motoko code.
  • Motoko Playground - an online IDE that developers can use to write, compile, and run Motoko code.
  • Motoko.js - a JavaScript library that allows you to interact with Motoko canisters from JavaScript. It can be used to build web applications that interact with the Internet Computer.
  • Embed Motoko - a tool that allows you to embed Motoko code snippets in your Medium article or blog post. This can be used to demonstrate Motoko code to your readers.
  • didc - unique identifiers for entities on the Internet Computer. They are used to identify canisters, users, and other resources.
  • quill - a command-line tool for interacting with the Internet Computer's ledger and governance APIs. It can be used to manage ICP tokens, neurons, and other resources.
  • sns-quill - a command-line tool for managing SNSs (Self-sovereign Namespaces) on the Internet Computer. It can be used to create, update, and delete SNSs.
  • ic-js - a JavaScript library for interacting with the Internet Computer.
  • idl2json - a command-line tool that converts Candid IDL to JSON. It can be used to generate JSON schemas for Candid IDLs.
  • Vessel Package Manager - a tool that developers can use to manage Motoko dependencies. The Vessel Package Manager makes it easy to install and update Motoko dependencies.
  • Stable Structures - a library of data structures that are designed to be scalable and upgrade-safe, a great choice for developers who are building applications that need to be able to handle large amounts of data.
  • Hardware Wallet CLI - a command-line tool that allows users to interact with their hardware wallets from the Internet Computer. It can be used to send, receive, and sign transactions.

Community Tools;

  • CanisterSDK - SDK for writing and testing canisters for the Internet Computer in Rust, by Bitfinity Network
  • ic-repl - a command-line REPL for the Internet Computer. It can be used to interact with canisters and the Internet Computer blockchain.
  • connect2ic - a frontend library that makes it easy to integrate any wallet or identity provider with an Internet Computer application.
  • IC Inspector - a Chrome extension that decodes network responses from the Internet Computer blockchain. It can be used to debug and troubleshoot Internet Computer applications.
  • Launchtrail - a tool for managing releases of Internet Computer canisters. It provides a secure and auditable way to deploy, upgrade, and revoke canisters.
  • Cover - a service for verifying and proving that a canister's code matches the open source code. It can be used to reduce the risk of malicious apps and increase transparency and trust.
  • CanisterGeek - a tool for developers building Internet Computer canisters. It provides a web-based IDE, debugger, and test runner.
  • Sudograph - a GraphQL database for the Internet Computer. It simplifies CRUD development by providing GraphQL queries and mutations derived directly from your GraphQL schema; can be used to develop applications that are more secure, reliable, and efficient.
  • CanDB - a non-relational, performant, and horizontally scalable multi-canister database. It can be used to store and query data for Internet Computer applications.
  • CAP - a decentralized identity protocol for the Internet Computer. It allows users to create and manage their own digital identities without the need for a centralized authority.
  • Intellij Candid Plugin - a plugin for the Intellij IDE that provides syntax highlighting, auto-completion, and other features for working with Candid, the IC's interface description language.
  • create-ic - a CLI tool that helps developers create and deploy canisters on the Internet Computer.
  • create-ic-app - a CLI tool that helps developers create, build and deploy web applications on the Internet Computer.
  • Canlista - a developer tool built for the Internet Computer. It helps developers discover, use, and build on top of Internet Computer resources.
  • motoko-library-template - a GitHub template that lets you kick start your Motoko library development.
  • Blocks. - a decentralized storage network for the Internet Computer. It allows developers to store data on the Internet Computer in a secure and tamper-proof manner.
  • icblast - a tool that helps developers test their canisters for security vulnerabilities.
  • ic-py - a Python library that allows developers to interact with the Internet Computer.
  • ic-web3- a JavaScript library that allows developers to interact with the Internet Computer from web applications.
  • Internet Computer Services (ICS) - a suite of tools and services that makes it easier for developers to build and deploy applications on the Internet Computer.
  • MOPS - an on-chain package manager for Motoko that makes it easy to install and manage dependencies.
  • ICPipeline - a continuous integration and delivery (CI/CD) platform for the Internet Computer.
  • ic-stable-memory - a Rust library that provides stable memory for canisters.
  • IC4J Internet Identity - a Java library that allows developers to interact with the Internet Computer's decentralized identity system.
  • IC4J ICP Management - a Java library that provides tools for managing ICP nodes.
  • IC4J Apache Camel ICP Component - an Apache Camel component that allows developers to integrate with the Internet Computer.
  • IC4J Apache Maven ICP Plugin - a Maven plugin that allows developers to build and deploy canisters to the Internet Computer.

Incentives from the IC

Beyond the wealth of developer tools available, the IC has created an ecosystem of grants and bug-bounties that developers can take advantage of. Further details can be found on the IC webpage and on the InfinitySwap Blog

  • Bounties: The Internet Computer Foundation offers bounties for developers who contribute to the development of the Internet Computer platform.
  • Grants: The Internet Computer Foundation also offers grants to developers who are building decentralized applications on the Internet Computer. Community Grants and Developer Grants are available.
  • Staking rewards: Developers who stake ICP tokens can earn staking rewards, which are paid out in ICP tokens.

Social Resources

There are a few places that yo can turn to if you need help using any of the tools that Dfinity and the IC provides, or if you have any questions regarding development on the IC blockchain that you require answers for.

Further Resources

Finally, further resources can be found on the IC github, a treasure trove of information on the IC blockchain and how it works.

For those seeking data for the IC blockchain can visit the Internet Computer Dashboard.

Information on Wallets compatible with the IC blockchain can be found here.

Position Yourself Well by Developing on the IC Blockchain

With all of these tools and resources available thanks to developers at Dfinity and the wider IC community, there is no reason for developers not to dive right into building on the IC blockchain.

The IC blockchain looks set to grow in the coming years as cryptocurrencies see higher levels of adoption from the general public; developing on the IC blockchain using the resources outlined above could see you ideally positioned when the next bull run is upon us.

Connect with Bitfinity Network

Bitfinity Wallet | Bitfinity Network | Twitter | Telegram | Discord | Github

*Disclaimer: While every effort is made on this website to provide accurate information, any opinions expressed or information disseminated do not necessarily reflect the views of Bitfinity itself.