notes.2023.walletuncon.org

Notes

XDEFI Wallet

It’s very hard when you have multichain, with one chain it’s much simpler.

It’s important to understand about wallet integration. And interoperability.

The UI/UX, it’s not very simple to just show the token and which chain it’s on.

What’s the future of multi-chain wallets?

If all the wallets build it in the same way it makes it easier. Apps want to see historical data, you must host archival nodes. 200 archive nodes is a huge overhead. With blobs we’ll have many L2s.

Chains like plasma or binance, which prioritise speed over decentralization, will be stupidly expensive to run archival nodes. When somebody connects to a new chain, to have good decentralized optoins (some chains have no good decentralized options)

If there’s only one endpoint, and you end up using the public one, you don’t really have any privacy.

Once you go to Solana / Cosmos, there are different signing algorithms. We could do with a standard implementatoin of all the signers.

It’s very difficult to build support for all of the signers & algorithms, abi encoding, RPC formats etc.

Somebody was pushing machine-readable documents for RPC. There could be a .well-known URL which describes the JSON-RPC format, a self-describing interface, where you can query the capabilities of the JSON-RPC.

What if each service can provide an object which represents its capabilities, e.g. ‘name’ key which is the name of the service. A provider can ask for ‘an ethereum provider’ - each service self-identifies. How do you type check & type-enforce, which has a reserved key - e.g. every service can register as many type keys as it wants, and a requesting service can be specific with what it wants with the type definitions.

e.g. if your wallet is a contract account there will be a specific key that indicates it. e.g. early on Ledger didn’t support EIP-712, which made it really complex.

Need somebody to define what the typing standard is. Runtime type descriptors.

UI / UX

Less data in the front, presented to the user?

.e.g. if there’s a token on the chain, e.g. BTC on Bitcoin, how can you standardise this vs BTC on Ethereum. If you have USDC on 4 different chains, the wallet may see your total USDC balance, and can ‘show more details’ to show the specific chains the tokens are on.

When grouping you want to know who to trust to specify which tokens on which chains are equivalent, otherwise somebody could create a fake token which shows up as real money if you grouped by e.g. the ticker name alone.

So like what chainlink does with CCIP, interacting with one blockchain and another. You can be on Polygon, and do something on Ethereum. Paying gas remotely.

Account abstraction, how can we solve the gas problem. http://rabby.io/ ?