On this page

Borrow USDC cross-chain

Use WBNB or BTCB on BNB Chain as collateral and receive USDC on Base in one cross-chain action. Omnisea moves the collateral; the Base composer supplies it to Morpho; Morpho opens the debt in your own position.

Before you start

You need:

  • WBNB or BTCB on BNB Chain;
  • BNB for token approval, the Omnisea transfer, and LayerZero fees;
  • the same EVM account available on Base for Morpho authorization and USDC receipt.

The action does not send borrowed USDC back to BNB Chain. USDC remains on Base.

Use the web app

  1. Open Omnimarkets.
  2. Choose omWBNB / USDC or omBTCB / USDC and select Borrow from BNB Chain.
  3. Enter either the collateral amount or the requested USDC amount. The other side is calculated from the live Base oracle at the interface's safety limit.
  4. Connect the account that owns the BNB Chain token.
  5. If needed, switch to Base and sign the temporary Morpho enable and revoke authorizations.
  6. Switch to BNB Chain, approve the original token, and submit the transfer.

The interface quotes the complete Omnisea and LayerZero fee using separate lzReceive and lzCompose gas. It requotes immediately before sending so the exact-fee transaction matches current LayerZero pricing. A separate 5 bps success fee is deducted from borrowed USDC only after the destination Morpho action succeeds.

What happens onchain

BNB Chain
  WBNB or BTCB
        │ lock in OmniseaVault
        ▼
LayerZero delivery
        │
        ▼
Base
  mint omWBNB or omBTCB to OmniMorphoBorrowComposer
        │ authenticated lzCompose
        ▼
  supply collateral on behalf of source sender
        │
        ▼
  borrow Base USDC to composer
        │ deduct success fee
        â–Ľ
  send remaining Base USDC to selected receiver

The source transfer uses the composer as both bridge recipient and application composer. The representation already exists on Base, so the current verified routes use isFirstTransfer = false.

The LayerZero endpoint authenticates the local Omnisea Router before the composer decodes the transfer envelope. The envelope binds the source sender, local token, credited amount, GUID, recipient, and application message.

Morpho authorization

Morpho positions belong to users, so the composer needs authorization to supply collateral and borrow on the user's behalf.

The web app checks isAuthorized(user, composer) and the user's current Morpho nonce on Base:

  • Already authorized: the request uses PreAuthorized mode and includes no signatures.
  • Not authorized: the wallet signs sequential EIP-712 messages to enable and then revoke the composer. The request uses Temporary mode.

Temporary authorization, collateral supply, borrowing, maximum-LTV enforcement, and revocation are atomic. A failed step reverts the complete Morpho action.

The authorization deadline and borrow-request deadline are separate protections. Expired requests are refunded rather than executed.

Borrowing limit and liquidation

Both verified markets have an immutable 62.5% LLTV. The Omnisea interface currently limits a new cross-chain borrow to 50% LTV using the live Base oracle price.

The composer also recomputes the complete Morpho position after borrowing and rejects it if debt exceeds the maxLtv encoded in the request. This includes existing debt and collateral in that market, not only the new transfer. Oracle movement before destination execution can therefore turn a quote into a safe refund instead of an unsafe borrow.

The 50% interface limit is not a guarantee against liquidation. Interest accrual and collateral-price movement can make the position less healthy after creation.

Success

On success:

  • the arriving Omniasset is collateral in the sender's Morpho position;
  • the requested USDC amount becomes the Morpho debt principal;
  • the current success fee is paid to the configured fee recipient and the remaining USDC is delivered to usdcReceiver on Base;
  • temporary composer authorization is revoked;
  • MorphoBorrowSucceeded records the GUID, market ID, borrower, collateral amount, gross borrowed amount, protocol fee, receiver amount, and receiver.

Every request records the fee accepted by the borrower. If the onchain fee rises above that maxFeeBps while the LayerZero message is in flight, the Morpho action does not execute and the normal collateral refund path runs. A lower execution fee is applied automatically. The contract can never charge more than its immutable 20 bps ceiling.

The source-chain wallet and Base Morpho borrower must be the same authenticated EVM address. usdcReceiver can be another nonzero address selected in the request.

Failure and refunds

A normal destination failure does not bridge the original asset back to BNB Chain.

Instead, the composer rolls back the Morpho operation and attempts to send the arriving representation to refundRecipient on Base:

WBNB transfer failure  → omWBNB refund on Base
BTCB transfer failure  → omBTCB refund on Base

If the direct token transfer fails, the composer stores one pending refund by LayerZero GUID. Only the authenticated beneficiary can claim it:

function claimPendingRefund(bytes32 guid, address recipient) external;

The beneficiary may redirect the claim to another address. Each GUID stores its own token, beneficiary, and amount; aggregate accounting only protects the combined liability from owner recovery.

Use these public reads to inspect the outcome:

borrowStatus(bytes32 guid)
pendingRefunds(bytes32 guid)
pendingRefundLiability(address beneficiary, address token)
totalPendingRefundLiability(address token)

If the outer LayerZero compose call itself remains unexecuted, retry it through LayerZero. The composer rejects a GUID that has already succeeded, refunded, or recorded a pending refund.

Live addresses

ComponentAddress
BNB Chain Omnisea0x1bb251457EECB885075405fc215098b393E98DF8
Base Omnisea0x1bb251457EECB885075405fc215098b393E98DF8
Base Morpho0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb
Base USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Base borrow composer0x82CEB7CD62FAeF25db31146b8D331e24a34D5e23

Read Morpho Omnimarket contracts for the request and refund model, Destination composition for authentication, and Executor options for gas encoding.

Experimental Beta is Live-Learn more about the Pilot