Filter
Exclude
Time range
-
Near
This is the primitive behind every "read the calldata" recommendation we've given teams for two years. ERC-8213 makes it executable. Reference implementation and the full spec: github.com/PatrickAlphaC/erc…
1
71
This is chain-agnostic by design. The same transfer calldata produces the same digest on Ethereum, Arbitrum, Base, or any EVM chain. A protocol can publish expected digests alongside upgrade transactions the way Linux distros publish SHA-256 hashes alongside ISOs. Signers compute independently, compare, then sign. No chain-aware tooling needed. No trust in the front-end. Just your own hash.
1
85
The length prefix matters. Without it, different calldata payloads could collide under certain padding conditions. With it, each unique payload maps to exactly one 32-byte fingerprint. Simple construction, no ambiguity.
1
10
Solidity, two lines: function calldataDigest(bytes memory data) public pure returns (bytes32) { return keccak256(abi.encodePacked(uint256(data.length), data)); } Python, two lines: length_bytes = len(calldata).to_bytes(32, byteorder="big") digest = keccak(length_bytes calldata) Same input, same digest: 0x812cee5d...dac69985
1
46
Take a standard ERC-20 transfer call. 68 bytes of calldata: the 4-byte selector for transfer(address,uint256) plus two ABI-encoded arguments. The Calldata Digest: length-prefix the calldata as a uint256, then keccak256 the whole thing. That's it.
1
72
The Calldata Digest from ERC-8213 is two lines of code. Here's exactly how it works, with a concrete test vector you can run right now. 🧡
1
2
187
Replying to @adityadotdev
I've spent the last few months building execution infrastructure for the EVM. One thing kept bothering me. AI agents can read transactions, decode calldata and query blockchain state. But they still don't understand what an execution actually means. They don't see runtime continuity. They don't reconstruct origin. They don't recognize participant relationships. They don't remember execution patterns. Maybe the next infrastructure layer for autonomous systems isn't another model. Maybe it's Execution Intelligence. I wrote down my thoughts here: blog.bridgexapi.io/the-missi…
36
I've spent the last few months building execution infrastructure for the EVM. One thing kept bothering me. AI agents can read transactions, decode calldata and query blockchain state. But they still don't understand what an execution actually means. They don't see runtime continuity. They don't reconstruct origin. They don't recognize participant relationships. They don't remember execution patterns. Maybe the next infrastructure layer for autonomous systems isn't another model. Maybe it's Execution Intelligence. I wrote down my thoughts here: blog.bridgexapi.io/the-missi…
1
2
7
66
The benchmark for "AI agent" keeps getting quietly lowered. First it was autonomous decisions, then "mostly autonomous", now it means the LLM wrote the calldata. The x402 protocol is the first honest attempt to fix this. Watch it. 🦞
19
1. EVM memory vs storage vs calldata layout When a user does a transaction it goes in the form of calldata which have function selector with 4 bytes and abi encoding with 32 bytes of data(static). Then it goes to the EVM which copy data from calldata to memory(not all) which ⬇️
As a Smart Contract Engineer, Slap yourself if you cannot clearly explain at least 10 of the following: 1. EVM memory vs storage vs calldata layout 2. Storage slot packing & inheritance slot collisions 3. Transient storage (EIP-1153) use cases 4. delegatecall context preservation & storage layout traps 5. Proxy patterns: Transparent vs UUPS vs Beacon 6. Storage gaps in upgradeable contracts 7. Diamond pattern (EIP-2535) & facet selector clashes 8. Function selector collisions & 4-byte clashing attacks 9. ABI encoding vs encodePacked hash collisions 10. Checks-Effects-Interactions ordering 11. Reentrancy: single-function, cross-function, cross-contract, read-only 12. ERC-777 hooks & callback reentrancy surface 13. Gas griefing via return-bomb / unbounded returndata 14. 63/64 gas forwarding rule (EIP-150) 15. try/catch failure modes & bubbling reverts 16. Custom errors vs require strings gas trade-offs 17. SafeMath obsolescence & 0.8 overflow semantics 18. Unchecked blocks: when they're safe 19. Signed vs unsigned integer pitfalls in arithmetic 20. Fixed-point math & precision loss ordering 21. Front-running & sandwich attack mechanics 22. Commit-reveal schemes & MEV mitigation 23. Flashloan-based price oracle manipulation 24. TWAP oracles & manipulation cost analysis 25. EIP-712 typed structured signing 26. Signature malleability & ecrecover(0) handling 27. Replay protection across chains (chainId binding) 28. Permit (EIP-2612) & gasless approvals 29. Nonce management for meta-transactions 30. Account abstraction (EIP-4337) UserOp lifecycle 31. EIP-7702 set-code-for-EOA implications 32. CREATE vs CREATE2 address derivation 33. Metamorphic contracts & selfdestruct redeployment 34. selfdestruct post-Cancun (EIP-6780) semantics 35. Init-code vs runtime bytecode distinction 36. Immutable vs constant storage mechanics 37. Gas refund mechanics & SSTORE gas accounting (EIP-2929/3529) 38. Access list transactions (EIP-2930) 39. Warm vs cold storage access costs 40. Yul / inline assembly memory safety 41. Free memory pointer (0x40) discipline 42. Scratch space (0x00–0x3f) misuse 43. Bit manipulation & masking for packed structs 44. ERC-20 approve race condition 45. Fee-on-transfer & rebasing token integration breakage 46. ERC-721 safeTransfer reentrancy via onERC721Received 47. ERC-1155 batch transfer accounting 48. ERC-4626 vault inflation / donation attacks 49. First-depositor share-price manipulation 50. Rounding direction (round up vs down) in vault math 51. Pull-over-push payment patterns 52. Block.timestamp manipulation bounds 53. blockhash limitations & on-chain randomness fallacies 54. VRF integration & request-fulfill patterns 55. Merkle proof verification & second-preimage attacks 56. Bitmap-based airdrop claim tracking 57. Multicall & msg.value reuse across calls 58. Delegatecall to untrusted code 59. tx.origin phishing vector 60. Gas-efficient storage clearing for refunds 61. Packed storage write ordering for gas 62. Cross-contract call gas stipend assumptions 63. Forced ETH via selfdestruct breaking invariants 64. Initialization front-running on proxies 65. Signature replay across forks 66. L2 sequencer downtime oracle staleness 67. Optimistic rollup 7-day withdrawal mechanics 68. Blob transactions (EIP-4844) & calldata cost shifts 69. Precompiles (ecrecover, modexp, pairing checks) 70. BLS signature aggregation verification 71. Reentrancy guards vs transient storage locks And if you only know 10 β€” kindly return the "Senior Smart Contract Engineer" title.
1
2
57
7/ ZK Scope β€” programmable transaction policies. Define rules: allowed target contracts, function selectors, calldata patterns, ETH value ranges. Commit the full rule set as a Merkle root. Prove any transaction satisfies it without revealing the policy. Fine-grained automation that can't be front-run.
1
2
Day 64! βœ… of my Ethereum deep dive. 🀿 Chapter 14: The Ethereum Virtual Machine πŸ’» 14.6) Inside the Matrix (A Live EVM Transaction) πŸ”΄πŸ’Š We've talked about the theory of the EVM, the Stack, Memory, and Storage. Today, we put it all together and watch exactly how the Ethereum Virtual Machine processes a live transaction, byte-by-byte. πŸ”¬βš™οΈ Here is the raw bytecode of our smart contract: 60425F525F3560AB145F515500 πŸ€– If we translate those hex characters into human-readable Opcodes, here is our program: πŸ“œ Plaintext [00] PUSH1 42 [02] PUSH0 [03] MSTORE [04] PUSH0 [05] CALLDATALOAD [06] PUSH1 AB [08] EQ [09] PUSH0 [0a] MLOAD [0b] SSTORE [0c] STOP Here is the step-by-step breakdown of how the EVM executes this program: πŸ‘‡ 🧱 1. Preparing the Data (The Setup) βž” PUSH1 42: The EVM grabs the number 42 and drops it onto the bottom of the Stack. πŸ₯ž βž” PUSH0: The EVM drops a 0 right on top of it. 0️⃣ βž” MSTORE: The EVM pops the top two items off the Stack (0 and 42) and uses them as an instruction: "Go to Memory offset 0, and temporarily store the value 42 there." πŸ“πŸ§  πŸ“₯ 2. Reading the User's Input (Calldata) βž” PUSH0: Drops a 0 onto the empty Stack. πŸ“₯ βž” CALLDATALOAD: Pops the 0 off the Stack and uses it to read the transaction data (Calldata) sent by the user. Let's say the user sent the hex value AB. The EVM pushes AB onto the Stack. πŸ“¨πŸ”  βš–οΈ 3. The Logic Check (Equality) βž” PUSH1 AB: The EVM pushes its own hardcoded AB onto the Stack. πŸ”’ βž” EQ: The EVM pops the top two items off the Stack (the user's AB and the contract's AB). Because they match, it pushes a 1 (True) back onto the Stack. βœ…βš–οΈ πŸ’Ύ 4. Saving to the Blockchain (Storage) βž” PUSH0: Drops a 0 onto the Stack (which is sitting on top of the 1). πŸ₯ž βž” MLOAD: Pops the 0 and reads our old friend 42 from Memory, pushing it onto the Stack. The Stack now holds 42 on top, and 1 on the bottom. πŸ”„ βž” SSTORE: The grand finale. The EVM pops the top two items (42 and 1) and executes a permanent blockchain write: "Go to permanent Storage slot 42, and save the value 1 there." πŸ’½πŸ”₯ πŸ›‘ 5. STOP The transaction ends. The Stack and Memory are completely deleted. πŸ§ΉπŸ’¨ The only thing that remains is the permanent 1 saved in Storage Slot 42. πŸ›οΈπŸ”’ 🧠 The Mental Anchor: This is what Ethereum does billions of times a day. It is an intricate, mechanical dance of pushing, popping, loading, and storing data until a final truth is etched into the blockchain. πŸ’ƒβ›“οΈ --- I'm reading the book 'Mastering Ethereum' (the holy grail to understand the EVM) cover to cover and breaking down one under-the-hood concept every single day. πŸ“’πŸ“š Follow me to learn a new and interesting topic of Blockchain and Ethereum daily! βœ…πŸ“Ά #Ethereum
12
64
Gas optimization isn't about saving a few opcodes anymore. Post-EIP-4844 Ethereum builders need to understand blobs, calldata, batching, paymasters, L2 fees, and user experience. Great dApps optimize success, not just cost. tokentoolhub.com/gas-fee-opt…
4
53
149
Gas fees are no longer just a Solidity optimization problem. In the post-EIP-4844 Ethereum ecosystem, the cost a user pays is influenced by: β€’ L2 execution gas β€’ L1 data availability costs β€’ Blob markets β€’ Calldata fallback mechanisms β€’ Compression efficiency β€’ Transaction batching β€’ ERC-4337 account abstraction β€’ Paymaster sponsorship policies β€’ Sequencer economics β€’ Wallet behavior Many teams focus on reducing contract gas while ignoring the larger user experience problem. Users don't care about gas theory. They care whether the action works quickly, predictably, and at a reasonable cost. The biggest fee reductions often come from: βœ“ Better batching strategies βœ“ Compression-friendly data structures βœ“ Fewer storage writes βœ“ Cleaner event logging βœ“ Intelligent route selection βœ“ Blob-aware architecture βœ“ Efficient RPC infrastructure EIP-4844 changed the economics of rollups by introducing blob transactions, but blobs are not free forever. Blob markets have their own fee dynamics. Builders who assume permanently cheap blob pricing are creating future scaling risks. Paymasters can make transactions feel gasless, but poorly designed sponsorship systems can become abuse vectors and budget leaks. The best Ethereum dApps optimize more than cost. They optimize success rate. A cheap transaction that fails, retries multiple times, or forces users to switch chains is still a bad experience. Gas engineering today is really product engineering. It combines protocol design, infrastructure, user experience, data availability strategy, and smart contract optimization into a single discipline. If you're building on Ethereum, understanding modern fee architecture is becoming a competitive advantage. Read the complete guide: tokentoolhub.com/gas-fee-opt…
2
4
34
127
Jun 12
Replying to @sui414 @joeblau
Follow-up comment from @dataalways β€” that timeline when ETH stopped being deflationary is also after when EIP-4844 came out in March 2024. After which L2s transitioned from paying calldata to blobs. I remember this whole thing now re L2 scaling roadmap πŸ˜…
7
1,224
Just spent 3 hours tracing why OP-20 transfers failed mid-batch on the new router. Sig verification dropped on quantum-resilient paths after 12 hops. Fixed it, tests green. Bitcoin L1 doesn't forgive sloppy calldata. #OPNet β‚Ώ
26
DAO proposal to add restake and per-mode gas refund buffers is live: governance.igralabs.com/prop… Background Attesters who claim rewards today give up their share of future emissions, which discourages compounding. Separately, delegated attestations carry extra calldata that the current single gas refund buffer under-refunds, penalizing the recommended cold/hot wallet setup. This Proposal Adds restake, a new action that compounds pending IGRA back into stake and sends pending iKAS to the attester wallet, without giving up the emission share. No fee. The rate is 0 and stays 0 unless governance changes it via a separate proposal. Splits the single gas refund buffer into two, one for direct and one for delegated attestations, restoring parity between the two paths. Action if passed Upgrade the Attester and Config facets on the Attestation diamond. Set gas refund parameters to (54,433 direct, 56,744 delegated, 220,000 max). Who can vote on this proposal? Any IGRA holder. Voting opens in 2 hours (June 12, 10PM CET).
2
14
80
2,969