Library / SDK
canopy-network/canopy avatar
canopy-network/canopy

Canopy: A Recursive Blockchain Framework with Ethereum RPC Compatibility

The official go implementation of the Canopy Network protocol. Here you'll find:** ➪ A recursive framework to build blockchains.

14,704 stars17,436 forksGoMIT

At a glance

What is it?
Canopy is an official Go implementation of a recursive blockchain protocol, offering a seed chain and a framework for building new chains. It targets developers who want Ethereum-compatible L1s with native transfer support and a modular architecture.
Who is it for?
Adopt Canopy if you are a developer or organization looking to launch a new blockchain with Ethereum tooling compatibility and a recursive security model, and you are comfortable with a beta-stage codebase. Do not use it if you need a production-grade, battle-tested chain or if your use case requires complex smart contract functionality beyond native transfers.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly Go, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • canopy-network/canopy14,704 ★ · +144
Star history
Repository2026-07-282026-11-13
canopy-network/canopy14.6k14.7k

144 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

The Problem: Bootstrapping New Chains Without Starting from Zero

Canopy's approach is to let chains support each other in a recursive cycle, which could reduce the initial bootstrap burden. However, the README does not detail how the recursion works in practice, so you must read the protocol documentation on the wiki to understand the mechanics.

How It Works: Modular Architecture with a Central Controller

The repository is organized into core modules that handle distinct responsibilities. The Controller acts as a central hub, coordinating communication between all major parts of the blockchain. The Finite State Machine (FSM) defines how transactions change state, deciding what is valid and how transitions happen from one block to the next. The Byzantine Fault Tolerant (BFT) consensus mechanism allows the network to agree on new blocks even with unreliable or malicious nodes. Peer-to-peer networking provides secure, encrypted communication between nodes without a central server. Persistence, handled by the store module, saves the current state, indexes past transactions, and ensures fast data verification. This modularity means each piece can be studied and potentially modified independently, which is a plus for developers who want to customize their chain. The recursive element, however, is not visible in the module list; it likely sits at the protocol level, where chains interact with each other.

Getting It Running: Build and Start Commands

To run the Canopy binary, the README gives two commands: `make build/canopy-full` and then `canopy start`. This suggests you need to compile the binary from source, which requires a Go toolchain. For containerized environments, Docker Compose is supported. You can build a localnet with `make docker/build`, then start it with `make docker/up-fast`, and view logs with `make docker/logs`. Alternatively, a single `make docker/up && make docker/logs` does both. There is no mention of pre-built binaries or a simple install script, so you must be comfortable with Go's build process. The `canopy start` command likely launches a node that connects to the network, but the README does not specify configuration flags or environment variables. You would need to consult the full RPC specification in `cmd/rpc/README.md` or the wiki for details on node configuration, such as setting up a validator or connecting to a specific chain.

Ethereum RPC Compatibility: A Double-Edged Sword

One of Canopy's standout features is its Ethereum-RPC compatibility for native transfers. The README states you can use the `/v1/eth` endpoint as a custom Ethereum RPC, and it works with MetaMask. This is a significant advantage because it allows existing Ethereum tooling to interact with Canopy without custom adapters. However, the README scopes that compatibility to native transfers and points to an `eth-spec` file at `fsm/ethereum.md` for the compatibility notes. For developers who need token transfers and basic wallet integration, that scope may be sufficient. Teams that need custom chain logic should look at the repository's `plugin/` directory and the plugin build targets in the Makefile, which the README itself does not describe.

Limitations and When It Is the Wrong Tool

The most obvious limitation is the beta status. The latest release is v0.1.32+beta, and the last push was on 2026-10-21, which suggests active development but not production readiness. The README does not list any known issues or failure modes, but beta software implies potential bugs and breaking changes. Another limitation is that the Ethereum RPC compatibility the README describes covers native transfers only. Additionally, the recursive architecture is complex and not well-documented in the README; it is described as a 'recursive framework' but the specifics are left to the wiki. This could be a barrier for developers who need to understand the security model before adopting it. The project also appears to be community-driven, with contribution guidelines and a Discord server, but there is no mention of a formal governance structure or audit history, which might be a concern for enterprise use.

Alternative Approaches: Cosmos SDK and Substrate

A real alternative to Canopy is the Cosmos SDK, which provides a modular framework for building blockchains with a focus on interoperability via the Inter-Blockchain Communication (IBC) protocol. Unlike Canopy's recursive bootstrap, Cosmos SDK uses a hub-and-spoke model where zones (chains) connect to a central hub for security and interoperability. The difference is that Cosmos SDK is more mature, with a larger ecosystem and production deployments, but it requires learning its specific module system and uses Tendermint consensus, not a custom BFT. Another alternative is Substrate, from Parity, which offers a flexible runtime and supports both native and EVM-compatible chains. Substrate uses a different consensus mechanism (GRANDPA) and has a more extensive library of pallets. Both alternatives provide smart contract support, which the Canopy README does not mention. The trade-off is that Canopy's recursive model might be simpler for bootstrapping security, but it is less proven than the established frameworks.

Maintenance and Upgrade Costs

The repository is actively maintained, with frequent releases (v0.1.30, v0.1.31 and v0.1.32 between 2026-10-13 and 2026-10-16). This indicates a fast iteration cycle, which is good for bug fixes but also means you must keep up with upgrades. The README does not provide a migration guide or upgrade path, so you might need to track changes manually. The license is MIT, which is permissive and allows commercial use, modification, and redistribution with attribution. This is a positive for adoption, but you should note that the project is in beta, so the API might change. The documentation is spread across the wiki and module READMEs, which adds to the learning curve. For maintenance, you will need to monitor the GitHub releases and possibly join the Discord to stay informed of breaking changes. There is no mention of a formal support contract, so you rely on the community.

Editorial conclusion

Adopt Canopy if you are a developer or organization looking to launch a new blockchain with Ethereum tooling compatibility and a recursive security model, and you are comfortable with a beta-stage codebase. Do not use it if you need a production-grade, battle-tested chain or if your use case requires complex smart contract functionality beyond native transfers. Before adoption, verify the current state of the Ethereum RPC compatibility notes in the fsm/ethereum.md file, review the recent beta releases for stability, and assess the size and activity of the community on Discord. The recursive architecture is promising but unproven at scale, so validate it against your specific chain's needs first.

Frequently asked questions

What is the Canopy Network?

A layer-one blockchain written in Go, MIT licensed, presenting an Ethereum remote-procedure-call compatible endpoint for native transfers so that existing exchange, wallet and indexer tooling can connect to it. The repository documents itself as five modules: a controller that coordinates the parts like a bus, a finite state machine that decides what is valid, a Byzantine-fault-tolerant consensus mechanism, encrypted peer-to-peer networking, and a persistence layer that stores the ledger and indexes past transactions.

how to run canopy

Build and start it with two commands: a make target that builds the binary along with its wallet and explorer, then the binary's start subcommand. There is a container path with targets to build the stack, bring it up in a faster variant or a plain one, and follow logs. The default branch was pushed to on 2026-10-21 and the newest release is a beta build of the zero-point-one series, so there is no stable version to pin.

Is Canopy open source?

The repository carries an MIT licence and the front page links the licence text. The contributing guide asks contributors to open pull requests against a development branch rather than the default one, and to discuss large or architectural changes on the project's chat server first.

what is recursive architecture in canopy

The overview says chains bootstrap each other into independence, forming what it calls an unstoppable web of utility and security, and that a seed chain started the recursive cycle. The front page presents this as a headline rather than a specification; the protocol details are on an external wiki and the repository documents the implementation of the five core modules. What is documented in the repository is the state machine, the consensus mechanism, the peer-to-peer layer and persistence.

how to install canopy plugins

Plugins live in their own directory and the build file has targets to build them (including Kotlin- and Go-specific ones) and a container run target per language: Kotlin, Go, TypeScript, Python and C sharp. The contributing guide asks you to discuss large changes with the team before writing them, and pull requests are expected to target a development branch rather than the default one.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/canopy-network-canopy.svg)](https://hysenlabs.com/projects/canopy-network-canopy)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/canopy-network-canopy.svg)](https://hysenlabs.com/projects/canopy-network-canopy)

Was this useful?