Getting Started with ICN
This guide is the contributor and evaluator entrypoint for the ICN repo. It is written for people who want to understand the project, build the codebase, run the main checks, and choose an initial way to help without guessing their way through the repository.
If you are looking for institutional engagement, non-technical contribution, or financial support, use the public Get Involved page first.
Choose Your Starting Path
- I want to understand the project before building anything: start with intercooperative.network/what-is-icn, intercooperative.network/for-developers, and intercooperative.network/whats-real-now
- I want to contribute code: keep reading this guide, then read CONTRIBUTING.md
- I want a deeper technical curriculum: use docs/onboarding/README.md
- I want to run a node locally and inspect the daemon: follow the local-node section below after you build the workspace
Developer Quickstart
Prerequisites
- Rust toolchain from
icn/rust-toolchain.toml - Git
- Enough disk for a full workspace build and incremental cache
Clone and build
git clone https://github.com/InterCooperative-Network/icn.git
cd icn/icn
cargo build
cargo test --workspace --lib
Important: the Rust workspace is in the icn/ subdirectory, not at the repo root.
Read these next
- README.md — repo map and role-based routing
- AGENTS.md — verification rules, invariants, and crate layout
- CONTRIBUTING.md — PR expectations and architectural guardrails
- docs/onboarding/README.md — structured contributor path
Repo orientation
icn/— Rust workspaceicn/crates/— core crates and shared subsystemsicn/apps/— runtime-integrated application cratesicn/bins/— binaries such asicndandicnctlwebsite/— public site forintercooperative.networkdocs/— architecture, guides, reference material, and onboarding
Choose an initial area
- Start with good first issues if you want a scoped first PR
- Use GitHub Discussions if the work is exploratory, architectural, institutional, or not yet issue-shaped
- If you want to read first and patch later, follow the reading order on For Developers
If you are helping without writing Rust
- Documentation work: use docs/INDEX.md to find the right surface, then open a scoped docs issue or PR
- Design, research, testing, and ecosystem work: use intercooperative.network/get-involved for the current public routing, then move concrete proposals into GitHub Discussions
- Institutional questions: start with intercooperative.network/for-cooperatives and intercooperative.network/whats-real-now, then open a Discussion with the real use case
- Financial support: the live path today is GitHub Sponsors
Verify before you push
cargo fmt --all --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --lib
Run the checks that match the area you touched from icn/, the workspace directory you entered in the build step. AGENTS.md is the routing table for workspace crates, website work, SDK work, and docs.
Running a Local Node
If you want to inspect the daemon and CLI directly after building:
Create an identity
./target/debug/icnctl --data-dir ~/.icn id init
./target/debug/icnctl --data-dir ~/.icn id show
Start the daemon
./target/debug/icnd --data-dir ~/.icn
Check status from another terminal
./target/debug/icnctl --data-dir ~/.icn status
./target/debug/icnctl --data-dir ~/.icn network peers
Useful local endpoints
- Gateway health:
http://localhost:8080/v1/health - Metrics:
http://localhost:9100/metrics
Other Real Ways to Help
If you are not contributing Rust code, there are still real paths:
- docs, design, testing, research, governance, and ecosystem work are routed through intercooperative.network/get-involved
- institutional use cases and partnership questions belong in GitHub Discussions
- financial support goes through GitHub Sponsors
What This Guide Does Not Promise
- a polished non-technical onboarding flow for ordinary members
- a hosted sign-up path or managed pilot program
- a finished member-facing product surface
Those are still in progress. This guide is for building, reading, testing, and contributing against the repo as it exists today.
Next Documents
- README.md for the repo map and public-routing layer
- CONTRIBUTING.md for PR expectations and architectural guardrails
- onboarding/README.md for the longer contributor curriculum
- ARCHITECTURE.md and STATE.md if you need deeper technical and project-status context
Where To Ask Or Contribute Next
- Use GitHub Issues for scoped implementation and documentation work
- Use GitHub Discussions for design questions, institutional use cases, and broader project conversation
- Use intercooperative.network/get-involved if you are deciding how to help across technical, non-technical, institutional, or financial paths