Molecular Bridge: EVM asset interoperability for MEM and ao

Molecular Bridge: EVM asset interoperability for MEM and ao

May 10, 2024

The Decent Land Labs team has been working on a way to bring ERC20 assets to the Arweave ecosystem over the past 3 months, and is now ready to announce its first iteration.

Molecular Bridge is an open source lock-mint ERC20 bridge from EVM-compatible chains to the MEM protocol. The bridge’s tech stack utilizes MEM serverless functions, MEM molecules, EVM smart contracts, and Chainlink’s AnyAPI.

The bridge passed audits by 9LivesLabs on the EVM, MEM and ao side - full results available here.

After a short testnet phase where Molecular Bridge will only allow Sepolia as a source chain, we plan to expand to support Ethereum and other EVM L2s.

Molecular Bridge brings liquidity to Arweave

For the first time, existing popular ERC20 assets like USDC, WBTC and WETH can move from Ethereum to Arweave compute layers MEM and ao.

The Arweave ecosystem has not previously focused on building a DeFi layer, but the success of many exciting web3 projects relies on giving users the tools to earn and trade with valuable, widely interoperable tokens.

Once bridged, ERC20 tokens from Ethereum can be used natively inside MEM and ao. For MEM developers, this means the ability to sidestep the need for API-based payment tooling and handle finance without dependencies. Inside ao, the Molecular Bridge brings wrapped stablecoins to ao’s existing ecosystem with tooling like web3 social, chat, bots, and DEXs.

MEM & ao bring new functionality and scale to EVM projects

While Ethereum applications benefit from high degrees of security and decentralization, they also inherit compute and scalability challenges from the congestion of the L1.

Flexible alternative computation layers like MEM and ao enable brand new use cases and scalability, allowing Ethereum developers to build features that require intense compute and storage space while ensuring interoperability with their original L1.

Supported tokens

The following tokens are supported at the time of writing, but the list isn’t final. Reach out for new token support.

  • USDC
  • USDT (coming soon)
  • WETH (coming soon)
  • WBTC (coming soon)
  • SARCO (coming soon)

Supported chains

Assets can be bridged from supported EVM source chains to MEM, then from MEM to ao as a second step.

  • Ethereum Sepolia testnet
  • MEM
  • ao testnet

Technical architecture

mem bridge lock

mem bridge unlock

Lifecycle of a bridge tx

  1. User Initiates Locking:
  • The user calls the lock() function from bridge.sol.
  1. Verification and Execution:
  • Dapps retrieve the resulting TXID from step 1 and invoke the executeLock() function in the bridge.js serverless function.
  • This function verifies the data from the TXID of the lock function using the MEM molecule (/vl/ server endpoint).
  1. Mirror of Token Balance:
  • The executeLock() MEM function mirrors the token balance locked in bridge.sol, effectively bridging tokens to the MEM protocol.
  1. Initiating Unlock Process:
  • To bridge tokens back to the EVM network, the bridge cronjob calls the initiateUnlock() function in bridge.js, providing a unique caller for authentication and assigning it to the mid or memid data property.
  • This function removes the caller’s balance from circulation on the MEM side.
  1. Unlock Validation:
  • The caller retrieves the resulting mid from ./mem/bridge.json and calls the validateUnlock() function in bridge.sol.
  • This function utilizes Chainlink’s AnyAPI node to read back from MEM function state, verifying the issued unlock status and authorized amount. It also verifies the caller with msg.sender.
  • Additionally, it maps the oracle request ID to msg.sender (reqToCaller()), the unique request ID to the unique mid (reqToMemId), and the mid to redeeming status (midIsRedeemed).
  1. Fulfillment by Chainlink Node:
  • The Chainlink node invokes the fulfill() function to update the contract state variables (maps) with the authorized token unlock amount for the given mid or memid per caller (msg.sender).
  1. Execution of Unlock:
  • The user retrieves the request ID from the TXID resulting from validateUnlock() and then calls executeUnlock() on the solidity contract.
  • The executeUnlock() function unlocks the token on EVM based on the validity of the initial memid per request ID.

Considerations

  • The key elements of the bridge, including the smart contracts, MEM serverless functions, and MEM molecules are open source and audited.
  • MEM and MEM’s molecules are maintained by the Decent Land Labs team. While it is possible to deploy your own instances (and some components are deployed to Akash as well as the team’s servers) there is an element of centralization.
  • MEM is open source and can guarantee code inspectability but not server liveness. While we have never had an outage of mem-core or the molecules this bridge depends on, access to these resources is currently availabe via team-controlled endpoints. This does not stop anyone who wants to from running their own, though!

Learn more about MEM: