Meridian is a cross-chain governance solution that enables Solana-based DAOs to control assets and execute transactions on EVM chains through secure, multi-party approval processes.
Meridian bridges the gap between Solana and Ethereum-based chains by leveraging:
- Squads Multisig for secure on-chain governance on Solana
- Wormhole Protocol for secure cross-chain messaging
- Smart Contract Architecture for trustless execution across blockchains
- Decentralized Governance: Use Squads multisig for robust multi-party approval workflows
- Cross-Chain Execution: Execute arbitrary transactions on EVM chains from Solana
- Flexible Authorization: Configurable permissions and security controls
- Verifiable Messaging: Secure message passing via Wormhole Guardian network
- Chain-Agnostic Design: Support for Ethereum and all EVM-compatible chains
Meridian consists of three core components:
-
Solana Controller
- Anchor program interfacing with Squads multisig
- Manages proposals for cross-chain transactions
- Handles Wormhole message emission
-
Wormhole Bridge
- Secures and validates cross-chain messages
- Guardian network signs messages to ensure validity
-
EVM Executor
- Smart contract receiving Wormhole messages
- Validates signatures and permissions
- Executes approved transactions on EVM chains
- Solana: Anchor framework, Rust programming language
- EVM Chains: Solidity, Hardhat development environment
- Bridges: Wormhole protocol for cross-chain communication
- Client: TypeScript SDK for integration and demonstrations
- Program ID:
G6sHax1H3nXc5gu8YzPmgntbQR5e1CWMqYg1ekZmjDTd
- Emitter Address:
0x2952a9693e82b80b49372ef94efdec6cc0ebd50ed23d2c01b3e3a365aedf375b
- Executor Contract:
0xbD19c5D932AB9b15AbF7Ce1C6D352909213dc8da
- Test Target Contract:
0xF3D2A93eb650c3E55638ba31da3CC249ef1a6956
- Node.js v16+ and Yarn
- Rust and Cargo
- Solana CLI tools
- Anchor Framework
- Access to Solana Devnet and Ethereum Holesky
# Clone the repository
git clone https://github.com/akshatcoder-hash/meridian.git
cd meridian
# Install dependencies
yarn install
# Build the Solana program (if modifying)
cd programs/meridian
anchor build
Create a .env
file in the root directory with:
# Solana
SOLANA_RPC_URL=https://api.devnet.solana.com
# Ethereum
ETHEREUM_RPC_URL=https://ethereum-holesky.publicnode.com
PRIVATE_KEY=your_ethereum_private_key_here
The demo script showcases the complete flow from proposal creation to cross-chain execution:
# Run the simple demo
npx ts-node scripts/simple-demo.ts
This will:
- Create a Squads multisig (if needed)
- Initialize Meridian with the multisig
- Create a cross-chain proposal to update a message on Ethereum
- Approve the proposal with multiple signers
- Execute the proposal, sending a message through Wormhole
cd programs/meridian
anchor deploy --provider.cluster devnet
cd evm
npx hardhat run scripts/deploy.ts --network holesky
- Multi-Signature Approval: All cross-chain messages require multi-party authorization
- Guardian Validation: Wormhole Guardian network validates cross-chain messages
- Contract Allowlisting: Only pre-approved contracts can be called by the executor
- Replay Protection: Each message can only be executed once
- Pausable Operation: Emergency pause functionality for security incidents
- Relayer Network: Automatic message delivery between chains
- Enhanced Permissioning: Role-based access control for specific actions
- Token Bridge Support: Native token transfers with governance approvals
- Multi-Chain Support: Extend to additional blockchain ecosystems
- Frontend Interface: Develop a web interface for governance management
Contributions are welcome! Please feel free to submit a pull request.
This project is licensed under the MIT License.
- Squads for their Solana multisig implementation
- Wormhole for cross-chain messaging infrastructure
- Solana Foundation
- Ethereum Foundation