ExplainerEthereum L1-L26 October 2026

Ethereum L1-L2 atomic transactions, explained. How the first one on mainnet worked, and who signs for it

One transaction, two networks. A $2.70 transfer on 5 October shows how it works, and a day of tests on Ethereum shows what it could change.

At a glance
The Ethereum Economic Zone, or EEZ, lets a program on mainnet call one on a separate network inside a single transaction, so that all of it happens or none of it does. In its first 24 hours of use, 8 of 8 transactions from mainnet into the L2 landed straight behind the batch that carried their result. The system refused 28 pre-computed L2 steps: 13 whose price read no longer matched mainnet, and 15 that built on those. A test loan went out to the other network and back within one transaction. If it holds up, moving money between mainnet and an EEZ network would need no separate bridge step and no withdrawal wait. Today one key signs off on every batch. Gnosis expects zero-knowledge proofs to replace it over the course of 2027.
8/8
Transactions from mainnet into the L2 that landed right behind their batch
28
Pre-computed L2 steps refused: 13 stale price reads and 15 that built on them
1 key
Signs every batch today; no zero-knowledge proof is checked yet
$30
ETH held in the EEZ contract after the first day
Key findingsEach line has its own share link
  1. 8/8

    In its first 24 hours, 8 of 8 transactions from mainnet into the EEZ network sat straight behind the batch that carried their result, in the same block. None failed.

  2. 28

    The EEZ contract refused 28 of 86 pre-computed L2 steps: 13 whose Uniswap price read no longer matched mainnet, and 15 that built on them.

  3. 8

    A program on the EEZ network read live prices from mainnet 8 times: 7 from a Uniswap pool and one from Chainlink's ETH/USD feed.

  4. 10,000

    A test loan of 10,000 tokens went from mainnet to the EEZ network and back inside one transaction. The wallet had made the token 48 seconds earlier and the lending pool 24 seconds earlier.

  5. 1 key

    Every batch on day one was checked against one signature, from one key. The wallet that set up EEZ can replace that key and the contract's code.

01 · The ideaTwo networks, one transaction

Moving ETH from Ethereum to another network usually means a wait. Getting it back can take a week.

An atomic L1-to-L2 transaction removes the wait. It is a cross-chain transaction done in one step. L1, or layer 1, is Ethereum itself. An L2, or Ethereum layer 2, is a separate network that runs on top of it and settles back to it. Atomic means all or nothing: the step on Ethereum and the step on the L2 happen in one transaction, or neither does.

On 5 October, a wallet on Ethereum sent 0.001 ETH, about $2.70, to its own address, and the money reached a second network in the same second. Then, 36 minutes later, Eduardo Antuña, who works on the project, posted on X that it was "the first atomic cross-chain L1->L2 transaction ever".

The project is the Ethereum Economic Zone, or EEZ, from Gnosis and the proving company Zisk. Bitquery indexes every Ethereum transaction, so we pulled every one that touched EEZ's main contract in its first 24 hours of use, 63 in all. They show how such a transaction works and what it could change. They also show what a user is trusting today.

02 · What EEZ isGnosis and Zisk's plan

Ethereum has dozens of L2s. Each works like an island, with its own users and apps. An app on one cannot use an app on another in the same step. Getting them to work together is called blockchain interoperability. Its strongest form is synchronous composability: programs on different chains calling each other as if they shared one.

EEZ is meant to supply it. Gnosis and Zisk announced it in March, with funding help from the Ethereum Foundation. The plan is a group of L2s whose programs can call mainnet, and each other, inside one transaction. Zisk's part is speed. It builds the software meant to prove each L2 block in real time.

EEZ's code went onto mainnet on 29 September and sat unused until the morning of 5 October. Then the first L2, numbered one, was signed up, and its first batch landed less than an hour later.

03 · How one call worksThe result arrives first

On day one, every call from L1 into the L2 took two transactions in the same block, batch first. The 5 October transfer shows each step.

The first is a batch, sent by the team that runs the L2. A batch is a bundle of the L2's latest activity and its outcome, with one signature over all of it. This one held two entries. One was activity that touched only the L2, and the contract applied it at once. The other was parked. It would run only if one exact call came in from L1 in the same block. The contract checked the signature and marked the L2 as checked for this block only.

The second transaction is the user's own. It sent 0.001 ETH to a stand-in address, an Ethereum address that stands for the user's own address on the L2. The stand-in passed the call to the EEZ contract, which took its fingerprint. That is a hash of who sent the call, to whom, how much ETH and what data. The fingerprint matched the parked entry.

Before applying it, the contract checked that the batch came in this same block and that the L2 was in the state the entry expected. It also checked that the ETH added up. Then it wrote the L2's new state and its new ETH balance, all inside the user's transaction. Had any check failed, the whole transaction would have been undone.

Two transactions, one blockthe 5 October transfer, step by step, as mainnet recorded it
THE 5 OCTOBER TRANSFER: TWO TRANSACTIONS IN ONE MAINNET BLOCKTX 31 · THE BATCHone blob of L2 data and onesignature over all of itEntry 0: L2-only activity,applied at onceEntry 1: parked until oneexact call arrives from L1TX 32 · THE USER0.001 ETH to the stand-in fortheir own L2 addressEEZ takes the call'sfingerprint (who, to whom,ETH, data): 0x2846…0fc4It matches Entry 1SAME TX · THE CHECKBatch from this block?L2 in the state Entry 1expects? Does the ETH add up?Yes: new L2 state and+0.001 ETH writtenNo: tx 32 is undoneL2 state: 0x9099…3553 → 0x30d8…4398 (Entry 0, tx 31) → 0x5452…04a2 (Entry 1, tx 32)L1 block 26,127,444, built by Titan, 5 October 2026 at 16:44:59 UTC. Tx 32 used 111,263 gasEEZ network block 13,914, same second: 0.001 ETH lands at the same address (from the announcement screenshot)
Entry 1 waits in the contract for this block only. Had the user's transaction come in another block, or had its fingerprint or the L2 state not matched, it would have reverted. Each L2 state value is the code the contract stored for that state. The L2 block number is taken from the post's screenshot; we found no public explorer for the L2.

So the batch has to come first, in the same block. That is the job of the block builders, the firms that assemble each Ethereum block. Titan, one of EEZ's founding members, built the block with the 5 October transfer. Quasar built others, and BuilderNet carried some of the batches. All 8 user transactions sat straight behind their batch.

Three builders carried the first dayEthereum blocks that included an EEZ batch or a user transaction into the L2, by the builder named in the block
WHICH BLOCK BUILDERS INCLUDED EEZ'S TRANSACTIONS, FIRST 24 HOURSBATCHES (48)Titan31 of 48Quasar13 of 48BuilderNet4 of 48USER TRANSACTIONS INTO THE L2 (8)Titan5 of 8Quasar3 of 8
Each user transaction sat in the same block as its batch, directly behind it. Titan is one of EEZ's founding members.
Watch it step by step
Clément Walter posted a 36-second animation of this same transaction, which he said he "got explained from the tx hash". Watch it on X.
36 s
Animation of the 5 October transfer, built from its transaction hash
6 Oct
Posted at 09:10 UTC, in reply to the EEZ announcement

04 · What it changesFewer bridges, fewer waits

For the person sending it, the 5 October transfer looked like any other payment. The wallet sent ETH to an address, with no extra data attached, and the L2 credited it in the same block. On OP Mainnet, for example, a deposit takes about 1 to 3 minutes and a withdrawal about 7 days, according to Optimism's docs. The two payments that left EEZ's L2 on its first day landed on mainnet inside the batches that carried them, with no claim step and no waiting period.

No wait in the first teststime for ETH to move between mainnet and an L2: OP Mainnet as published, EEZ as measured on its first day
HOW LONG MONEY WAITS BETWEEN MAINNET AND AN L2 (LOG SCALE)12 s1 min1 hour1 day7 daysOP Mainnet: deposit1 to 3 minutesOP Mainnet: withdrawalabout 7 daysEEZ, 5 Oct: depositsame blockEEZ, day one: payoutsin their batch's block
OP Mainnet times are from Optimism's docs; the amber part is the 1 to 3 minute range. EEZ figures are first-day tests: the deposit was credited on the L2 in the same mainnet block it was sent, and both payouts to mainnet landed in the block of the batch that carried them. One mainnet block is about 12 seconds.

Apps stand to gain more. An L2 app could price a trade or a loan off mainnet's own pools and feeds at the moment it runs. On day one, a program on the L2 did this with Uniswap and Chainlink. Money on one network could also be put to work on another without a bridge wait, as a test loan showed on day one.

EEZ's launch post sets the goal for users: "Assets, positions, and identity work across environments without requiring explicit bridging steps." For apps, it says "There is no need to manage bridges, wrapped assets, or per-chain integrations".

For now, EEZ is still in testing. Every transaction from mainnet on day one was a test. Gnosis's proposal targets December 2026 or January 2027 for Gnosis Chain's own move into EEZ.

05 · The first day48 batches and four wallets

In that first day, the team running the L2 posted 48 batches, for about $14 in fees. Of those, 21 were check-ins that carried no call either way. Activity picked up on the morning of 6 October.

Hourly check-ins, then a busy morningbatches posted to L1, calls from L1 into the L2, and L2 transactions the contract refused, per hour
THE FIRST 24 HOURS, HOUR BY HOUR (UTC), FROM 10:00 ON 5 OCTOBERbatchescall from L1refused0612182410:0013:0016:0019:0022:0001:0004:002207:0065 October6 Octoberthe 0.001 ETH transfer, 16:44the loan, 07:41
48 batches, 8 transactions from L1 into the L2 and 28 refusals in the window. All refusals came on the morning of 6 October, in batches carrying reads of the Uniswap pool.

Four wallets sent the 8 transactions into the L2. The wallet that set up EEZ sent four. Two older wallets, active since 2016 and 2018, sent one each. A fourth wallet, new that morning, sent two. Of the eight, four sent small amounts of ETH to the sender's own address on the L2. Three bumped a counter there, and one ran the test loan.

When (UTC)Sent byWhat it didBuilder
5 Oct 16:44setup walletsent 0.001 ETH to its own L2 addressTitan
5 Oct 18:51setup walletsent 0.01 ETH to its own L2 addressTitan
5 Oct 19:53setup walletbumped a counter on the L2Quasar
6 Oct 05:10setup walletbumped a counter on the L2Quasar
6 Oct 06:34wallet active since 2016sent 0.001 ETH to its own L2 addressTitan
6 Oct 07:24wallet active since 2018bumped a counter on the L2Quasar
6 Oct 07:30wallet new that morningsent 0.00015 ETH to its own L2 addressTitan
6 Oct 07:41wallet new that morningtest loan out to the L2 and backTitan

06 · The checks at workWhat went through, and what was refused

Calls also went the other way. A program on the L2 read prices from mainnet while it ran: 7 times from Uniswap's USDC/ETH pool, a DEX pool where traders swap dollars for ether, and once from Chainlink's ETH/USD feed. Each read happened on L1 inside the batch, so the L2 used the same number L1 saw. Two more calls paid ETH back out to L1.

The check also said no. The contract refused 28 of the 86 L2 steps the batches tried to apply, a third of them. In 13 cases, a step that had read the Uniswap pool carried a price that no longer matched what the pool returned on L1. The other 15 came later in the same batches and built on one of those steps, so the state they expected to start from was not the one on record.

Most steps went through; stale prices were turned awayL2 steps the batches tried to apply, and calls the L2 made to mainnet contracts
WHAT THE CHECK LET THROUGH, FIRST 24 HOURS86 PRE-COMPUTED L2 STEPS58131558 applied13 refused: price read no longer matched15 refused: built on a refused step24 CALLS FROM THE L2 TO MAINNET111311 took effect13 rolled back with a refused step
The 11 calls that took effect: 7 Uniswap price reads, one Chainlink read, 2 ETH payouts and one bridge release in the test loan. Every refused step sat in a batch that carried Uniswap price reads.

Of the ETH that went in, 91% came from the wallet that set up EEZ. The contract held $30 of it at the end of the day.

Nine in ten from one walletETH sent into the EEZ contract by wallet, ETH paid back out, and what it held at the 10:00 UTC cutoff on 6 October
ETH INTO AND OUT OF THE EEZ CONTRACT, FIRST 24 HOURSin: setup wallet0.011 ETHin: wallet active since 20160.001 ETHin: wallet new that morning0.00015 ETHout: paid back to mainnet0.0011 ETHheld at the end0.01105 ETH
What the contract held at the cutoff, 0.01105 ETH, equals what came in minus what was paid out, and matches its balance on mainnet.

07 · The loanA loan that went out and came back

The day's most involved test came at 07:41 UTC on 6 October. A flash loan is a crypto loan that is borrowed and repaid inside one transaction. This one left L1 in the middle.

Out to the L2 and back, in one transactionthe test flash loan, as traced on L1
ONE MAINNET TRANSACTION, 6 OCTOBER 2026 AT 07:41:35 UTCL1 (ETHEREUM)EEZ NETWORK (L2)1 · BORROWpool lends 10,000Test Token (TT)2 · SEND OUTbridge sends thetokens to the L23 · USEprogram claims an NFT(per its code)4 · SEND BACKtokens bridged backto L15 · REPAYpool gets its10,000 TT back
L1 shows steps 1, 2, 4 and 5. Step 3 ran on the L2 and is described from the contract code.

First, a lending pool on L1 lent 10,000 tokens. They crossed to the L2 through a bridge. A program there claimed an NFT, according to its code, and sent the tokens back. The pool was repaid, and the whole thing went through. Mainnet shows every step except the NFT claim, which happened on the L2.

The test was set up for the occasion. The wallet was new that morning. It made the token, called Test Token, and the bridge 48 seconds before the loan. The pool and the borrowing program came 24 seconds before it. Their own code marks them as test-only.

08 · Who holds the keysOne signature behind each batch

Every batch has to pass a check before the contract accepts it. The plan is for that check to be a zero-knowledge proof, a piece of math that shows the L2's work was done right without redoing it. On day one, all 48 batches passed through one checker instead. Its own code describes it as a "Temporary proof system that uses ECDSA signature recovery instead of a ZK proof". In plain words, a batch is accepted if one key has signed it. That key has never sent a transaction of its own.

The wallet that set up EEZ controls the rest. It can replace the signing key. It can change the code of the main contract and of the L2's settings contract. It can add any contract as a checker, and it can overwrite the L2's recorded state without a signature. Ether sent to a stand-in address before it exists is swept to a recovery wallet, a shared wallet that needs two of three keys. The setup wallet holds one of them.

PieceControlled byWhat it can change
Batch checkerone signing key 0xa86e…a15eIts signature is the only proof that the L2's new state is right
Signing keysetup wallet 0xceaf…a141Can swap in a new signing key
Main EEZ contractsetup wallet, as upgrade adminCan replace the contract's code
L2 settings contractsetup wallet, as owner and upgrade adminCan add any contract as a checker, change how many must sign, rotate keys, overwrite the L2's recorded state, replace the code
Recovery walletshared wallet, 2 of 3 keys, one held by the setup walletReceives ETH sent to a stand-in address before it exists

The team says much of this itself. The source code calls itself an early-stage version that "has NOT undergone an external security audit". Gnosis's own proposal to move Gnosis Chain into EEZ says Gnosis Ltd alone will order that chain's activity at first. It expects real-time proofs to land "over the course of 2027".

The builders matter too. Zisk founder Jordi Baylina's design has the block builders put the calls and their results together. In the replies, one reader warned that the feature could end up "privately routed to the builder duopoly".

09 · Was it the first?First on Ethereum, after a try on Gnosis Chain

We found no earlier call of this kind on Ethereum. The idea had run before on another chain. In February, Gnosis co-founder Martin Köppelmann put out a test version that ran on Gnosis Chain. Over two days, other contracts called into its test L2 15 times, with an admin signature as the check. One of the older wallets that used EEZ this week sent money through that test as well.

10 · Where it standsA working check, one signer

On its first day, EEZ did what its design says. No call from L1 landed without its batch. Results that no longer matched were turned away, and a loan crossed to the L2 and back inside one mainnet transaction.

What stands behind each result is a signature from one key. The proofs meant to replace it are planned for 2027. Until then, money held in EEZ rests on that key and on the wallet that can replace it.

11 · How we checkedMethod

We took every call into EEZ's main contract on mainnet from its deployment to 10:00 UTC on 6 October, with full call traces, from Bitquery's Ethereum calls and events data. Calls that were later undone are not counted. Who controls what was read from the contracts' verified code and their state on 6 October. We found no public node or explorer for the L2, so everything here is measured on mainnet.

The same records can be pulled with the Bitquery MCP or the Ethereum API docs. Earlier pieces cover how much trading an L2 really gets and what moves through a bridge.

12 · The recordContracts and transactions behind this story

WhatAddress or transaction
EEZ main contract0x4b27…402c
Batch checker0x1ac7…721e
L2 settings contract0xb3fb…56d0
Setup wallet0xceaf…a141
Wallet that posts batches0x4261…d546
Setup wallet's stand-in0x3c18…f7c8
Batch, 5 Oct 16:44:590x82ee…af67
The 0.001 ETH transfer0xd0cb…0a02
Test loan, 6 Oct 07:410x928c…6a7a

FAQ

What are L1 and L2 on Ethereum?

L1, or layer 1, is Ethereum itself. An L2, or Ethereum layer 2, is a separate network that runs on top of Ethereum and settles back to it, usually with lower fees. Moving money between them has meant a bridge and a wait.

What is the Ethereum Economic Zone?

A plan from Gnosis and Zisk, with funding help from the Ethereum Foundation, for L2 networks whose programs can call mainnet and each other inside one transaction. Its code went onto mainnet at the end of September 2026, and its first network started in early October.

What is synchronous composability?

Programs on separate chains calling each other as if they lived on one chain, inside a single transaction. Either every step happens or none does.

Is an atomic L1-to-L2 transaction the same as an atomic swap?

No. An atomic swap is a trade between two parties, often across two chains, where both sides settle or neither does. The 5 October transaction was one wallet moving its own ETH from Ethereum to an L2 in one step. The same all-or-nothing rule applies, and nothing was traded.

Was the 5 October transfer the first atomic L1-to-L2 transaction?

It is the first such call on Ethereum that we could find. A test version of the same idea ran on Gnosis Chain in February 2026.

What would EEZ change for crypto users?

If it works as designed, ETH and app calls move between mainnet and EEZ networks inside one transaction, with no separate bridge step and no withdrawal wait. On its first day it carried only tests. Gnosis's proposal targets December 2026 or January 2027 for Gnosis Chain's move into EEZ.

Do I still need a cross-chain bridge?

Not as a separate step. On EEZ the main contract holds the ETH and moves it in the same transaction or batch, with no bridge step in between. On its first day only tests used it.

Does EEZ use zero-knowledge proofs today?

Not yet. On its first day every batch was checked against a signature from one key. Gnosis expects real-time proofs to arrive over the course of 2027.

Can a flash loan cross from Ethereum to an L2 and back?

On EEZ it did once on its first day. A test loan of 10,000 tokens went to the L2 and back inside one mainnet transaction, using tokens and contracts made less than a minute earlier for the test.

Limits on these figures

The window runs from the deployment of EEZ's contracts on 29 September 2026 to 10:00 UTC on 6 October 2026. The system is live and changes after that time are not counted.

Everything is measured on mainnet. We found no public node or explorer for EEZ's L2, so what happened on the L2 side is taken from the contracts' code and from the screenshot in the announcement post, and is not measured.

The reasons given for refused L2 steps come from the error each refusal carried. Linking the price mismatches to the Uniswap reads rests on the calls inside those steps; every other refusal came later in a batch where an earlier step had been refused.

Who controls each contract was read from on-chain state on 6 October 2026. Owners, keys and code can be changed after that date.

Legal disclaimer

This article is provided for informational and educational purposes only and reflects analysis of publicly available on-chain data as of the dates indicated. It does not constitute legal, financial, compliance, or investment advice, and nothing in it is a recommendation to buy, sell, or hold any token or asset, or to use any network or service.

The findings describe transactions observed on Ethereum between 29 September and 6 October 2026. They may be incomplete or incorrect and may be revised as more data becomes available.

References to the Ethereum Economic Zone, Gnosis, Zisk, the Ethereum Foundation, Titan, Quasar, BuilderNet, Uniswap, Chainlink or any other named project, company or person describe what the public record and published code show. They are not statements about any party's security, solvency or conduct. Wallets are described by their activity and are not attributed to any person.

Nothing herein should be relied upon as a definitive determination of fact. Readers should conduct their own independent verification before taking any action. The authors and publisher accept no liability for any loss or damage arising from reliance on this material. All trademarks and company names are the property of their respective owners.

Reported by Gaurav Agarwal for Bitquery Research, with AI tools; every figure was checked against the raw data.

Run it yourself

Ask these questions in plain English

Every Ethereum transaction in this story comes from Bitquery's data, with full call traces. The Bitquery MCP server puts that data behind an AI assistant, so you can ask what a contract did, who called it and what it paid out, without writing the query yourself.

List every call into a contract over a time windowTrace a transaction's internal calls and eventsCheck who owns an upgradeable contractFollow ETH in and out of a bridge contract
Explore Bitquery MCP →Figures measured 6 October 2026 against Bitquery's transaction, call and event data and the contracts' on-chain state.