OFT Wizard is a project by Bootnode designed to simplify the development, deployment, and management of Omnichain Apps (OApp) applications using the LayerZero protocol. The project aims to provide more user-friendly tooling without requiring configuration files and plaintext private keys.
- Core Library: Shared logic for deploying, configuring, and interacting with OApps
- CLI Tool: Command-line interface for basic deployment and wallet management
- Wallet Management: Secure wallet handling without plaintext private keys
- Cross-Chain Messaging: Built-in support for sending arbitrary messages between deployed OApps
The primary goal of OFT Wizard is to provide developer-friendly tools that abstract away the complexity of:
- RPC configuration and management
- Wallet instantiation and security
- Peer configuration
- Message fee calculation
- Bytes and options handling for LayerZero protocol
All of these complexities are hidden from the user, allowing for a streamlined development experience.
- core: Core library containing shared logic and abstractions
- cli: Command-line interface for basic operations
This project uses the Solidity compiler via SVM (Solidity Version Manager). Please refer to the core README for detailed installation instructions.
The project requires RPC endpoints for the supported chains. Currently, these are configured in the Foundry configuration (foundry.toml
).
Note: This approach requires improvement as it currently requires API keys (like Alchemy) to be stored in plaintext. Future versions will address this security concern. The current api key is disabled.
# Clone the repository
git clone https://github.com/bootnode/oft_wizard.git
cd oft_wizard
# Build the project
cargo build --release
# Compile contracts
./target/release/cli compile
# Create a new wallet
./target/release/cli --chain base_sepolia wallet new
# Check wallet balance
./target/release/cli --chain base_sepolia wallet balance --path /path/to/wallet
# Deploy to multiple chains
./target/release/cli --chain base_sepolia deploy --path /path/to/wallet --chainlist optimism_sepolia arbitrum_sepolia
- Base Sepolia
- Optimism Sepolia
- Arbitrum Sepolia
- Gnosis Chiado
The example OApp from the LayerZero quickstart demonstrates string message passing, but the framework supports more complex use cases:
- Unicast: Send messages to a single destination
- Multicast: Send messages to multiple specified destinations
- Broadcast: Send messages to all peer contracts
These patterns can be used to implement various cross-chain applications beyond simple mint/burn token operations.
- REST API implementation using Axum
- Support for additional blockchains compatible with LayerZero (Solana, Aptos, etc.)
- Enhanced contract customization options
- Improved security for API key management
- Event listener agents for monitoring cross-chain messages
Contributions are welcome! Please feel free to submit a Pull Request.
This is an experimental project. Use at your own risk.