Latest Blog Posts

Tutorials and updates from the Chroma team.

Glamsterdam's Gas Repricing: Why Your Hardcoded Gas Limits Are About to Break

Glamsterdam's gas repricing EIPs change costs for DIV, KECCAK256, calldata, and nested storage. Here's what to audit before the upgrade ships.

Chroma Team

Ethereum's Contract Size Limit Is Growing: What EIP-7954 Changes for Developers

EIP-7954 raises Ethereum's 24KiB contract size limit to 32KiB in Glamsterdam. Why the limit exists, what workarounds it forces, and what changes.

Chroma Team

EIP-7951 and Ethereum's Fusaka Upgrade: Passkey Wallets Are Now First-Class on L1

EIP-7951 in Fusaka adds P-256 signature verification to Ethereum L1 at 6,900 gas, making passkey wallets viable without L2 workarounds.

Chroma Team

EIP-7805 FOCIL: How Ethereum's Hegota Upgrade Hardens Transaction Inclusion

EIP-7805 FOCIL arrives in Ethereum's Hegota upgrade to make censorship by block builders structurally harder. How inclusion lists work and what it means for developers.

Chroma Team

EIP-8141 Frame Transactions: Ethereum's Native Account Abstraction Model Explained

EIP-8141 Frame Transactions bring native account abstraction to Ethereum's Hegotá upgrade. How they differ from EIP-7702 and ERC-4337, explained.

Chroma Team

ERC-8211: How Ethereum's Smart Batching Standard Solves Multi-Step DeFi Execution

ERC-8211 introduces runtime parameter resolution for multi-step DeFi batches — no more cascading reverts when swap outputs don't match deposit inputs.

Chroma Team

EIP-7928 and Block-Level Access Lists: How Ethereum's Glamsterdam Upgrade Enables Parallel Execution

EIP-7928 introduces Block-Level Access Lists in Glamsterdam, enabling Ethereum parallel execution. Here's how BALs work and what dApp developers need to know.

Chroma Team

Foundry 1.6: Parallelized Fuzzing and the check_interval Option That Cuts Invariant Test Time by 3.6x

Foundry 1.6 ships parallelized fuzzing, a configurable check_interval that cuts invariant test time by 3.6x, and time-based block fuzzing for catching vulnerabilities unit tests miss.

Chroma Team

Foundry 1.5: The cast erc20 Commands and How They Simplify EVM Token Work

Foundry 1.5 ships cast erc20 — a dedicated CLI for ERC-20 balance checks, transfers, and approvals. Here's what changed and why it matters for your workflow.

Chroma Team

ink! Is No Longer Maintained: What Polkadot Smart Contract Developers Should Do Now

ink! smart contract development on Polkadot ended in January 2026. Here's why it happened, what it means for existing code, and where to go next.

Chroma Team

Solidity 0.8.34 Fixes a High-Severity Transient Storage Bug: What --via-ir Users Need to Know

A high-severity Solidity bug in 0.8.28–0.8.33 silently skips clearing transient storage in --via-ir mode. Who's affected and how to upgrade to 0.8.34.

Chroma Team

EIP-7702 in Practice: Adding Smart Account Features to Your Existing Users

EIP-7702 lets you add session keys, gas sponsorship, and batching to EOA wallets using viem—no user migration required.

Chroma Team

Hardhat 3 Is Production-Ready: What Changed and How to Migrate

Hardhat 3 rewrites the dev network in Rust, adds native Solidity tests, and simulates OP Stack locally. Here's what changed and how to migrate.

Chroma Team

Deploying Solidity Contracts on Polkadot Hub: A Practical Guide for EVM Developers

Polkadot Hub now runs Solidity natively. Here's what EVM developers need to know about tooling setup, the forge test caveat, and deployment differences.

Chroma Team

Playwright Web3 Testing: EIP-712 Permit Signatures and Gasless DeFi Approvals

Test EIP-712 permit signature flows in DeFi dApps with Playwright and @avalix/chroma — gasless approvals, real MetaMask popups, no mocks.

Chroma Team

EVM dApp Testing on an Anvil Mainnet Fork: Real State, Zero Risk

Learn how to combine Anvil's mainnet fork with @avalix/chroma for EVM dApp testing against real on-chain state — no mainnet gas, no mocks.

Chroma Team

Testing ERC-20 Token Approvals in DeFi dApps: A Playwright Walkthrough

Learn how to E2E test ERC-20 token approval flows in DeFi dApps using Playwright and real MetaMask interactions — no mocks required.

Chroma Team

Testing NFT Mint Flows End-to-End with MetaMask and Playwright

Learn how to test NFT mint flows in EVM dApps using MetaMask and Playwright — connect wallets, confirm transactions, assert results without mocks.

Chroma Team

The Hidden Cost of Mocked Wallets: A Practical E2E Strategy for dApps

Learn a pragmatic approach to dApp testing that combines unit, integration, and real wallet E2E coverage so teams can ship with confidence.

Chroma Team

The Most Important Web3 Test Is the One Users Cancel

A practical guide to testing wallet rejection and recovery flows in dApps, and why these paths often matter more than happy-path automation.

Chroma Team

Test What Users Actually Do: A Practical Reliability Model for Web3 dApps

An educational guide to testing real wallet-driven user flows in Web3, with a practical model teams can apply to reduce regressions and improve release confidence.

Chroma Team

Testing the Human Layer in dApps: From Green Pipelines to Real User Trust

Why many Web3 teams still ship broken flows despite passing tests, and how to design end-to-end coverage around real wallet behavior.

Chroma Team

Beyond Green Checks: Testing the Wallet Moments That Break dApps

Why many Web3 test suites pass while real users still fail, and how to design end-to-end tests around wallet behavior, rejection paths, and async chain state.

Chroma Team

Build dApp Flows That Survive Wallet Rejections

Most blockchain apps test the happy path and miss what users do in real life: cancel prompts, switch accounts, and retry. Learn a practical approach to resilient wallet E2E testing.

Chroma Team

Why dApp Tests Pass but User Flows Still Break: The Wallet UX Gap

A practical guide to testing real wallet interactions in Web3, with strategies to reduce flaky releases and catch the failures mocks miss.

Chroma Team

From Local Testing to CI Pipelines: Shipping Reliable E2E Tests for Your dApp

A practical guide to taking your Web3 wallet tests from a local dev machine to a fully automated CI pipeline with Playwright and @avalix/chroma.

Chroma Team

E2E Testing Your EVM dApp with MetaMask: No Mocks, Just Real Clicks

Run Playwright tests against a real MetaMask extension. Connect, sign, and reject flows covered in CI. No mocks, no manual clicks.

Chroma Team