AL #75: Is Solana’s GetCode an L2 or a “Network Extension”?
Solana's going modular and the community's not sure if that's a good thing.
L2s have been so deeply associated with Ethereum and its scaling narrative that the Solana community is rejecting the term altogether:
In an attempt to figure out exactly what is going on I had to peek under the hood of one of these L2s on Solana: Code.
Code is a payments focused app chain on Solana built by Ted Livingston, the Founder of Kin.
It delivers higher TPS, faster and more reliable confirmations than Solana mainnet and transaction privacy via a highly reliable custom sequencer.
It comes with the Code wallet app and various Code SDK integrations that help support digital micro-payments use cases like tipping, peer to peer payments via QR codes and others.
Each user gets a tipping card. Here’s mine:
Not unlike Ethereum rollups, these features are built via a custom sequencer that is able to process user intents and translate them into batched Solana transactions.
Code is just one example of a bigger trend of Solana rollups that Yash Agarwal covered well in April.
So what exactly is different?
Solana rollups don’t have material architectural differences from Ethereum rollups.
Advocates on both sides understand this.
However, their current implementations and use cases do differ, which has led to some confusion and an opportunity for narrative development.
Many horizontal Ethereum rollups primarily focus on “scaling” Ethereum.
They inherit the underlying EVM architecture and focus on increasing TPS, reducing block times/latency and making transactions cheaper.
Solana rollups are similar but they haven’t historically been as motivated by transaction costs.
For example GetCode’s major benefits are overcoming Solana’s reliability issues and providing native support for privacy.
But both Ethereum and Solana rollups can develop custom features that extend the capabilities of the L1.
World Chain (which we covered earlier this year) is considering prioritized block space.
Reth Execution Extensions (which World Chain likely would use) support adding custom functionality to rollup nodes without having to build an entirely independent rollup stack.
Aztec is an L2 with native privacy primitives available for developers that doesn’t use an EVM based language.
Another aspect is that building a general purpose SVM L2 on Solana is just much more difficult so it’s smarter for Founders to focus on app chains instead.
The complexity of SVM’s state model is harder to express in a fraud proof or ZK system.
The performance gap between Solana mainnet and what is needed for web2 grade user experiences is also smaller.
This of course comes at the expense of L1 decentralization which of rollups cannot help with anyways.
Hence L2s on Solana have focused on providing more narrow functionality and have been explained as network extensions.
The issues with calling L2s parasitic
The first part of Kyle’s tweet referred to more general Ethereum L2s as parasitic to the L1.
This is true in the following way: a significant part of rollup sequencer fees do come from priority fees.
Priority fees are used most significantly to adversarially order swaps.
While I agree that L2s are moving priority fees away from L1, I see issues with calling that parasitic.
MEV can be internalized by apps anyways.
There is an inevitability to how priority fees will be internalized whether by rollups, app chains or app-specific auctions. You can read more in our recent post below:
The other issue with calling L2s like Base parasitic is the sheer effort they expend and are economically incentivised to expend in onboarding new users and apps.
Ethereum didn’t host “onchain summer”.
Base did:
So while some priority fees are migrated away, there is net new demand for block space that complects the analysis.
So while I see the point around Ethereum and Solana L2s both being able to capture a share of reordering rights from L1 applications, that’s not the reason why Solana developers are building L2s with more narrow execution models in the first place.
Even Code admit to having broader execution ambitions after their payments MVP proves successful.
It’s in the name.
Back to Code
It’s worth also covering the market power dynamics of Solana L2s vs. Ethereum L2s.
With Solana’s cheaper transaction fees and the lack of economic urgency centered around micro-payments, it’s unclear at what scale GetCode could drive substantial sequencer revenues.
Instead, it’s tied its fate to the Kin token in an interesting way.
The token itself is scarce, but the app has built-in denominations to various currencies around the world.
You are always paying in Kin but if you time it well, you can pay your friend the 5 bucks you owe them when the Kin price is high and spend less tokens.
This is brilliant UX.
GetCode is betting on building a monetary premium around Kin as the network grows.
No surprises there as we’ve touched on the limitations of selling block space:
As well as alternative monetization methods for rollups:
In this sense, lower transaction costs on the L1 create another tactical distinction in how Solana L2s compare to Ethereum L2s.
Solana L2s may more closely resemble Ethereum L3s or alt-DA L2s like Redstone.
Ultimately, the flexibility for rollups to do whatever they want and how they want to do it is a key benefit of modular blockchains.
And Solana builders are clearly leveraging it to move the network forward.