Wallets are Fumbling the ‘Crosschain Moment’
A deep dive into the crosschain UX of wallets today, how it can be improved and where it can get to with the current tech
A deep dive into the crosschain UX of wallets today, how it can be improved and where it can get to with the current tech
Crosschain has arrived.
In the past 30 days, $12 billion worth of assets were bridged between chains, with an additional $10 billion circulating through messaging protocols like LayerZero’s OFT and Circle’s CCTP. Canonical bridges and 7-day withdrawals are supplanted by intent networks like Across and solvers that fill your order in seconds. AI agents like Newton can now DCA for you across chains.
We’re no longer playing what-ifs. Crosschain has gone from wonky blueprints to a flesh-and-bone network of live dapps and core infra. To smoothen the edges, chain abstraction tools — including Rhinestone’s offering — now offer one-click signatures, unified balances across networks, and obfuscated gas.
In a word — we have the technology. So why does the crosschain wallet experience still suck?
Remember Haseeb’s “blockchains are cities”? Sticking with the analogy, we’re now living through an unprecedented population boom.
More people have come onchain than ever, scattered through more distributed cities, townships, hamlets and boroughs. Uniswap is now a chain. Robinhood is now a chain. Superchain is… many chains.
In a crosschain-first world, the dominant wallet UX has proven unfit to shoulder the global economy. If we fail to service the next trillion dollars, the blame will be rightly pinned on previous-gen EOA wallets (though smart wallets are far from blameless — more on that later).
With those stakes, it’s critical to examine today’s cross-chain experience, understand why it feels soul-crushing and figure out how to fix it before ‘new money’ folds.
To guide us through that journey, we’ll use a completely made up, faceless character. Let’s call him Kurt Larsen.
Our protagonist’s woes begin before he even thinks of making a crosschain transfer. See, Kurt already owns assets on more than one chain, which the standard EOA wallet considers a personal affront.
Many wallets — including MetaMask — still only show tokens on your selected network. So as penance for trying multiple chains in the past, they’ll force Kurt through an impromptu accounting course. If he wants to know how much USDC he holds across Base, Arbitrum and Solana, he’ll have to tab in and out of each network (break out the spreadsheet?) and start adding them up.
The fact that unified balance view still isn’t the industry standard boggles the mind, and boggles Kurt.
Some EOA wallets (like Rabby) improve on this point with a clean, global overview of your holdings. However, they still don’t let users spend this apparently “unified” balance on any chain without forcing them to bridge first.
This has been widely accepted as a technical bottleneck rather than a design choice. With resource locks, intent systems and solver networks, wallets can now eliminate the ‘bridge’ section altogether. If Kurt has no USDC on Polygon and wants to deposit on AAVE on Polygon, he no longer has to know or care where the assets are being pulled from, or put himself through the agony of bridging.
Which brings us to:
Kurt wants to explore Polygon for the first time, and decides to deposit 5000 USDC on Polygon’s AAVE instance. After tallying his assets manually, he realizes he’ll first have to swap 1.5 ETH on Arbitrum to USDC, then bridge to Polygon.
Almost all EOA wallets still treat swapping and bridging as two disparate, unrelated operations. This means Kurt will have to:
This entire sequence feels ancient, evoking a time before RaaS existed and people signed off their tweets with ‘Hyperliquid’.
Today, swap + bridge can easily be made into a single-leg, atomic interaction, aided by deep liquidity aggregators and executed with smart routing algos. When Infinex launched this in January, they called it Swidge (swap + bridge). The cringy shorthand did little to stop it from doing 30m+ in EVM swap volume over the last month alone.
Meanwhile, back in the stone age, our Kurt has finally managed to navigate 10 signatures and 5 ‘pending’ screens to bridge his USDC to Polygon. He immediately tries to supply the funds on AAVE, only to face a devastating reality:
Embedded bridging solutions in EOA wallets do not solve for gas token issues. It is still entirely possible to bridge an ERC-20 and then lack the native gas token to do anything on the destination chain.
In Kurt’s case, he finds himself stuck on Polygon with no POL to pay gas with. He now has several increasingly dumb options: either swap to POL on another chain then bridge to Polygon, buy POL through a CEX that allows withdrawals to Polygon PoS (e.g. Coinbase), or use the wallet’s native onramp to buy POL with FIAT.
Having had to catalogue all his assets by hand, wrestle an antiquated swap + bridge method and take a detour in gas hell, our protagonist finally arrives to Polygon. The thousand-mile journey ends here. All Kurt has to do now is switch the selected network in his wallet from ‘Arbitrum’ to ‘Polygon’ and -
Wait. Why does he even have to switch between networks in the first place?
If you think about it, the ‘network selector’ is a bizarre concept. For one, it’s based on a prehistoric assumption that dapps can only exist within the confines of a single network. While this may have been canon in 2017, somebody must have forgotten to inform Contango, or Superform, or DeFiSaver, or a whole roster of dapps now adopting a multichain identity.
Better wallets do automate the network selection for the user. However, the fact that your wallet is ‘on’ a specific network shouldn’t even matter. All that should matter is which network(s) the dapp you want to use lives on, and which network(s) you hold assets on. The wallet should auto-detect both and let you sign from your ‘current’ network, allowing you to use your assets on whatever chain you want, in whatever dapps you want.
Unfortunately, Kurt’s crosschain journey is far from an outlier. If you’ve ever used a traditional wallet to hop between networks, chances are you’ve also been Kurt. We’ve all been Kurt.
This has been widely accepted to be a technical bottleneck. Today, it’s a design choice.
Segregated balances are a design choice. With Rhinestone, wallets can easily provide a unified view of the user’s assets across all chains and offer a bridgeless way to interact with each. Projects like Clave will be rolling this out shortly.
A 10-step bridging process is a design choice. With Rhinestone, funding a crosschain deposit of 5000 USDC into Aave on Polygon using 1.5 ETH from Arbitrum happens near-instantly, and requires only one signature from the user.
Sending users to new chains without gas is a design choice. With Rhinestone, the relayer/solver supplies the 5000 USDC on Polygon and pays the gas, and puts the transaction onchain to deposit into AAVE. Gas becomes part of the intent instead of a surprise sidequest.
Network selection is a design choice. With Rhinestone, wallets can obfuscate source and destination chains entirely, and refocus the user experience on the dapp itself.
Crypto UX is no longer a technical problem. It’s a design choice.