MCPcopy
hub / github.com/canopy-network/canopy

github.com/canopy-network/canopy @v0.1.18+beta sqlite

repository ↗ · DeepWiki ↗ · release v0.1.18+beta ↗
6,247 symbols 20,147 edges 244 files 2,858 documented · 46%
README

Canopy Logo

Official golang implementation of the Canopy Network Protocol

GoDoc Getting Started Go Version Next.js Version

Overview

License Testing Platform Status

Welcome to the Network that Powers the Peer-to-Peer Launchpad for New Chains

Built on a recursive architecture, chains bootstrap each other into independence —
forming an unstoppable web of utility and security.

Here you'll find:

➪ A recursive framework to build blockchains.

➪ The seed chain that started the recursive cycle.

For more information on the Canopy Network Protocol visit https://canopynetwork.org

Network Status

⪢ Canopy is in Betanet 🚀 ➝ learn more about the road-to-mainnet

Protocol Documentation

➪ Check out the Canopy Network wiki: https://canopy-network.gitbook.io/docs

Repository Documentation

Welcome to the Canopy Network reference implementation. This repository can be well understood reading about the core modules:

  • Controller: Coordinates communication between all the major parts of the Canopy blockchain, like a central hub or "bus" that connects the system together.
  • Finite State Machine (FSM): Defines the logic for how transactions change the blockchain's state — it decides what’s valid and how state transitions happen from one block to the next.
  • Byzantine Fault Tolerant (BFT) Consensus: A consensus mechanism that allows the network to agree on new blocks even if some nodes are unreliable or malicious.
  • Peer-to-Peer Networking: A secure and encrypted communication system that lets nodes talk directly to each other without needing a central server.
  • Persistence: Manages the blockchain’s storage — it saves the current state (ledger), indexes past transactions, and ensures fast and reliable data verification.

How to Run It

➪ To run the Canopy binary, use the following commands:

make build/canopy-full
canopy start

How to Run It with 🐳 Docker

➪ To run a Canopy Localnet in a containerized environment, use the following commands:

make docker/build
make docker/up-fast
make docker/logs

or simply

make docker/up && make docker/logs

Running Tests

➪ To run Canopy unit tests, use the Go testing tools:

make test

How to Contribute

➪ Canopy is an open-source project, and we welcome contributions from the community. Here's how to get involved:

  1. Fork the repository and clone it locally.
  2. Code your improvements or fixes.
  3. Submit a Pull Request (PR) for review.

➣ Please follow these guidelines to maintain high-quality contributions:

High Impact or Architectural Changes

➪ Before making large changes, discuss them with the Canopy team on Discord to ensure alignment.

Coding Style

  • Code must adhere to official Go formatting (use gofmt).
  • (Optional) Use EditorConfig for consistent formatting.
  • All code should follow Go documentation/commentary guidelines.
  • PRs should be opened against the development branch.

Pre-Release Go Report Card Contributors Last Commit

Contact

Twitter Discord

Extension points exported contracts — how you extend this code

MessageI (Interface)
MessageI is the model of a message object (send, stake, edit-stake, etc.) [17 implementers]
lib/tx.go
Pageable (Interface)
Pageable() is a simple interface that represents Page structures [18 implementers]
lib/util.go
WStoreI (Interface)
WStoreI defines an interface for basic write operations [4 implementers]
lib/store.go
PublicKeyI (Interface)
PublicKeyI is an interface model for a cryptographic code shared openly, used to verify digital signatures of its paired [4 …
lib/crypto/key.go
ParamSpace (Interface)
ParamSpace is a distinct, isolated category within the overarching Params structure [4 implementers]
fsm/gov_params.go
PluginCompatibleFSM (Interface)
* This file contains logic for extensible plugins that enable smart contract abstraction */ PluginCompatibleFSM: defines [3 …
lib/plugin.go
RCManagerI (Interface)
RootChainClient executes 'on-demand' calls to the root-chain [2 implementers]
lib/consensus.go
TxnReaderI (Interface)
TxReaderI() defines the interface to read a TxnTransaction Txn implements this itself to allow for nested transactions [2 …
store/txn.go

Core symbols most depended-on inside this repo

Equal
called by 720
lib/crypto/classgroup.go
Error
called by 373
lib/log.go
Bytes
called by 308
lib/crypto/key.go
NewError
called by 275
lib/error.go
Hash
called by 243
lib/crypto/hash.go
bytes
called by 221
store/smt.go
Run
called by 192
lib/vdf.go
Errorf
called by 187
lib/log.go

Shape

Method 3,655
Function 1,732
Struct 557
Class 156
Interface 116
TypeAlias 31

Languages

Go87%
TypeScript11%
Python2%

Modules by API surface

plugin/go/tutorial/contract/plugin.pb.go260 symbols
plugin/go/contract/plugin.pb.go260 symbols
lib/plugin.pb.go260 symbols
fsm/message.pb.go166 symbols
lib/event.pb.go156 symbols
lib/error.go150 symbols
fsm/message_helpers.go125 symbols
lib/certificate.pb.go117 symbols
plugin/typescript/tutorial/src/proto/index.d.ts108 symbols
cmd/rpc/client.go108 symbols
plugin/typescript/src/proto/index.d.ts102 symbols
fsm/gov.pb.go94 symbols

Dependencies from manifests, versioned

filippo.io/edwards25519v1.1.0 · 1×
github.com/DataDog/zstdv1.5.7 · 1×
github.com/RaduBerinde/axisdsv0.0.0-2025041918245 · 1×
github.com/RaduBerinde/btreemapv0.0.0-2025041923281 · 1×
github.com/StackExchange/wmiv1.2.1 · 1×
github.com/alecthomas/unitsv0.0.0-2024092700094 · 1×
github.com/allegro/bigcache/v3v3.1.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/bits-and-blooms/bitsetv1.20.0 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/cockroachdb/crlibv0.0.0-2025102415550 · 1×

For agents

$ claude mcp add canopy \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact