Skip to content

EasyA-Tech/icp-handbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

The Internet Computer Protocol Handbook [WiP]

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.

Purpose

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!

The EasyA App

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!

Table of Contents

Introduction

What is Internet Computer Protocol:

Getting Started

The no-fluff starter:

Core Concepts

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.

Development Tools

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.

Smart Contracts

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.

ICP Network

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.

Ecosystem Projects

Cool projects built on ICP:

Resources

Extra stuff:

Handy Code Snippets

Get a taste of ICP development with these code snippets:

Hello World in Motoko

actor {
  public func greet(name : Text) : async Text {
    return "Hello, " # name # "!";
  };
};

Calling a Canister Function

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:

  1. A simple Motoko actor that implements a greeting function.
  2. How to call a canister function using the JavaScript agent.

Contributing

We welcome contributions to make this handbook even more legendary! Here's how you can contribute:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-addition)
  3. Make your changes
  4. Commit your changes (git commit -am 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-addition)
  6. Create a new Pull Request

Please ensure your contributions align with our code of conduct and contribution guidelines.

Credit/Inspiration

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published