coinbase / build-onchain-apps

Accelerate your onchain creativity with the Build Onchain Apps Template. ⛵️
https://buildonchainapps.xyz
MIT License
707 stars 118 forks source link

Feature Request: Out of the box Account Abstraction support #112

Open MrKevinOConnell opened 10 months ago

MrKevinOConnell commented 10 months ago

Is your feature request related to a problem? Please describe.

Today a big issue is non-crypto native users having to deal with gas fees. Account Abstraction fixes this. Having an opinionated out-of-the-box AA implementation would be a great way to make it easier to build on top of Ethereum quickly.

Describe the solution you'd like

account kit or biconomy.

Maybe there is a complete AA solution being built at Coinbase that I'm unfamiliar with. If so disregard the second point above, Generally speaking though this is key to making as many viral onchain applications as possible.

I'd imagine this could be done with a combination of a provider + hook that lets the signed-in user interact with their smart contract wallet.

Describe alternatives you've considered

Additional context

n/a

Zizzamia commented 10 months ago

I agree 100% on this: Account Abstraction is a must.

I love that you played with a few options out there. I would love to hear more about your experience with them and what the trade-offs you saw are.

Besides the two you mentioned, I also heard about https://www.privy.io, https://web3auth.io/ and https://www.dynamic.xyz.

As of right now, something I want to triple-check is the Javascript dependency they have. Build Onchain Apps loves Viem and Wagmi because they care about being lightweight, a trade-off I want to remember when picking something out there.

What are other trade-offs that are worth to count?

uneeb123 commented 10 months ago

+1 to this. I don't have much to add to this since I think AA is still in early days. But there is also a way to combine Privy with AA: https://docs.privy.io/guide/frontend/account-abstraction/zerodev

MrKevinOConnell commented 10 months ago

@Zizzamia

As of right now, something I want to triple-check is the Javascript dependency they have. Build Onchain Apps loves Viem and Wagmi because they care about being lightweight, a trade-off I want to remember when picking something out there.

Both account kit and biconomy use viem, I'd imagine that it might be good to at some point setup functionality to index events from a contract(s). In this case account kit might be better since alchemy supports this also, thus you could use the same alchemy account for both. I have heard plenty of great things about biconomy though.

Besides the two you mentioned, I also heard about https://www.privy.io/, https://web3auth.io/ and https://www.dynamic.xyz/.

Hypeshot uses privy: its very great in my experience, they don't have a full passkey flow yet if that is important. Dynamic has this, and they have account abstraction (its in beta though). I personally haven't interacted with web3auth so can't comment on them.

if possible, I think it would be best to not rely on a 3rd party embedded wallet service for this. Given this will hopefully be the default for those making projects on base, I'd rather not eventually have a situation where that service is the default to use, and can trigger vender lock in at any point. Implementing one of the aa services above though would be great, as imo its more flexible to change between them if wanted.

uneeb123 commented 10 months ago

if possible, I think it would be best to not rely on a 3rd party embedded wallet service for this

Disagree because this implies that embedded wallets (hence MPC) is an alternative to account abstraction. It's not. In fact, MPC will work together with AA. AA happens at the contract level whereas MPC is relevant at the key abstraction level. Unfortunately, most AA demos as of today are also demo-ing key abstraction. Benefits of AA are batched txs, paymasters etc.

EDIT: I agree that there is should optionality to choose the right embedded wallet service for your needs. But ultimately, they need to work together somehow.

artivilla commented 8 months ago

I personally like how nextjs showcases each integration in their examples directory which makes it easy to dissect which vendors a developer wants to integrate. There are certainly maintainability tradeoffs here.

adnockamran commented 4 months ago

I agree 100% on this: Account Abstraction is a must.

adnockamran commented 4 months ago

coinbase already implemented AA and will be releasing soon. i have seen demo on twitter