Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
Free 30-min Web3 Consultation
Book Consultation
Smart Contract Security Audits
View Audit Services
Custom DeFi Protocol Development
Explore DeFi
Full-Stack Web3 dApp Development
View App Services
LABS
Guides

How to Implement a Hub-and-Spoke Governance Model

This guide provides a technical blueprint for implementing a hub-and-spoke governance architecture. You will learn to design the central governance module, establish cross-chain communication, and manage the lifecycle of spoke chains.
Chainscore © 2026
introduction
ARCHITECTURAL GUIDE

How to Implement a Hub-and-Spoke Governance Model

A technical guide to designing and deploying a modular governance system where a central hub coordinates multiple autonomous subDAOs.

A hub-and-spoke governance model is a modular architecture for decentralized organizations. It centralizes high-level, cross-chain, or treasury decisions in a main governance hub while delegating operational authority to specialized subDAOs (spokes). This structure, used by protocols like Aave and Compound, balances cohesive strategy with operational agility. The hub typically controls the protocol's core smart contracts and treasury, while spokes manage specific domains such as grants, risk parameters, or development. This separation allows for focused expertise and faster iteration on individual components without requiring consensus from the entire, often slower-moving, main DAO.

Implementation begins with defining the authority boundaries between the hub and its spokes. The hub's authority is usually encoded in a smart contract, often using a governance module like OpenZeppelin's Governor. This contract holds the ultimate upgrade keys for the protocol. Spokes are then deployed as their own DAOs, using lighter-weight frameworks such as Snapshot for off-chain voting or a custom Governor contract. The critical technical step is establishing a secure message-passing bridge or permission registry that allows the hub to grant and revoke specific capabilities to spoke addresses, such as the ability to adjust certain parameters within a bounded range.

For example, a DeFi protocol might implement a Risk Spoke. The hub's Governor contract would execute a proposal to grant the Risk Spoke DAO the permission to call updateCollateralFactor() on the core lending contract, but only for a specific asset and within a predefined range (e.g., 65% to 85%). This can be implemented using an access control manager like OpenZeppelin's AccessControl. The hub holds the DEFAULT_ADMIN_ROLE and grants the RISK_PARAM_UPDATER role to the spoke's multisig or governance contract address. The core contract's function would then be guarded by a modifier like onlyRole(RISK_PARAM_UPDATER).

A robust implementation requires careful security and upgrade considerations. The hub must have a clear process to slash or revoke permissions from a malfunctioning or compromised spoke. Using timelocks on both hub and spoke actions is essential to prevent sudden, malicious parameter changes. Furthermore, the design should consider failure modes: what happens if a spoke becomes inactive? Protocols often implement guardian or pause mechanisms controlled by the hub to intervene in emergencies. The goal is to create a system where autonomy is granted but not irrevocable, preserving the hub's role as the final security backstop.

Successful deployment involves iterative testing and clear documentation. Start with a single, non-critical spoke (e.g., a Community Grants DAO) to test the permission flow and communication layer. Use a testnet deployment and simulate governance proposals for granting permissions and executing spoke actions. Document the exact scope of each spoke's authority in a publicly accessible constitution or mandate. This clarity prevents scope creep and ensures all participants understand the model's division of powers. Over time, the model can scale to include spokes for treasury management, protocol integrations, and ecosystem development, creating a scalable and resilient governance framework.

prerequisites
PREREQUISITES AND CORE CONCEPTS

How to Implement a Hub-and-Spoke Governance Model

A hub-and-spoke model centralizes decision-making in a core DAO (the hub) while delegating operational execution to specialized subDAOs (the spokes). This guide covers the core concepts and prerequisites for implementing this scalable governance structure.

The hub-and-spoke governance model is a hierarchical structure designed to scale decentralized autonomous organizations (DAOs). In this architecture, a central Hub DAO holds ultimate sovereignty and treasury control, while Spoke DAOs (or subDAOs) are granted specific, bounded authority to manage discrete operational areas like grants, protocol parameters, or marketing. This separation addresses the scalability limitations of monolithic DAOs by distributing execution without fragmenting final authority. It's a pattern adopted by protocols like Aave with its Aave DAO and various service DAOs, and Uniswap with its Uniswap DAO and Uniswap Grants subDAO.

Before implementation, you must establish the core smart contract foundation. The Hub is typically governed by a governance token (e.g., an ERC-20 with voting power) and a Governor contract (like OpenZeppelin's Governor or a Compound Governor fork) that processes proposals and executes on-chain transactions. Spokes are often instantiated as minimalist DAOs using frameworks such as Moloch v3, DAOhaus, or a custom Governor setup. The critical technical prerequisite is defining the permissioned bridge between them, usually via a module or shaman contract that the Hub deploys and controls, granting the Spoke specific permissions within a defined scope.

Key design decisions must be made upfront. You need to define the scope of authority for each Spoke: what treasury funds can it access, which smart contract functions can it call, and what are its spending limits? The proposal flow must also be designed: does a Spoke's proposal require final ratification by the Hub, or does it have autonomous execution within its guardrails? Furthermore, you must choose a cross-DAO communication method, which can range from simple permissioned function calls to more complex systems using inter-chain messaging like Axelar or LayerZero if the DAOs exist on different blockchains.

A common implementation pattern uses a Timelock contract as the central executor for the Hub, which also acts as the owner or admin for the protocol's core contracts. A Spoke's Governor contract is then configured with permissions to propose transactions to this Timelock, but only for a pre-approved set of target contracts and function selectors. For example, a 'Treasury Management' Spoke might only be allowed to call transfer() on a specific ERC-20 vault contract. This is enforced in the proposal validation logic, often within a custom governance module that acts as a gatekeeper for Spoke-originated proposals.

Finally, consider the human and process prerequisites. Successful hub-and-spoke governance requires clear off-chain documentation (like a constitution or charter) that delineates responsibilities. Community buy-in is essential for delegating power, and tools like Snapshot for off-chain voting and Tally or Boardroom for on-chain governance tracking are needed to manage the multi-layer process. Start with a single, well-defined Spoke as a pilot—such as a grants program—to test the security model and workflow before expanding the model to other operational domains.

key-concepts
HUB-AND-SPOKE GOVERNANCE

Core Architectural Components

A hub-and-spoke model centralizes security and upgrade logic in a core Hub contract, enabling a network of independent Spoke contracts to inherit governance control. This guide covers the key components for implementation.

03

Cross-Chain Messaging Layer

For Spokes on different chains, you need a secure messaging layer to relay governance decisions from the Hub. Key considerations:

  • Security: Use a validated bridge like Arbitrum's Nitro, Optimism's Bedrock, or a general message passing layer like LayerZero or Hyperlane.
  • Cost & latency: Factor in message verification costs and finality times, which can be 20 minutes for optimistic rollups.
  • Execution guarantees: Design for replay protection and failed message handling to ensure state consistency across chains.
06

Governance Analytics & Monitoring

Monitor the health of your governance system. Essential tools include:

  • Voter participation dashboards: Track proposal turnout and delegate activity using Tally or Boardroom.
  • Smart contract monitoring: Set up alerts for critical events (proposal created, large vote casts) with OpenZeppelin Defender or Chainlink Automation.
  • Gas cost analysis: Estimate execution costs for cross-chain proposals, which can exceed $500+ on L1. Proactive monitoring prevents stalled governance.
designing-hub-module
ARCHITECTURE

Step 1: Designing the Hub Governance Module

This step defines the central smart contract that coordinates proposals and voting across all connected chains in a hub-and-spoke governance system.

The Hub Governance Module is the core coordinator of a cross-chain governance system. It is deployed on a single, designated chain (e.g., Ethereum mainnet, Arbitrum) and is responsible for the canonical state of all governance actions. Its primary functions are to: - Receive and validate new proposals from any connected chain. - Aggregate and tally votes cast across all spokes. - Execute the final, binding decision on the hub chain. This centralization of final authority is critical for security and preventing double-spending of governance power.

A well-designed hub contract must manage two key data structures. First, a registry of approved spoke chain IDs and their associated bridge adapters (e.g., LayerZero's Endpoint, Wormhole's CoreBridge). This ensures only verified chains can participate. Second, it maintains the state of each Proposal, which includes a unique ID, the proposer's origin chain, the proposal calldata for execution, and status flags (Active, Passed, Executed). The hub must also enforce proposal lifecycle logic, such as quorum thresholds and voting periods.

Security is paramount. The hub must include robust access control, typically using OpenZeppelin's Ownable or a multisig for administrative functions like adding new spokes. More critically, it must have secure, trust-minimized message verification. This is achieved by integrating with a cross-chain messaging protocol like LayerZero, Axelar, or Wormhole. The hub contract will verify the authenticity of every incoming message by checking the proof provided by the relayer against the official protocol contracts. Never trust a plain msg.sender from another chain.

Here is a simplified skeleton of a hub contract's core state and functions:

solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@layerzero/contracts/interfaces/ILayerZeroEndpoint.sol";

contract GovernanceHub {
    struct Proposal {
        uint256 id;
        uint16 originChainId;
        address proposer;
        bytes executionPayload;
        uint256 forVotes;
        uint256 againstVotes;
        uint256 startTime;
        bool executed;
    }

    mapping(uint16 => bool) public isTrustedSpoke;
    mapping(uint256 => Proposal) public proposals;
    ILayerZeroEndpoint public lzEndpoint;

    event ProposalCreated(uint256 proposalId, uint16 originChain);
    event VoteTallied(uint256 proposalId, uint256 forVotes, uint256 againstVotes);

    function createProposal(uint16 _srcChainId, bytes calldata _payload, bytes calldata _adapterParams) external payable {
        // 1. Verify message via LayerZero
        // 2. Create new Proposal struct
        // 3. Emit ProposalCreated
    }
}

The final design consideration is gas efficiency and cost predictability. Since users on spoke chains will pay to send messages to the hub, the hub's functions should be optimized to minimize verification gas. Use immutable variables for static configs, pack structs efficiently, and consider implementing a gas oracle to estimate cross-chain fees. The hub should also emit clear events (like ProposalCreated, VoteTallied) that indexers and front-ends can use to track state without expensive on-chain queries. The next step is to design the Spoke modules that will interact with this hub.

establishing-communication
ARCHITECTURE

Step 2: Establishing Cross-Chain Communication

This section details the implementation of a hub-and-spoke model to coordinate governance actions across multiple blockchains.

A hub-and-spoke governance model centralizes decision-making on a primary chain (the hub) while enabling execution on connected chains (the spokes). This architecture is critical for cross-chain DAOs and multi-chain protocols like Axelar, which use it to manage upgrades and treasury actions. The hub, often deployed on a chain like Ethereum or Cosmos, hosts the core governance contracts. Spokes, which could be Layer 2s, app-chains, or other EVM networks, deploy lightweight client contracts or relayers that listen for and execute verified proposals from the hub.

Implementation begins with defining the cross-chain message format. A proposal's payload must be serialized into a standardized structure, such as the Inter-Blockchain Communication (IBC) packet or a generic ABI-encoded call. For EVM chains, this often involves encoding the target contract address, function selector, and calldata. The hub contract, after a proposal passes, does not execute directly. Instead, it emits an event or calls a cross-chain messaging protocol like LayerZero, Wormhole, or the Axelar Gateway to dispatch the encoded payload to the destination chain's address.

On the spoke chain, a verifier contract must be deployed to authenticate incoming messages. This contract validates the message's origin using light client state proofs or a trusted oracle network. For example, an Axelar Gas Service pays for execution, and an Axelar Executable contract receives the verified payload. The verifier then makes a low-level call to the target governance module (e.g., a Timelock or Governor contract) with the decoded function data. This ensures the execution is permissioned and trust-minimized, as only proposals ratified on the hub can trigger actions on spokes.

Key technical considerations include gas management and failure handling. The hub must account for gas costs on the destination chain, often facilitated by services that prepay fees. Proposals should include circuit breakers and grace periods on spokes to allow manual intervention if a cross-chain execution fails or is malicious. Monitoring the state of light clients and relayers is essential for security. Tools like The Graph can index cross-chain proposal states, and off-chain keepers can be set to retry failed transactions.

onboarding-spokes
TECHNICAL IMPLEMENTATION

Step 3: Implementing Spoke Chain Onboarding

This section details the technical process of adding a new blockchain as a spoke to your governance hub, covering smart contract deployment, configuration, and security validation.

Onboarding a new spoke chain begins with deploying the core governance adapter contracts on the target blockchain. This typically involves a factory pattern where a SpokeGovernorFactory contract deploys a SpokeGovernor instance. The spoke governor is the on-chain representation of your DAO on the new chain, responsible for receiving and executing cross-chain proposals. You must also deploy a bridge-specific message relayer, such as a Wormhole or LayerZero endpoint, which the spoke governor will trust to receive authenticated messages from the hub. Use a deterministic deployment proxy (like the CREATE2 opcode) to ensure the contract address is predictable and verifiable across all environments.

Once deployed, the spoke governor must be configured with the correct parameters to establish a secure link to the hub. This includes setting the hubChainId (the chain identifier of your main governance chain), the hubGovernor address, and the authorized relayer address for the cross-chain bridge. These values are immutable post-deployment to prevent governance hijacking. A critical step is registering the new spoke's chain ID and governor address with the hub's HubGovernor contract via an administrative function. This registration creates a bidirectional mapping, allowing the hub to recognize and route proposals to the new spoke.

Security validation is paramount. Before activating the spoke, conduct a series of verification steps. First, verify all contract bytecode on a block explorer like Etherscan. Next, execute test proposals on a testnet fork using tools like Foundry or Hardhat to confirm the entire flow: proposal creation on the hub, message bridging, execution on the spoke, and state reporting back to the hub. Key checks include validating that only the authorized relayer can call the executeProposal function and that the spoke governor correctly validates the origin chain and sender. Consider implementing a timelock on the spoke for high-value executions, adding a final safety layer.

Finally, establish monitoring and alerting for the new spoke. Since governance activity is low-frequency but high-impact, set up event listeners for the ProposalExecuted and CrossChainCallFailed events on the spoke governor. Use a service like The Graph to index these events or implement a simple bot using the Ethers.js library. The bot should watch for failed executions and alert your DevOps team. Document the new chain's RPC endpoints, block explorer links, and gas token requirements for executors in your project's documentation, ensuring all stakeholders can interact with the newly onboarded governance spoke.

upgrade-lifecycle
CHAIN LIFECYCLE

How to Implement a Hub-and-Spoke Governance Model

A hub-and-spoke model centralizes upgrade authority in a main chain (hub) to coordinate changes across multiple application-specific chains (spokes). This guide explains its architecture and implementation using Cosmos SDK and IBC.

A hub-and-spoke governance model is a hierarchical structure for managing a network of interconnected blockchains. In this design, a primary governance hub chain (like the Cosmos Hub) holds ultimate authority over protocol upgrades and parameter changes for itself and a set of dependent spoke chains (often application-specific chains or rollups). The hub validates and executes governance proposals, then uses a cross-chain communication protocol like IBC to propagate approved changes to the spokes. This centralizes critical decision-making, ensuring consistency, security, and coordinated evolution across the ecosystem, while allowing spokes autonomy over their internal application logic.

Implementing this model requires defining clear on-chain governance modules on both the hub and spokes. On the hub, you need a governance module capable of creating and voting on proposals that include cross-chain execution messages. The Cosmos SDK's x/gov module is a common foundation. Each spoke chain must implement a corresponding receiver module that accepts and authenticates incoming governance instructions from the hub. This is typically done via an IBC middleware layer that sits between the IBC core and the spoke's governance module, verifying packets originate from the authorized hub address before passing messages along.

The technical workflow involves several IBC components. When a governance proposal passes on the hub, it triggers the creation of an IBC packet. This packet contains the execution instruction, such as a software upgrade plan or a parameter change. The packet is sent over a dedicated IBC channel pre-established between the hub's governance module and the spoke's receiver module. The spoke's middleware validates the packet's origin and proof before submitting the embedded message to its own governance or upgrade module for execution. Light client verification on the spoke ensures the packet's validity without trusting a third party.

Key design considerations include security boundaries and upgrade flexibility. The hub's private key for signing governance packets must be meticulously secured, as its compromise could force unwanted upgrades on all spokes. Spokes can implement veto mechanisms or time-delayed execution to provide a safety net against malicious hub proposals. Furthermore, the model should allow for spoke opt-in/opt-out mechanisms, enabling new chains to join the governance umbrella and existing ones to leave if they wish to become fully sovereign. This balances cohesion with autonomy.

For developers, implementing a receiver module on a Cosmos SDK spoke chain involves creating an IBC-enabled Keeper. Below is a simplified scaffold showing how to authenticate and route an incoming governance packet:

go
func (k Keeper) OnRecvPacket(ctx sdk.Context, packet channeltypes.Packet) ([]byte, error) {
    var data types.GovPacketData
    if err := types.ModuleCdc.UnmarshalJSON(packet.GetData(), &data); err != nil {
        return nil, err
    }
    // Verify the packet is from the authorized hub channel
    if packet.GetSourceChannel() != k.authorizedHubChannel {
        return nil, sdkerrors.Wrap(types.ErrUnauthorized, "channel mismatch")
    }
    // Execute the governance instruction locally
    switch data.Action {
    case types.ActionSoftwareUpgrade:
        return k.handleUpgrade(ctx, data.Plan)
    case types.ActionParamChange:
        return k.handleParamChange(ctx, data.Changes)
    default:
        return nil, types.ErrUnknownAction
    }
}

Successful real-world patterns include the Cosmos Hub's relationship with Consumer Chains via the Interchain Security protocol, where the hub provides shared security and governance. Another example is a rollup settlement layer acting as a hub to coordinate upgrades for its rollups. When adopting this model, audit the IBC connection logic, establish clear off-chain social consensus processes alongside the on-chain code, and maintain rigorous documentation for spoke chain operators. The hub-and-spoke model reduces coordination overhead for ecosystem-wide upgrades but introduces a single point of failure for governance, making its design and operation critically important for network health.

slashing-coordination
IMPLEMENTING A HUB-AND-SPOKE MODEL

Step 5: Coordinating Slashing and Security

This guide details the technical implementation of a hub-and-spoke governance model, focusing on the critical mechanisms for slashing and security coordination across multiple blockchain networks.

A hub-and-spoke governance model centralizes security and dispute resolution in a primary hub chain, which coordinates a network of sovereign spoke chains. The hub's primary security function is to enforce slashing conditions—pre-defined rules that penalize malicious or faulty validators by seizing a portion of their staked assets. This model, inspired by designs like the Cosmos Hub and its Inter-Blockchain Communication (IBC) protocol, creates a security umbrella where the hub's economic security can be leveraged by connected spokes without each chain needing to bootstrap its own validator set from scratch.

Implementation begins with defining the slashing logic in the hub's state machine. This involves creating a SlashingModule smart contract or consensus module that tracks validator signatures and commitments across all connected spokes. For example, a double-signing condition would slash a validator if they sign two conflicting blocks at the same height on any connected chain. The hub must maintain a light client for each spoke to verify these fraudulent proofs. A basic slashing condition in a Solidity-based hub might check a submitted Merkle proof against a stored header.

Coordination is managed through interchain accounts (ICAs) or cross-chain query modules. When a slashing condition is met on a spoke chain, that chain's governance module or a designated relayer submits a proof-of-fraud transaction to the hub. The hub verifies the proof using the spoke's light client, then executes the slashing logic on the offending validator's stake held in the hub. This action is then communicated back to all connected spokes, which may choose to jail the validator locally, ensuring a synchronized security state. Tools like the Cosmos SDK's x/ibc and x/slashing modules provide the foundational primitives for this communication.

Security parameters must be carefully calibrated. Key variables include the slash fraction (e.g., 5% of stake for downtime, 100% for double-signing), the unbonding period (during which slashing can still occur), and the jail duration. These are typically set via the hub's governance. The model's robustness depends on the hub's own security; a compromise of the hub could lead to unjust slashing across the entire network. Therefore, the hub must maintain a highly decentralized and valuable validator set, often requiring a significant minimum stake like 100,000 ATOM in the Cosmos ecosystem.

For developers, implementing this requires integrating IBC or a similar cross-chain messaging protocol. The workflow is: 1) Deploy the slashing module on the hub with defined conditions, 2) Establish IBC connections with light client state for each spoke, 3) Implement the logic on spokes to package and forward slashing evidence, and 4) Create governance proposals to manage parameters. Testing is critical and should involve a multi-chain testnet simulating various Byzantine validator behaviors to ensure slashing triggers correctly and funds are securely burned or redistributed.

ARCHITECTURE

Implementation Comparison: Cosmos vs. Polkadot

A technical comparison of the two primary frameworks for building sovereign blockchains with shared security, detailing their core architectural approaches to hub-and-spoke governance.

Governance FeatureCosmos Hub (IBC)Polkadot Relay Chain

Sovereignty Model

Full sovereignty for zones/app-chains

Shared security via parachain slots

Consensus Finality

Tendermint BFT (~6 sec)

BABE/GRANDPA (~12-60 sec)

Interoperability Protocol

IBC (Inter-Blockchain Communication)

XCMP (Cross-Consensus Message Passing)

Hub Governance Scope

Cosmos Hub params, ATOM staking

Relay Chain upgrades, parachain auctions

Spoke Chain Upgrade Control

Independent, governed by spoke validators

Requires Relay Chain governance approval for major changes

Slashing Jurisdiction

Local to each sovereign chain

Centralized on Relay Chain for parachains

Fee Model for Security

None (zones pay for own security)

Parachain slot lease (DOT bond + auction)

Native Asset for Staking

ATOM (Cosmos Hub)

DOT (Polkadot Relay Chain)

HUB-AND-SPOKE GOVERNANCE

Frequently Asked Questions

Common technical questions and implementation challenges for developers building cross-chain governance systems using a hub-and-spoke model.

A hub-and-spoke governance model uses a central governance hub (often on a primary chain like Ethereum) to coordinate decisions across multiple spoke chains (like Arbitrum, Optimism, or Polygon). The hub holds the canonical state of proposals and votes. Spokes run lightweight governance client contracts that mirror this state via cross-chain messaging protocols like Axelar, Wormhole, or LayerZero.

Key Components:

  • Hub Contract: The source of truth for proposal lifecycle (create, vote, execute).
  • Spoke Adapter: A contract on each spoke that receives and validates messages from the hub.
  • Cross-Chain Messaging: The secure transport layer that relays state changes.
  • Execution Module: Logic on the spoke to enact passed proposals (e.g., upgrading a contract, releasing funds).

This architecture centralizes complex logic and security on the hub while enabling permissionless execution across the ecosystem.

conclusion
IMPLEMENTATION SUMMARY

Conclusion and Next Steps

You have now learned the core architecture and implementation steps for a hub-and-spoke governance model. This section summarizes the key takeaways and provides resources for further development.

A successful hub-and-spoke governance system balances decentralized autonomy with coordinated security. The hub contract, often deployed on a Layer 1 like Ethereum, acts as the root of trust, managing a registry of valid spoke chains and facilitating cross-chain message passing via a protocol like Axelar or Wormhole. Each spoke, which could be an application-specific rollup or a separate blockchain, maintains its own Governor contract that defers final authority to the hub for major upgrades or security actions. This structure allows teams to iterate quickly on their spoke while inheriting the collective security and dispute resolution of the main hub community.

For production deployment, rigorous testing is non-negotiable. Your next steps should include: 1) Deploying the full system to a testnet (e.g., Sepolia, Arbitrum Sepolia) and simulating governance proposals, 2) Conducting audits on both the hub's upgrade mechanics and the spoke's cross-chain validation logic, and 3) Establishing a bug bounty program to incentivize external security reviews. Tools like Foundry's forge and cast are essential for writing comprehensive integration tests that simulate malicious proposals and failed cross-chain calls.

To extend this model, consider implementing more advanced features. Time-locked upgrades can add a safety delay for hub-originated changes to spokes. A fallback committee of trusted entities can be empowered to halt the system in case of a critical vulnerability. For deeper analysis, study live implementations such as Optimism's Governance V2, which uses a hub (the "Protocol Council") to secure its superchain of Layer 2s, or Cosmos SDK chains utilizing Interchain Security. Continue your research with the OpenZeppelin Governor documentation and the Axelar General Message Passing guide.

How to Implement a Hub-and-Spoke Governance Model | ChainScore Guides