project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

Porter

An omnichain application that helps users easily optimize the use of idle funds across different chains, maximizing the utilization of their assets.

Porter

Created At

ETHOnline 2024

Winner of

Hedera - Ecosystem Builder Bounty 2nd place

Project Description

Porter is an omnichain application that helps users easily and efficiently transfer idle assets from multiple chains to the target chain where they’re needed for active use. In Web3, numerous chains are emerging, and users might move their assets across different chains for Yield Farming, DAO Participation, cross-chain transfers, or bridging from one chain to another. However, as the number of chains grows, it becomes challenging for users to keep track of their funds on each chain. They might forget about these assets or struggle to use them efficiently. Porter is an omnichain application that helps users easily see their token balances across multiple chains (currently focusing on USDC) Supports users in quickly transferring their assets from multiple chains to a target chain.

Here are some of Porter's features:

  1. Uses Web3Auth, a non-custodial MPC wallet that is secure and provides Google login to enhance user experience.
  2. Provides an interface that allows users to view all USDC balances across chains for a given address and make cross-chain transfers in real time.
  3. Deploys validator contracts on multiple chains for bridging and wallet verification, supporting chains like Arbitrum, Optimism, Hedera, Sepolia, Avalanche, and more.
  4. Calculates the optimal gas fee, allowing users to easily decide how to transfer assets across different chains.
  5. Uses an AA wallet to provide a seamless user experience by eliminating the need to sign messages on multiple chains.
  6. Sends a message via XMTP each time a transfer is successfully completed to keep a record on-chain for easy future reference.

The user flow is as follows: First, users connect their wallet, either using Web3Auth with Google login or another method. After logging in, users can see their current USDC balance on the Network Selection page. They can enter the token amount they want to receive on the target chain, such as "100 USDC." Then, they select the chain from which they want to transfer their USDC. Next, on the Confirm Transfer page, the app finds the best way to meet their transfer needs. Users can also modify the amount they want, such as "I want 20 USDC from every chain." The user selects their target chain and clicks the Confirm button. The app then initiates the transfer of USDC from multiple chains to the target chain. The user’s wallet will only need to sign the Validator contract on the target chain. The app will handle the cross-chain messaging to other chain contracts and send calldata by utilizing the LayerZero omnichain application, and use the AA wallet to complete all confirmations and transactions. Users can complete all of this with a single click, quickly and conveniently. After a successful transfer, a message is sent to the user's wallet address for record-keeping using XMTP.

For this hackathon, we have implemented cross-chain messaging and used AA to execute user operations. Also user-friendly frontend. We believe that by using Porter, we can help users more effectively utilize their funds across different chains.

How it's Made

We have used the tech below:

  • Web3Auth: Seamless user login, Google login
  • LayerZero: Omnichain application like OApp contracts. Sends calldata to the source chain, cross chain generic message passing.
  • ZeroDev:ZeroDev is a tool for Account Abstraction (AA) wallets. Porter uses AA wallets to send user operations, transferring tokens from the source chain to the target chain via a cross-chain bridge. In our design, anyone can help send these user operations because the calldata for the user operations is already stored in a validator contract on the source chain. This is also the reason we use LayerZero for cross-chain message transmission.
  • XMTP: Message sending and recording. On chain messaging for past Porter transfer history.
  • Hedera : Contract deployment (Ready to support Kernel AA once deployed)
  • Foundry: For Smart Contract testing and deploying

Frontend :

  • React, Tailwind: frontend structure
  • Wagmi, Rainbow Kit: wallet connect, sign transaction
background image mobile

Join the mailing list

Get the latest news and updates