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

Setting Up Cross-Protocol Proposal Standards

A technical guide for developers to define a common template and JSON schema for governance proposals, enabling automated parsing and streamlined analysis across different DAOs.
Chainscore © 2026
introduction
INTRODUCTION

Setting Up Cross-Protocol Proposal Standards

A guide to establishing interoperable governance frameworks across different blockchain protocols.

Cross-protocol proposal standards define a common language for governance actions, enabling decentralized autonomous organizations (DAOs) and communities to coordinate across different blockchains. Without such standards, a proposal to allocate funds from a DAO treasury on Ethereum to a grant program on Optimism requires custom, error-prone integration work. These standards aim to create a shared interface—similar to ERC-20 for tokens—that allows governance systems to understand and execute actions on foreign chains. The core challenge is abstracting away chain-specific details while preserving security and intent.

The technical foundation for these standards is the Inter-Blockchain Communication (IBC) protocol and generalized cross-chain messaging systems like LayerZero and Axelar. These act as the transport layer, but a proposal standard defines the payload. A well-structured cross-chain proposal typically includes: a target chain identifier, a destination contract address, calldata for the function to execute, and value to transfer. Standards like OpenZeppelin's Governor with cross-chain extensions or Compound's cross-chain governance model provide blueprints for structuring this data so it can be verified and executed trust-minimally on the destination.

Implementing these standards requires careful smart contract architecture. Your base governance contract on the source chain (e.g., an OpenZeppelin Governor contract) must be equipped with a module that can format proposals according to the standard and relay them via a secure messaging layer. On the destination chain, you need a corresponding executor contract that is permissioned to only accept and execute messages from the verified source chain governor. This often involves using LayerZero's OApp standard or Axelar's Gateway contracts to handle the cross-chain authentication, ensuring only your DAO can trigger actions.

Security is the paramount concern. You must audit the entire message flow for replay attacks, message forgery, and execution griefing. Key practices include implementing nonces on messages, verifying the sender's chain and contract address on the destination, and building in timelocks or grace periods for cross-chain actions to allow for community veto. It's also critical to have a clear failure recovery plan, as cross-chain transactions can revert or get stuck; this often involves escape hatches managed by a separate, more secure multisig.

The end goal is interoperable governance. With a cross-protocol standard in place, a DAO can seamlessly vote to deploy a liquidity mining program on Arbitrum, upgrade a bridge contract on Polygon, or even coordinate with another DAO on Base for a joint initiative—all through a single, familiar proposal interface. This reduces fragmentation, unlocks complex multi-chain strategies, and moves the ecosystem toward a cohesive network of sovereign yet connected communities.

prerequisites
CROSS-PROTOCOL FOUNDATIONS

Prerequisites

Essential technical setup and conceptual understanding required to implement cross-protocol governance standards.

Before implementing cross-protocol proposal standards, you need a foundational development environment. This includes Node.js (v18+ recommended) and a package manager like npm or yarn. You'll also need access to a command-line interface and a code editor such as VS Code. For blockchain interaction, install essential libraries: ethers.js or viem for Ethereum Virtual Machine (EVM) chains, and @solana/web3.js for Solana. A basic understanding of Git for version control is also assumed for managing your proposal code and configurations.

A core prerequisite is a working knowledge of smart contract development and the specific governance frameworks you intend to bridge. You should be familiar with the proposal lifecycle—submission, voting, and execution—in at least one major protocol like Compound Governor Bravo, OpenZeppelin Governor, Aave's Governance v2, or Uniswap's Governor. Understanding the data structures of a proposal (e.g., targets, values, calldata) and the security models (timelocks, guardians) is critical for creating accurate cross-chain representations.

You must have access to blockchain networks for testing and deployment. Set up wallets with test funds on relevant testnets: Sepolia or Goerli for Ethereum, Polygon Mumbai, Arbitrum Sepolia, and Solana Devnet. Use environment variables (e.g., via a .env file) to manage private keys and RPC endpoints securely. Tools like Alchemy, Infura, or QuickNode provide reliable RPC access. For local development, consider running a Hardhat or Foundry node to simulate EVM chains and test contract interactions without cost.

Finally, grasp the core challenge of cross-chain messaging. You don't need to build a bridge from scratch, but you must understand how to interact with existing arbitrary message bridges like Wormhole, LayerZero, or Axelar. This involves understanding concepts like Gas Abstraction for paying fees on the destination chain and Relayers that facilitate message passing. Your setup should include the SDKs for your chosen messaging protocol to encode, send, and receive governance payloads across chains.

key-concepts-text
CORE CONCEPTS FOR A UNIVERSAL SCHEMA

Setting Up Cross-Protocol Proposal Standards

A guide to establishing interoperable governance standards that enable proposals to be created, verified, and executed across different blockchain protocols.

Cross-protocol proposal standards define a common data schema and lifecycle for governance actions, enabling interoperability between DAOs, Layer 2 networks, and application-specific chains. The core challenge is creating a universal schema that can encapsulate the intent of a proposal—such as a treasury spend, parameter change, or smart contract upgrade—in a way that is both human-readable and machine-verifiable across diverse execution environments. This involves standardizing fields like title, description, actions[], executor, and metadata while allowing for protocol-specific extensions. Projects like OpenZeppelin's Governor and Compound's governance system serve as foundational references, but a cross-chain standard must abstract further to be chain-agnostic.

Implementing these standards requires a multi-layered approach. The specification layer defines the schema using formats like JSON Schema or Protocol Buffers, ensuring type safety and validation rules. The transport layer handles how proposals are submitted and relayed, potentially using generic message-passing protocols like LayerZero or Axelar. Finally, the verification layer is critical: it must cryptographically verify that a proposal's on-chain execution matches its off-chain intent, often using zero-knowledge proofs or optimistic verification schemes. This separation of concerns allows the proposal's content to remain constant while the mechanics of voting and execution adapt to the target chain's rules.

A practical implementation involves creating a core interface. For example, a CrossChainProposal struct in Solidity might include bytes32 proposalId, address author, string ipfsCID for the detailed specification, and bytes[] calldata actions. The corresponding off-chain JSON schema stored on IPFS would define each action's target contract, function selector, and arguments. Tools like The Graph can index these proposals across chains, providing a unified query interface. The key is ensuring the off-chain schema is the single source of truth, with on-chain transactions serving as verifiable attestations to its execution, creating a robust audit trail from discussion to implementation.

STANDARDIZATION ANALYSIS

Proposal Field Comparison Across Major DAOs

A comparison of required and optional fields for governance proposals across leading DAO frameworks, highlighting fragmentation.

Proposal FieldCompound GovernanceAave GovernanceUniswap GovernanceArbitrum DAO

Title

Required

Required

Required

Required

Description / Summary

Required

Required

Required

Required

Discussion Forum Link

Required

Required

Required

Required

Executable Code / Calldata

Required

Required

Required

Required

Voting Options

For/Against/Abstain

For/Against/Abstain

For/Against

For/Against/Abstain

Proposal Type Metadata

On-Chain Treasury Impact

Formatted Specification (e.g., BIP)

Minimum Voting Period

2 days

3 days

7 days

8 days

Minimum Timelock Delay

2 days

7 days

~72 hours

step-1-define-core-schema
FOUNDATION

Step 1: Define the Core JSON Schema

A well-defined JSON schema is the foundational contract for cross-protocol governance, ensuring proposals are machine-readable and interoperable across different DAO frameworks.

The first step in creating a cross-protocol proposal standard is to define a core JSON schema. This schema acts as a universal data model that any governance system—whether it's Compound Governor, OpenZeppelin's Governor, or a custom DAO—can understand. The schema must capture the essential metadata and execution logic of a proposal without being tied to a specific implementation. Key fields include a unique id, a title, a description, the target network (e.g., mainnet, arbitrum), and the proposer's address. This structure ensures basic discoverability and attribution across platforms.

Beyond metadata, the schema must standardize the proposal's executable actions. This is done within an actions array, where each object specifies a target contract, a value in wei, the calldata for the function call, and the function signature. For example, an action to transfer funds via a Safe wallet would include the Safe's address as the target and the encoded data for the execTransaction function. Standardizing this format allows any client to decode and simulate the proposal's on-chain effects, which is critical for security review and voter comprehension.

To ensure flexibility and future-proofing, the schema should include an extensions object. This allows for protocol-specific data, such as Snapshot strategy parameters, Tally vote settings, or custom proof-of-humanity requirements, to be attached without breaking the core structure. Adopting a versioning system (e.g., "schemaVersion": "1.0.0") is also crucial. It lets the standard evolve—adding new fields or deprecating old ones—while maintaining backward compatibility, so older proposals remain valid and parsable by updated systems.

step-2-standardize-metadata
INTEROPERABILITY

Step 2: Standardize Metadata for Discovery

Define a common schema for proposal data to enable seamless indexing and discovery across different governance platforms and blockchains.

Governance proposals are currently siloed by platform, with each DAO framework—like Compound Governor, OpenZeppelin Governor, or Aave's ecosystem—using its own metadata format. This fragmentation makes it impossible for a single interface or aggregator to reliably discover, index, and display proposals from multiple sources. The solution is to establish a cross-protocol metadata standard. This standard acts as a universal language, describing a proposal's core attributes—title, description, voting options, timestamps, and links—in a consistent way that any client can parse.

A practical standard to adopt or extend is EIP-4824: Common Interfaces for DAOs. This Ethereum Improvement Proposal defines a JSON schema for a DAO's basic metadata, including its purpose and governance structure. For proposals specifically, we recommend a schema that includes essential fields: a unique id (often the on-chain proposal ID), title, description (in Markdown), discussion (a URL to the forum thread), choices (an array of voting options), and start/end timestamps. This structure ensures that whether a proposal originates on Arbitrum, Optimism, or Ethereum mainnet, its core information is accessible in the same format.

Implementing this standard involves two key actions. First, proposal creators must adhere to the schema when drafting their metadata, typically when creating a proposal via a smart contract or a front-end that posts to IPFS or Arweave. Second, indexers and front-ends (like Tally, Boardroom, or a custom dashboard) must be built to read this standardized format. By decoupling the data layer from the application layer, you enable a ecosystem where new analytics tools, notification bots, and governance aggregators can be built on top of a unified data source, dramatically improving discoverability and user experience across the entire multi-chain landscape.

step-3-handle-executable-actions
CROSS-PROTOCOL PROPOSAL STANDARDS

Step 3: Structure Executable On-Chain Actions

Define a standard format for proposals that can trigger transactions across multiple smart contract platforms, enabling complex governance operations.

An executable on-chain action is a structured data object that defines a specific transaction or function call. To enable cross-protocol governance, you need a standard that can encode operations for different blockchains and smart contract environments, such as Ethereum, Arbitrum, or Polygon. The core components of an action are the target chain identifier, the target contract address, the calldata for the function call, and the value (in native tokens) to send. This structure allows a single proposal to bundle multiple discrete transactions into one voteable unit.

The EIP-712 standard for typed structured data signing is a foundational tool for this. It allows you to define a schema for your action, making the data human-readable when users sign it with their wallet. For example, a schema for a cross-chain action could include fields like chainId, to, data, and value. By standardizing the schema, you ensure that off-chain relayers or on-chain executors can correctly interpret and forward the action to its destination, whether it's minting tokens on an L2 or changing a parameter in a DAO's treasury contract on mainnet.

In practice, you implement this by creating an Action struct in your proposal smart contract. Here's a simplified Solidity example:

solidity
struct Action {
    uint256 chainId;
    address target;
    uint256 value;
    bytes data;
}

A proposal would then contain an array of these Action structs. The execution logic, often guarded by a timelock or multisig, iterates through this array. For actions targeting other chains, the executor must be a relayer or a cross-chain messaging contract like Axelar's GeneralMessagePassing or LayerZero's Endpoint.

Security is paramount when actions can move funds or change critical parameters. Implement action simulation using tools like Tenderly or the eth_call RPC method to dry-run transactions before they are queued for execution. Additionally, consider adding action guards—pre-execution checks that revert if conditions aren't met, such as a minimum token balance in a treasury. Standards like OpenZeppelin's Governor contract with a TimelockController provide a secure foundation, where passed proposals are queued as a batch of actions and executed after a mandatory delay.

Finally, for maximum interoperability, align your action standard with emerging frameworks. The EIP-5792 draft for "Multi-chain, Multi-account Transactions" and ERC-7504 for "Dynamic Contracts" explore similar concepts. By adopting or contributing to these standards, your governance system can remain compatible with future tooling and infrastructure, reducing fragmentation in the multi-chain ecosystem and making it easier for delegates to understand the full impact of their votes.

step-4-implement-versioning-storage
CROSS-PROTOCOL STANDARDS

Step 4: Implement Versioning and Storage

This step defines how to structure, version, and persistently store governance proposals to ensure compatibility and auditability across different DAO frameworks.

A robust versioning system is critical for managing upgrades and ensuring backward compatibility. Define a clear semantic versioning scheme (e.g., v1.2.0) within your proposal's metadata. This should be stored in a top-level field like specVersion. The version should increment for breaking changes (MAJOR), new features (MINOR), or patches (PATCH). This allows client applications, like a shared governance dashboard, to correctly parse and display proposals from different DAO tooling stacks, such as OpenZeppelin Governor, Compound's Governor Bravo, or Aragon OSx.

The proposal's core data must be stored immutably and accessibly. For on-chain proposals, the canonical state resides in the smart contract. However, for complex metadata—including title, description, discussion links, and off-chain vote proofs—you should use decentralized storage. The standard approach is to store a URI pointer on-chain (e.g., in the proposalURI field) that resolves to a JSON file on IPFS or Arweave. This JSON document should follow a defined schema, including fields for title, description, discussions (a URL to a forum post), and actions, which is an array of the executable transactions the proposal will enact if passed.

The actions array is the most technically critical component for cross-protocol execution. Each action object must standardize the representation of a transaction: target (contract address), value (in wei), signature (function signature like transfer(address,uint256)), and calldata (ABI-encoded parameters). By adhering to a common structure here, different DAO execution environments can decode and execute the same proposal payload. For example, a proposal created via Tally's interface could be executed by Safe's Zodiac module, provided they both implement the same action standard.

To future-proof your system, design the storage schema with extensibility in mind. Include a metadata field for custom, non-critical data specific to a particular DAO or client. Use a registry contract or a well-known IPNS name to publish the latest version of the proposal specification schema. This allows ecosystems to evolve without breaking existing proposals. Tools like the OpenZeppelin Governor already use a similar pattern, where proposal details are stored off-chain via IPFS, and the on-chain contract holds only the hash for verification.

Finally, implement validation and tooling. Create lightweight libraries in JavaScript/TypeScript and Solidity to generate and validate proposal objects against your schema. Publish these as npm packages and as verified smart contracts. This reduces integration friction and ensures that a proposal created for a DAO on Polygon using Aragon can be reliably read and executed by a DAO on Arbitrum using a different governor implementation, enabling truly interoperable governance.

implementation-examples
PROPOSAL STANDARDS

Implementation Examples and Libraries

Explore established frameworks and libraries for implementing cross-protocol governance proposals, from foundational specifications to production-ready tooling.

CROSS-PROTOCOL GOVERNANCE

Frequently Asked Questions

Common questions and troubleshooting for developers implementing cross-chain proposal standards like OpenZeppelin Governor, Compound Governor, and Aave's cross-chain governance system.

This error occurs when the execution delay on the destination chain's Timelock contract has not been satisfied. Cross-chain governance requires precise timing coordination.

Common causes:

  • The proposal's eta (earliest time of execution) was calculated using the source chain's block timestamp, not the destination chain's.
  • The relayer (e.g., Axelar, Wormhole, LayerZero) experienced latency, causing the execution call to arrive before the delay elapsed.
  • The proposal was queued on the source chain but the corresponding transaction to schedule on the destination chain failed or was delayed.

How to fix:

  1. Use a Chainlink Oracle or similar to fetch the destination chain's block timestamp when calculating the eta.
  2. Implement a retry mechanism in your executor contract to check isOperationPending(id) before attempting execution.
  3. Increase the buffer between queue and execute calls to account for bridge latency (e.g., add 30 minutes to the timelock delay).
conclusion-next-steps
IMPLEMENTATION GUIDE

Conclusion and Next Steps

You have configured a cross-protocol governance standard. This section outlines how to deploy it, integrate with existing systems, and explore advanced features.

Your setup of a cross-protocol proposal standard using frameworks like OpenZeppelin Governor and Compound's Autonomous Proposals establishes a foundation for interoperable governance. The next step is deployment and integration. Begin by deploying your custom CrossChainGovernor contract to your primary chain (e.g., Ethereum Mainnet). Use a verified block explorer like Etherscan to publish the source code, which is critical for transparency and security audits. Configure the contract's voting delay, voting period, and quorum based on your community's needs, typically starting with conservative values like a 2-day voting period and a 5% quorum.

Integration with existing DAO tooling is essential for user adoption. Connect your new governor contract to front-end interfaces such as Tally or Boardroom. Ensure your token's ERC20Votes or ERC721Votes implementation is correctly linked so these platforms can read voting power. For cross-chain execution, you must fund and monitor the Axelar or Wormhole relayer account you configured to pay for gas on destination chains. Set up off-chain indexers or use a service like The Graph to track proposal states and votes across all connected chains in a unified dashboard.

To advance your system, consider implementing more sophisticated features. Gasless voting via meta-transactions with a relayer can significantly increase participation. Explore proposal delegation strategies that allow token holders to delegate their cross-chain voting power to experts. For high-security operations, integrate a timelock controller for all executed transactions, adding a mandatory delay between proposal passage and execution. Continuously monitor key metrics: proposal creation frequency, cross-chain vote turnout, and execution success rates on destination chains using tools like Dune Analytics.

The landscape of cross-chain messaging is rapidly evolving. Stay updated on new security models and audit reports for bridges like LayerZero and Hyperlane. Participate in governance forums for the standards you've adopted, such as the EIP-4824 (DAO JSON-LD) community, to contribute to future iterations. Your implementation is not a set-and-forget system; it requires active maintenance, community education, and iterative upgrades based on real-world usage data to remain secure and effective in coordinating a multi-chain organization.