Welcome. This is EasyA's legendary handbook. If you want to learn Internet Computer Protocol (ICP) like a legend, then you're in the right place.
This handbook serves as a guide to the Internet Computer Protocol ecosystem, geared towards those just joining for the first time. It isn't just a beginners' handbook; it's a legendary handbook. Even if you've already immersed yourself in the ecosystem, you'll find tons of helpful tidbits around here!
Of course, the best place to start is always the EasyA app! Download it here for the fastest and most fun way to learn about ICP. Download it directly right here!
- Introduction
- Getting Started
- Core Concepts
- Development Tools
- Smart Contracts
- ICP Network
- Ecosystem Projects
- Resources
- Handy Code Snippets
- Contributing
What is Internet Computer Protocol:
- Internet Computer Website - The official website providing comprehensive information about ICP.
- Internet Computer Whitepaper - The technical whitepaper explaining ICP's architecture and design principles.
The no-fluff starter:
- Internet Computer Developer Hub - The main entry point to documentation, guides, and references.
- Your First dApp - Tutorial on deploying your first decentralized app in 10 minutes.
Explanation of fundamental concepts in the ICP ecosystem:
- ICP Architecture - Learn how ICP realizes the vision of the Internet Computer.
- Candid - The interface description language for ICP.
Key tools and environments for ICP:
- dfx - Command-line tool to interact with the IC written in Rust.
- Motoko Playground - An online playground environment for Motoko, ICP's native programming language.
How to write and deploy smart contracts on ICP:
- Motoko - The home of the Motoko language, designed for writing smart contracts on ICP.
- Rust CDK - Canister Development Kit for Rust on ICP.
Going into the network level:
- Network Status - Live stats and explorer for the ICP network.
- NNS Dapp - Web interface for interacting with the Network Nervous System.
Cool projects built on ICP:
- Internet Identity - Pseudonymous authentication system for ICP.
- OpenChat - An open chat app built on ICP.
Extra stuff:
- DFINITY Developer Forum - Main forum about the Internet Computer.
- Internet Computer Wiki - General knowledge resource about the Internet Computer.
Get a taste of ICP development with these code snippets:
actor {
public func greet(name : Text) : async Text {
return "Hello, " # name # "!";
};
};
import { Actor, HttpAgent } from "@dfinity/agent";
import { idlFactory } from "./declarations/hello";
const agent = new HttpAgent();
const hello = Actor.createActor(idlFactory, { agent });
const greeting = await hello.greet("World");
console.log(greeting);
These examples showcase:
- A simple Motoko actor that implements a greeting function.
- How to call a canister function using the JavaScript agent.
We welcome contributions to make this handbook even more legendary! Here's how you can contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-addition
) - Make your changes
- Commit your changes (
git commit -am 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-addition
) - Create a new Pull Request
Please ensure your contributions align with our code of conduct and contribution guidelines.
This handbook was inspired by the famous awesome lists by sindresorhus and the Awesome Internet Computer list. We need awesome lists for Web3 ecosystems, with more of a hacker's guide to how they work. This is the answer to that need.