Guild Network is (currently) an experimental Layer 1 blockchain that aims to decentralize a subset of Guild.xyz's functionality. In a nutshell, if you are unfamiliar with Guild.xyz, it provides a tool to build and manage token-gated communities. Anybody can create their own guild and fill it up with custom roles that users may obtain within the community. These roles are usually tied to certain requirements that users need to meet in order to get them.
Checking requirements is a fundamental building block that may need verification data external to Guild Network. Like most blockchains out there, Guild Network in itself is a closed system that cannot interact with the outer world by itself. Therefore, Guild Network relies on a (currently) permissioned oracle network that listens to on-chain events and fetch external data for checking requirements. For now, the oracle network can only retrieve data (token balances) from EVM blockchains.
The repository, originally forked
from Parity's substrate-node-template
,
consists of crates that implement the described functionality above. Here's a
list with a brief overview for each crate:
- a node needs the following to join the network
gn-node
- a full-fledged, Substrate-based blockchain node that can enter the network and participate in the decentralization of its functionalitygn-runtime
- a modular, updatable, WASM-compatible runtime that describes the blockchain state and how it is modified via submitted transactionsgn-pallets
- pallets are essentially pluggable extensions for the runtime that customize how the runtime behavespallet-guild
- this is the pallet through which users can submit their Guild-related transactionspallet-oracle
- this is the pallet through which oracle operators can interact with the network
gn-api
- essentially a wrapper around a subxt client that connects to network nodes for queries an submitting transactionsgn-cli
- CLI for interacting with a network node or running an oracle nodegn-wasm
- WASM wrappers around logic ingn-api
used by the front-end applicationgn-engine
- logic for creating requirements and verifying themgn-common
- common types, functions and wrappers that are used in most crates abovegn-test-data
- dummy test data for integration tests
The chain is currently in a free-to-use demo stage that doesn't require any funds to interact with. However, you should always keep your private keys secret and maintain healthy caution when trying the demo.
NOTE Guild Network is in alpha state and we are continuously working on perfecting it. Expect bugs and even outages to the service while we strive toward a decentralized solution that nobody can just switch off.
At the time of suspending active development, the state of the repo is as follows:
Most recent changes can be found on branch I137-oracle-refactor
. The goal of
this branch is to modify the oracle nodes such that it supports an identity
service along with checking requirements. The identity service should be
responsible to check whether non-crypto identities (e.g. Discord, Telegram)
belong to a given user.
Users can submit identity registration requests in pallet-guild-identity
.
This pallet has been split from the original pallet-guild
which is now
solely responsible for creating/managing and joining guilds.
The main part missing is the oracle refactor itself.
Related issues: