layerzero-bridge — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited layerzero-bridge (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The most complete LayerZero V2 MCP server available. 20 tools covering every LayerZero integration surface: low-level EndpointV2 messaging, OFT token transfers, Stargate V2 native bridging (ETH/USDC/USDT via StargatePoolNative contracts), and the new Value Transfer API (unified quotes across 130+ chains including Solana).
| Service | URL | Description |
|---|---|---|
| LayerZero MCP | https://layerzero-mcp.tenzro.network/mcp | LayerZero MCP Server (port 3006) |
For local development, use http://localhost:3006/mcp.
LayerZero is an omnichain interoperability protocol enabling cross-chain messaging between 130+ blockchains. V2 uses EndpointV2 contracts with configurable security (DVNs) and execution (Executors).
Key concepts:
Supported Chains (16 chains):
| Chain | EID | RPC |
|---|---|---|
| Ethereum | 30101 | eth.llamarpc.com |
| Arbitrum | 30110 | arb1.arbitrum.io/rpc |
| Optimism | 30111 | mainnet.optimism.io |
| Polygon | 30109 | polygon-rpc.com |
| BSC | 30102 | bsc-dataseed.binance.org |
| Avalanche | 30106 | api.avax.network/ext/bc/C/rpc |
| Base | 30184 | mainnet.base.org |
| Solana | 30168 | api.mainnet-beta.solana.com |
| zkSync | 30165 | mainnet.era.zksync.io |
| Sei | 30280 | evm-rpc.sei-apis.com |
| Sonic | 30332 | rpc.soniclabs.com |
| Berachain | 30362 | rpc.berachain.com |
| Story | 30364 | rpc.story.foundation |
| Monad | 30390 | rpc.monad.xyz |
| MegaETH | 30398 | rpc.megaeth.com |
| Tron | 30420 | api.trongrid.io/jsonrpc |
#### lz_quote_fee Estimate cross-chain messaging fee via EndpointV2.quote().
Parameters:
src_chain (string, required) — Source chain name (e.g. "ethereum")dst_eid (u32, required) — Destination endpoint IDmessage_hex (string, optional, default "0x") — Message payloadoptions_hex (string, optional) — Encoded options (default: 200k gas lzReceive)sender_hex (string, optional) — Sender addressReturns: Native fee and LZ token fee in Wei.
#### lz_send_message Build cross-chain message transaction data for EndpointV2.send().
Parameters:
src_chain (string, required) — Source chaindst_eid (u32, required) — Destination EIDreceiver (string, required) — Destination receiver (bytes32 hex)message_hex (string, required) — Message payloadoptions_hex (string, optional) — Encoded optionsReturns: Hex-encoded transaction calldata.
#### lz_track_message Track cross-chain message status via LayerZero Scan API.
Parameters:
tx_hash (string, required) — Source transaction hashReturns: Message status (INFLIGHT / CONFIRMING / DELIVERED / FAILED / BLOCKED), source/destination chains, GUID.
#### lz_get_message Get message details by GUID.
Parameters:
guid (string, required) — Message GUIDReturns: Full message details.
#### lz_oft_quote Quote an OFT token transfer fee.
Parameters:
src_chain (string, required) — Source chain namedst_chain (string, required) — Destination chain nameamount (string, required) — Amount to transfertoken_symbol (string, required) — Token symbolReturns: Fee quote, estimated delivery time.
#### lz_oft_send Build OFT send() calldata with automatic fee quoting. OFT V2 uses uint64 amountSD (shared decimals).
Parameters:
src_chain (string, required) — Source chain namedst_chain (string, required) — Destination chain nameoft_address (string, required) — OFT contract address on source chainrecipient (string, required) — Recipient address (20 bytes EVM)amount (string, required) — Amount in shared decimals (amountSD, uint64)min_amount (string, optional) — Minimum acceptable in shared decimals (minAmountSD, uint64, default: 90% of amount)gas_limit (u128, optional) — lzReceive gas on destination (default: 200000)Returns: Hex calldata for OFT.send(), msg.value, quoted fee, amount_sd received.
#### lz_oft_list List available OFT tokens across all chains.
Returns: Token name, symbol, chains deployed on, addresses.
#### lz_encode_options Encode LayerZero TYPE_3 options bytes (version tag 0x0003, the current standard format).
Parameters:
gas_limit (u64, optional, default 200000) — Gas for lzReceive on destinationnative_drop (u64, optional, default 0) — Native token to airdrop on destinationReturns: Hex-encoded TYPE_3 options bytes.
#### lz_transfer_quote Get a cross-chain transfer quote from the unified LayerZero Value Transfer API. Supports 130+ chains including Solana.
Parameters:
src_chain (string, required) — Source chain key (e.g. "optimism", "solana")dst_chain (string, required) — Destination chain key (e.g. "base", "solana")src_token (string, required) — Source token address (0xEeee...eEEeE for native ETH)dst_token (string, required) — Destination token addressamount (string, required) — Amount in base unitssrc_address (string, required) — Sender wallet addressdst_address (string, required) — Recipient wallet addressReturns: Quote with fees, estimated time, and quote ID for building transaction steps.
#### lz_transfer_build Build signable transaction steps from a Value Transfer API quote.
Parameters:
quote_id (string, required) — Quote ID from lz_transfer_quoteReturns: Pre-built transaction calldata (to, data, value) that the caller signs and broadcasts.
#### lz_transfer_status Check transfer status by quote ID.
Parameters:
quote_id (string, required) — Quote ID or transfer IDReturns: Transfer status, source/destination tx hashes, delivery progress.
#### lz_transfer_chains List all chains supported by the Value Transfer API.
Returns: 130+ chains with chain keys, names, and types.
#### lz_transfer_tokens List tokens available for transfer, optionally filtered by chain.
Parameters:
chain (string, optional) — Filter by chain keyReturns: Token addresses, symbols, decimals, supported chains.
#### lz_stargate_quote Quote a Stargate V2 native bridge fee via quoteSend() on StargatePoolNative contracts.
Parameters:
src_chain (string, required) — Source chain (ethereum/optimism/arbitrum/base)dst_chain (string, required) — Destination chaintoken (string, required) — Token: "ETH", "USDC", or "USDT"amount (string, required) — Amount in base units (wei)wallet_address (string, required) — Wallet address (20 bytes)Returns: Native fee, LZ fee, amount received, total msg.value, pool contract address.
Stargate V2 Pool Contracts:
| Token | Ethereum | Optimism | Arbitrum | Base |
|---|---|---|---|---|
| ETH | 0x7784...7931 | 0xe8CD...7d0d3 | 0xA45B...27F5 | 0xdc18...F7C7 |
| USDC | 0xc026...5860 | 0xcE8C...7fe4 | 0xe8CD...7d0d3 | 0x27a1...b5d26 |
| USDT | 0x9335...3Eb | 0x19cF...7dD | 0xcE8C...7fe4 | — |
#### lz_stargate_send Build sendToken() calldata for a Stargate V2 bridge transfer with automatic fee quoting.
Parameters:
src_chain (string, required) — Source chaindst_chain (string, required) — Destination chaintoken (string, required) — Token: "ETH", "USDC", or "USDT"amount (string, required) — Amount in base unitswallet_address (string, required) — Wallet addressslippage_bps (u32, optional) — Slippage tolerance in bps (default: 50 = 0.5%)Returns: Hex calldata, pool contract, msg.value, fee breakdown. For ERC-20 tokens, includes approval calldata and token contract address.
#### lz_get_deployments Get LayerZero deployment addresses for all supported chains.
Returns: EndpointV2, SendLib, ReceiveLib addresses per chain.
#### lz_list_dvns List available Decentralized Verifier Networks.
Returns: DVN name, address, supported chains, security level.
#### lz_get_messages_by_address Get recent messages sent by a wallet address.
Parameters:
address (string, required) — Wallet addresslimit (u32, optional, default 10) — Max resultsReturns: List of messages with status, chains, timestamps.
#### lz_list_chains List all supported LayerZero chains with their EIDs.
Returns: Chain name, EID, status.
#### lz_get_chain_rpc Get the RPC URL for a specific chain.
Parameters:
chain_name (string, required) — Chain name (e.g. "ethereum", "arbitrum")Returns: RPC URL.
lz_stargate_quote(src_chain="optimism", dst_chain="base", token="ETH", amount="300000000000000", wallet_address="0x...") — Get fee quotelz_stargate_send(src_chain="optimism", dst_chain="base", token="ETH", amount="300000000000000", wallet_address="0x...") — Build tx calldatalz_track_message(tx_hash="0x...") — Track deliverylz_stargate_send(src_chain="ethereum", dst_chain="arbitrum", token="USDC", amount="1000000", wallet_address="0x...") — Quote + buildapproval_step transaction (approve pool to spend USDC)lz_track_message(tx_hash="0x...") — Track deliverylz_transfer_chains() — Find chain keyslz_transfer_tokens(chain="optimism") — Find available tokenslz_transfer_quote(src_chain="optimism", dst_chain="solana", ...) — Get quotelz_transfer_build(quote_id="...") — Get signable transaction stepslz_transfer_status(quote_id="...") — Track deliverylz_oft_list() — Find available OFT tokenslz_oft_send(src_chain="ethereum", dst_chain="arbitrum", oft_address="0x...", recipient="0x...", amount="1000000000000000000") — Build txlz_track_message(tx_hash="0x...") — Monitor deliverylz_list_chains() — Find destination EIDlz_quote_fee(src_chain="ethereum", dst_eid=30110) — Quote feelz_send_message(src_chain="ethereum", dst_eid=30110, receiver="0x...", message_hex="0x...") — Build txlz_track_message(tx_hash="0x...") — Monitor deliverylz_get_deployments() — Contract addresseslz_list_dvns() — Available verifierslz_get_messages_by_address(address="0x...") — Recent activity~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.