Currently, when interacting with dApps, if you have insufficient token balances, that’s the end of using the dApp. It doesn’t even let you simulate the TX.
0xFrame addresses this very problem, the problem of a complex and disjointed user experience in the crypto space. Users currently face difficulties due to the lack of a unified interface and the limited ability to operate across different blockchain networks. This fragmentation results in barriers that prevent users from smoothly utilizing dApps and managing their assets.
0xFrame offers a solution by providing a seamless interface where users can access any crypto protocol with any asset from any blockchain. It simplifies the interaction with dApps by allowing users to carry out transactions even if they do not have the required token balance on the right chain. Instead of stopping users at the point of insufficient balances, 0xFrame displays their available balances across all compatible EVM chains. It enables users to select which assets to use for their intended transaction.
If the asset is on a different chain, 0xFrame handles the necessary asset swaps and bridges the tokens to the correct chain using 0x Swap API for swaps and Chainlink Cross-Chain Interoperability Protocol (CCIP) for bridging. This automation streamlines the process, removing the need for users to manually swap or bridge assets, which can be a complex and error-prone process.
For example, if you want to deposit USDT to Base but only have ETH on Arbitrum, the general flow of 0xFrame is: 1) swap user’s ETH to USDC with 0x Swap API, 2) bridge USDC from Arbitrum to Base with Chainlink CCIP, 3) swap user’s USDC to USDT with 0x Swap API, 4) deposit USDT to AAVE. Of course, the user only has to sign two transactions (the initial and end transactions), simplifying the UX of the current traditional flow, which would involve at least 4 transactions and 3 different user interfaces.
We encountered several challenges while developing this project.
The first problem we encountered before allowing users to use any asset from any chain was how to make an all in one user interface. We had to optimize the user experience to make it intuitive and user-friendly. Given the technical complexity behind blockchain interactions, we had to abstract the complexities and present a simple interface that could accommodate both novice and experienced users. This meant creating a system that could automatically detect and suggest the best asset swaps and bridge routes without overwhelming the user with technical decisions.
Next, we had to figure out how to achieve seamless interoperability among different blockchains. We chose Chainlink CCIP for its reliability and bridging functionality of USDC. This now solves the problem of allowing users to have their source of funds be on any chain.
The next challenge we encountered was allowing users to use any asset as the source, as well as any asset for the destination. We used 0x’s Swap API as it was the most comprehensive API to integrate into our solution.
Another challenge was simulating the transaction the user wanted to execute to understand which tokens would be used in this tx - but if the user doesn’t have the tokens, transaction simulation via Alchemy for example, wouldn’t return what erc20s are used. Hence we built our own simulation system by manually tracing and checking for calls with erc20 transfers or transferFroms.
Lastly, we encountered difficulties in managing and updating our users' asset balances across multiple chains in real-time. We use Ankr’s Wallet API to fetch cross chain balances of assets, as well as 0x’s price API to determine asset values.
Despite these challenges, we remained committed to our vision of streamlining the crypto experience, and pushed through to complete the project.
Tracks Applied (4)
0x
Arbitrum
Chainlink
Base
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
Discussion