The core Ethereum protocol suite in TypeScript. EVM, Trie, Block & Tx execution for Node.js and browser. Longtime @ethereumfndn project, community-led.

Joined November 2020
🏗️ Thread 5 — builder lifecycle on the request bus. Thread 4: bigger bytecode + Nick's factory. Finale: Amsterdam adds builder deposit/exit requests for ePBS. EIP-8282. 🧵
📦 Thread 4 — bigger contracts, same address everywhere. Thread 3: native ETH finally logs. Today: deploy larger bytecode + rely on Nick's CREATE2 factory. EIP-7954 + EIP-7997. 🧵
1
1
1
366
Some additional security measures for EthereumJS...
2
173
Built upon EthereumJS. 💪
And we are live. This will change the way you can reliably reason with your agent about future #Ethereum protocol changes. So what can you ask?
1
2
7
252
EthereumJS retweeted
✅ glamsterdam-devnet-11 upgraded to Glamsterdam
4
5
1
28
1,729
Onwards to complete our #Glamsterdam explorations set before we translate everything for the robots 🤖 along MCP launch (see below on a date 📅): New #FYP exploration around EIP-8037 to "feel" why 21,000 gas is not necessarily 21,000 gas "as it used to be"anymore, once the hardfork kicks in on #Ethereum. Are you a wallet/infra provider/dev and affected by this? We would love to hear how! 🙏 Drop ↓
We have a launch date. 5–9 October 2026 hosted MCP at mcp.feelyourprotocol.org Feel Your Protocol is the EVM oracle for the upcoming Glamsterdam hardfork — exact simulations of execution-layer rules not yet on mainnet. Today: the website. October: your agent. roadmap.feelyourprotocol.org…
1
1
3
346
That wraps the Amsterdam deep-dive series 🎉 1 ⛽ two-dimensional gas 2 📋 BAL 3 📜 transfer logs 4 📦 code size + CREATE2 factory 5 🏗️ builder requests Full bundle: Hardfork.Amsterdam in @ethereumjs/[email protected] github.com/ethereumjs/ethere…
22
Gotcha #2 — EthereumJS is execution-layer: We accumulate EL requests + hash them. ePBS / builder consensus rules live on the CL side. Amsterdam preview — not production.
1
5
Gotcha #1 — validate vs build: Validating: missing contracts → invalid block. Building (generate: true): missing/failing call → empty request. Local demos can seed STOP bytecode; devnets ship full contract code.
1
4
In @ethereumjs/vm: runBlock() on Hardfork.Amsterdam already calls accumulateRequests(). Builder requests append after deposit / withdrawal / consolidation. Read result.requests + result.requestsHash — same Prague+ pipeline, two new types.
1
5
The contracts (Glamsterdam-devnet v7 mined): Deposit: 0x0000bFF4…8282 Exit: 0x000064D6…8282 Builders register + top up via deposit calldata (184 bytes). Exit is authorized by execution_address — not the BLS bid key.
1
6
Amsterdam (EIP-8282): Two new EIP-7685 request types on the EL: • type 0x03 — BuilderDeposit • type 0x04 — BuilderExit Dedicated predeploys. Same end-of-block system-call pattern as EIP-7002. eips.ethereum.org/EIPS/eip-8…
1
16
Status quo (EIP-7732 / Glamsterdam CL): Builders stake and exit through validator-style flows. Withdrawal credentials, voluntary exits, BLS hot keys. Works — but it blurs two different actors on one bus.
1
30
More gotchas: 7954 — bigger contracts = more deploy gas + state bloat; still capped at 64 KiB. 7997 — factory must exist in your genesis/test pre-state; mainnet already has it. Experimental — not production. Next: builder requests (EIP-8282). 🚀 [ END OF THREAD ]
16
Run EIP-7954 (Node 20+): mkdir amsterdam-7954 && cd amsterdam-7954 npm init -y npm i @ethereumjs/[email protected] @ethereumjs/[email protected] @ethereumjs/[email protected] tsx
1
7
Gotcha for 7997: Clients must NOT inject the factory at the fork boundary. In @ethereumjs/vm you seed it yourself — nonce 1 + runtime bytecode from the EIP — then call it like any contract.
1
6
EIP-7997 catalogues the factory: calldata = salt (32 bytes) || initcode forwards call value → CREATE2 returns 20-byte address on success eips.ethereum.org/EIPS/eip-7…
1
14