From bf361dcecafdd6f8bef1645c7bb191cfc27bddf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Thir=C3=A9?= Date: Wed, 19 Aug 2026 11:20:50 +0200 Subject: [PATCH 1/3] architecture: review fixes for the Bridging vs. NAC section - Michelson runtime exposes the Tezos RPC, not JSON-RPC (matches the interface table above) - L1 node: Etherlink is the Smart Rollup, L1 hosts it; anchor the whole chain to L1 with a single edge instead of per-runtime edges - sequence diagram note: the atomicity unit is the transaction, not the block - comparison table: native tez is not wrapped by the L1<->L2 bridge; withdrawal latency is days, not hours - cosmetic: stray colons/spacing in mermaid labels, 'a unified execution layer', 'economic space' Co-Authored-By: Claude Fable 5 --- docs/overview/architecture.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/docs/overview/architecture.md b/docs/overview/architecture.md index 7a0e6a48..1beafeaf 100644 --- a/docs/overview/architecture.md +++ b/docs/overview/architecture.md @@ -7,7 +7,7 @@ title: Architecture ## Seamless integration To enable the seamless integration of the two ecosystems (EVM and Michelson) in a single blockchain, Etherlink provides **Native Atomic Composability** (sometimes shortened as NAC): smart contracts in one interface can call contracts in the other within a single atomic transaction. -Thanks to the atomic composition combined with the use of the same native token, Etherlink can be seen as **unified execution layer**, constituting a single economical space. +Thanks to the atomic composition combined with the use of the same native token, Etherlink can be seen as **a unified execution layer**, constituting a single economic space. Each interface is implemented by a dedicated runtime exposing a standard RPC endpoint. @@ -24,22 +24,21 @@ When an EVM contract calls a Michelson contract on Etherlink, both exec ```mermaid graph TB - subgraph tools["Developer Tools :"] - eth["Ethereum tools :
(MetaMask,
Hardhat,
Foundry...)

"] - tez["Tezos tools :
(Temple,
Taquito,
tzkt...)

"] - end - subgraph chain["Etherlink chain :"] - evm["EVM runtime :
Ethereum
JSON-RPC

"] - mic["Michelson runtime :
Tezos
JSON-RPC

"] - evm <-->|"cross-runtime ,
atomic calls

"| mic + subgraph tools["Developer tools"] + eth["Ethereum tools
(MetaMask,
Hardhat,
Foundry...)"] + tez["Tezos tools
(Temple,
Taquito,
TzKT...)"] + end + subgraph chain["Etherlink chain"] + evm["EVM runtime
Ethereum JSON-RPC"] + mic["Michelson runtime
Tezos RPC"] + evm <-->|"cross-runtime
atomic calls"| mic end - l1["Tezos Layer1 :
(Smart
Rollup)

"] + l1["Tezos Layer 1"] eth --> evm tez --> mic - evm --> l1 - mic --> l1 + chain -->|"anchored as a Smart Rollup"| l1 ``` This is fundamentally different from **L1↔L2 bridging** (moving assets between Tezos L1 and Etherlink) or **cross-chain bridging** (connecting two independent chains through a third-party relayer). @@ -50,8 +49,8 @@ In both bridging cases, the two sides are separate ledgers that must be reconcil | Chains / layers involved | 2 | 3+ | 1 | | Number of transactions | 2+ | 4+ | 1 | | Atomic (all-or-nothing) | No | No | Yes — reverts entirely | -| Latency | Minutes to hours | Minutes to hours | Same block (~500 ms) | -| Asset representation | Wrapped tokens | Doubly-wrapped tokens | Native tokens | +| Latency | Minutes (deposits) to days (withdrawals) | Minutes to hours | Same block (~500 ms) | +| Asset representation | Native tez; wrapped FA tokens | Doubly-wrapped tokens | Native tokens | | Trust assumption | Bridge operator | Multiple bridge operators | None — same kernel | ### NAC call sequence @@ -75,7 +74,7 @@ sequenceDiagram GW-->>EVM: outcome EVM-->>U: transaction receipt - Note over EVM,M: One atomic block — all or nothing + Note over EVM,M: One atomic transaction — all or nothing ``` Because the two runtimes share the same ledger, there are no wrapped tokens to mint or burn, no bridge relayer to trust, and no risk of one side completing while the other fails. From 4d25f821cee325edaffe55c1d746bcc1c18ee15b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Thir=C3=A9?= Date: Wed, 19 Aug 2026 11:35:29 +0200 Subject: [PATCH 2/3] upgrades: Etherlink 7.0 went live via fast governance on 20 August The 13-August/slow-governance line was a placeholder. What actually happened: the slow-governance proposal of 2 August was withdrawn before activation after a security vulnerability was found during continued testing (Mainnet was never exposed), and a patched kernel was resubmitted via fast governance on 19 August, with the upgrade triggered on 20 August. Also: 'Native Atomic Calls' -> 'Native Atomic Composability (NAC)' (terminology used everywhere else in the docs), and a link to the resubmission Agora post. Note: the 20 August date assumes the trigger happens as planned on Thursday morning; re-verify against the actual trigger_kernel_upgrade operation before merging. Co-Authored-By: Claude Fable 5 --- docs/progress/upgrades.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/progress/upgrades.md b/docs/progress/upgrades.md index fc48434c..c9f3e1a0 100644 --- a/docs/progress/upgrades.md +++ b/docs/progress/upgrades.md @@ -173,10 +173,13 @@ For more information, see [Announcing Etherlink 6.6: a security hardening kernel ## Etherlink 7.0 (Ganesha) -The Etherlink 7.0 upgrade went live on 13 August 2026 through the slow kernel governance process and introduced a series of new features preparing for the launch of Tezos X. -In particular, it added the new Michelson interface allowing to run Michelson smart contracts, and Native Atomic Calls for seamlessly combining EVM and Michelson contracts. +The Etherlink 7.0 upgrade went live on 20 August 2026 through the fast kernel governance process and brought the largest expansion of Etherlink's scope since launch. +In particular, it added the new Michelson interface, which runs Michelson smart contracts and brings the Tezos account model to Etherlink, and Native Atomic Composability (NAC) for seamlessly combining EVM and Michelson contracts. -For more information, see [Announcing Ganesha: A 7th Upgrade Proposal for Etherlink Mainnet](https://medium.com/@etherlink/announcing-ganesha-a-7th-upgrade-proposal-for-etherlink-mainnet-ae0a3af93aba). +Etherlink 7.0 was initially proposed through the slow kernel governance process on 2 August 2026. +After a security vulnerability was found in that kernel during continued testing, bakers were asked to reject the proposal — Etherlink Mainnet was never exposed to the vulnerability — and a patched kernel was resubmitted through the fast kernel governance process on 19 August 2026. + +For more information, see [Announcing Ganesha: A 7th Upgrade Proposal for Etherlink Mainnet](https://medium.com/@etherlink/announcing-ganesha-a-7th-upgrade-proposal-for-etherlink-mainnet-ae0a3af93aba) and [Etherlink 7.0 (Ganesha): resubmission via Fast governance](https://forum.tezosagora.org/t/etherlink-7-0-ganesha-resubmission-via-fast-governance-on-wednesday-august-19th/7159). ## Changelog From a29ec13c6aefde336de03de6f4afc617d09aef85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Thir=C3=A9?= Date: Wed, 19 Aug 2026 11:44:40 +0200 Subject: [PATCH 3/3] verification sweep: leftovers found while re-checking the review threads - accounts-and-aliases: 'the the' typo - fees: quantify the EIP-7702 DA-fee term (125 bytes per authorization, matching fees.rs) - terminology: 'Native Atomic Calls' -> 'Native Atomic Composability (NAC)' (bridging.md, network-information.mdx, testnet.mdx) - testnet.mdx: Previewnet is long-running, not a 'temporary testnet' (same fix previewnet.md already received) Co-Authored-By: Claude Fable 5 --- docs/evm/developing/fees.md | 2 +- docs/evm/get-started/network-information.mdx | 2 +- docs/michelson/bridging.md | 2 +- docs/overview/accounts-and-aliases.md | 2 +- docs/testing/testnet.mdx | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/evm/developing/fees.md b/docs/evm/developing/fees.md index ae358baf..09ed48eb 100644 --- a/docs/evm/developing/fees.md +++ b/docs/evm/developing/fees.md @@ -90,7 +90,7 @@ Etherlink EVM calculates the inclusion fee with this equation: inclusion_fee = 0.000004 XTZ * (150 + tx.data.size() + tx.access_list.size()) ``` -For EIP-7702 transactions, there is an additional term: the size of the authorization list. +For EIP-7702 transactions, there is an additional term: the size of the authorization list (125 bytes per authorization). ## Gas limit diff --git a/docs/evm/get-started/network-information.mdx b/docs/evm/get-started/network-information.mdx index 6d94dd5b..4a27e147 100644 --- a/docs/evm/get-started/network-information.mdx +++ b/docs/evm/get-started/network-information.mdx @@ -228,7 +228,7 @@ These precompiled contracts are specific to Etherlink EVM{/* TEVM */}: - Native Atomic Calls + Native Atomic Composability (NAC) diff --git a/docs/michelson/bridging.md b/docs/michelson/bridging.md index 3a88b6c8..9d0b5b62 100644 --- a/docs/michelson/bridging.md +++ b/docs/michelson/bridging.md @@ -9,4 +9,4 @@ This page is under construction, the bridging website is being worked out. Come back soon! ::: -In the meantime, you can [bridge tokens to the EVM interface](/evm/bridging/) and control them via [Native Atomic Calls](/michelson/nac-usage). +In the meantime, you can [bridge tokens to the EVM interface](/evm/bridging/) and control them via [Native Atomic Composability (NAC)](/michelson/nac-usage). diff --git a/docs/overview/accounts-and-aliases.md b/docs/overview/accounts-and-aliases.md index fe782d0a..c60a95a1 100644 --- a/docs/overview/accounts-and-aliases.md +++ b/docs/overview/accounts-and-aliases.md @@ -37,7 +37,7 @@ evm_alias = keccak256(utf8(tz_address_base58check))[0:20] When an EVM account interacts with the Michelson runtime for the first time, a Michelson alias is created as a **KT1 smart contract**. This contract automatically forwards any tez it receives back to the native EVM account via the gateway. -The KT1 alias address is computed by applying **BLAKE2b with a 20-byte output** to the the UTF-8 bytes of the lowercase hex string including the `0x` prefix, then encoding the result as a KT1 contract hash: +The KT1 alias address is computed by applying **BLAKE2b with a 20-byte output** to the UTF-8 bytes of the lowercase hex string including the `0x` prefix, then encoding the result as a KT1 contract hash: ``` kt1_alias = KT1(blake2b_160(utf8("0x" + lowercase_hex(evm_address)))) diff --git a/docs/testing/testnet.mdx b/docs/testing/testnet.mdx index e46e1d91..1be71763 100644 --- a/docs/testing/testnet.mdx +++ b/docs/testing/testnet.mdx @@ -42,5 +42,5 @@ Examples of using test networks are on other pages in this documentation. ## Etherlink{/* TX */} Previewnet -The [Previewnet test network](/testing/previewnet) is a temporary testnet made available before the addition of the Michelson interface to Etherlink{/* TX */}, for developers trying to test Native Atomic Calls before Etherlink upgrade 7. +The [Previewnet test network](/testing/previewnet) is a long-running test network that runs the upgrade-7 feature set (the Michelson interface and Native Atomic Composability) ahead of the other Etherlink{/* TX */} networks. Previewnet is still available for some time. \ No newline at end of file