Austin King Profile picture
Jul 22 1 tweets 4 min read Read on X
We all know Base -- second largest rollup in less than a year, insane success.

But have you even heard of their latest chain abstraction product MagicSpend?

Strategically this expands Coinbase's territory across all rollups, and it's going unnoticed. Here's the breakdown:

We’ll get straight to the meat with a TL;DR of MagicSpend.

** What does MagicSpend enable? **

MagicSpend allows users to spend their Coinbase balance onchain, anywhere.

uhhh, what?

Seriously — you can open your Coinbase app and if you have $100 in $USDC custodied on their platform you can use that: anywhere. onchain. instantly.

Sounds crazy right? Honestly it kinda blew my mind when I realized it wasn’t just buzzword propaganda.

Often when I’m doing crypto research I have to parse through a bunch of unnecessary new terminology so in the below explainer I’m going to focus on explaining this like a normal human and not dress it up with a bunch of academic formalisms.

** How does MagicSpend work? **

First thing to understand is that Coinbase holds gigantic pools of coins like $ETH and $USDC across all major rollups. Users are constantly moving in and out of Coinbase across these various platforms, so holding large bags of coins on each of these platforms is a natural byproduct of their business operations.

The below pic explaining how this works is complex so I’m gonna walk through it step by step:

1) The user isn’t putting their request onchain right away — they are sending Coinbase a message that says “hey I want to go spend $50 on Optimism for this NFT”

2) Coinbase receives this request and checks “ok well does this dude have $50? Ya? Ok cool, put a lock on his $50 internally that so he can't double spend until we know what happens with this signature we’re about to ship his way.”

3) Coinbase responds to the user with that a signature authorizing them to use 50 of Coinbase's $USDC on Optimism

4) The user takes that signature and ships it on chain (from a UX perspective steps 1-4 will effectively seem like just one step to the end user)

5-7) The “Magic Spend” contract is controlled by Coinbase and has authority to withdraw from Coinbase’s pile of $USDC on Optimism — so it sees the signature that Coinbase itself gave to the user in step #3 and says “ok cool, I (Coinbase) authorized this, so I’m gonna let this user draw down 50 $USDC from our big pool of coins." The contract will also emit an event saying “hey this user took that signature and actually withdrew the $50 they requested.”

8) User is able to pull 50 $USDC from Coinbase’s funds on Optimism and gets to buy the NFT.

9) Coinbase’s servers are listening to onchain events so they see the “hey user took the $50” event emitted in step #7 and debits it from that user’s internal balance on Coinbase’s servers.

Pretty sick right? The user was able to just hold coins on Coinbase and use them instantly on Optimism. What’s even cooler though is that it’s not just Optimism. It’s Base. It’s Arbitrum. Etc.

This effectively turns your Coinbase account into a portal to spend anywhere onchain instantly.

Ok in case you’re reading between the lines and see some potential issues I’ll proactively answer those:

1) In step 2 when they give the user a signature allowing them to spend 50 USDC on Optimism they lock the user funds. What happens if the user doesn’t complete the action onchain? Are those funds just frozen forever? No — because within the signature there is an expiry so for example if the user tried to wait a couple days it would fail. This is what allows Coinbase to remove the “lock” on user funds after that expiry hits because they know the issued signature will no longer be accepted onchain and therefore they don’t need to be worried about users double spending Coinbase’s money.

2) Ok, but what if Coinbase runs out of money on a specific rollup? Yup, totally can happen. In this case the transaction would just fail because when it hits the Magic Spend contract it’ll just be like “oh no, i have no more dollars for you, i must fail this tx :(” In practice though this is fine because Coinbase is constantly rebalancing these pools across all the rollups and they work with a ton of capital so these limits aren’t hit.

** What are the implications of this? **

In my opinion we are getting a glimpse of the future here.

If you haven’t gone deep in the Chain Abstraction space one goal we have outlined is to empower users with a “Chain Abstracted Balance” AKA “yo just how many coins do I have total -- i don’t care where they are, don’t make me think about all this in the weeds infra stuff.”

Coinbase Magic Spend is the first truly Chain Abstracted Balance in my opinion. The gotcha? It’s completely centralized. Honestly though — we need to take this as a challenge. This UX vastly outcompetes self-custody alternatives, so it places high urgency for us to build decentralized, censorship resistant alternatives that empower self-custody.

There is no future where we expand beyond the existing user base without achieving this abstracted experience. All of us nerds who are fine switching RPC endpoints, remembering seed phrases, etc. are already here. We need to massively abstract the UX in a way that empowers self-custody to create the future of crypto where even normies get to participate in onchain applications without compromising on their personal freedoms.

The bright side? This is totally possible. For those of you deep in this space I’m sure you can already conceptualize implementations of MagicSpend that don’t rely on one centralized intermediary like Coinbase. We’ve been thinking about this for a long time at Omni and other teams across the industry are also doing fantastic work in this domain.

Hope you have a great start to the week everybody 🌅Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Austin King

Austin King Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @0xASK

Feb 23, 2022
Four projects from the #ETHDenver hackathon that VCs should go chase down for a seed allocation 🧵
1/X @DeusExSecuritas -- employs machine learning to identify common smart contract security vulnerabilities.

Created by @DicksonWuML and @RMacwha.

Waiting months for auditors is a huge blocker to growth, this could help speed up the innovation cycle of crypto.
2/X When people trade on DEXs like @Uniswap, MEV searchers can attack them. @SlowSwap is a simple yet effective solution to preventing MEV exploits through employing verifiable delay functions.
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(