Changelog
Changelog
Updates to BaseHub and notable Base network and protocol changes, newest first.
This feed is also available as raw Markdown at /changelog.md
and JSON at /changelog.json.
2026
-
Added an Accept Payments guide
The full onchain payment lifecycle: USDC and B20 checkout, EIP-3009 authorize and capture, permit-based partial capture, x402 for APIs and agents, refunds, payouts, and reconciliation.
-
Added a DeFi Integrations guide
Swaps, lending, borrowing, and vault earn on Base. Covers the 0x AllowanceHolder flow and the approval hazard of granting an allowance to the wrong contract.
-
Documented how B20 pause features are encoded
PausableFeature crosses the ABI as a uint8 ordinal, so TRANSFER is 0 rather than a scope-key hash. An empty feature array reverts with EmptyFeatureSet.
-
Removed three tokenized stocks that never launched
COINc, CRCLc, and INTCc are gone from the address and price-feed tables. Their precompiles still return name and symbol, and their feeds still publish, so read totalSupply before treating one as tradeable.
-
Validity transactions now require a bounded expiry
Every base_sendRawTransactionValidity submission must carry a block_number upper bound. Bounds already behind the build target, or beyond the node's 60-second window, are refused at ingress.
-
Validity submissions reject unknown fields and cap predicates at 64
The options object now accepts only the validity key, so a misspelled field fails the request. Decoding stops at the 65th predicate, and operators cannot raise the ceiling above 64.
-
Denim will make block-counted durations expire ten times sooner
Upstream added a warning for contract authors: block.number advances ten times faster under 200ms blocks while block.timestamp does not. Timelocks, vesting, and governance windows counted in blocks shrink tenfold.
-
200ms blocks move back to Denim, targeting October 2026
Upstream returned canonical 200ms blocks, BaseTime, and millisecond RPC timestamps to Denim, matching the node source. Cobalt now carries B20 work, validity transactions, dynamic upgrades, and a TEE migration.
-
Added a Validity Transactions reference
New page for base_sendRawTransactionValidity, covering the predicate types, fees and expiry, a Viem example, and the safety limits that come with reading raw storage slots.
-
maxperf build profile restored for release artifacts
Upstream reversed the removal of the maxperf Cargo profile. Published binaries and ghcr.io/base/node images build with it again, while release stays the default for local and Docker builds.
-
Block timing activation gate restored to Denim
The node source again gates 200ms blocks on is_denim_active after a move onto Cobalt was undone, so implementation and published docs now disagree on the fork. Neither is scheduled on any chain.
-
Corrected build profile guidance across five pages
Pages that claimed release was the only production profile now describe both: release as the build default, maxperf as what Base publishes with fat LTO and one codegen unit.
-
Cobalt and Denim swapped their headline features
Canonical 200ms blocks moved from Denim to Cobalt, now targeting late October 2026. Native account abstraction (EIP-8130) moved from Cobalt to Denim, which has no date.
-
Renamed the 200ms blocks spec to Cobalt
The 200ms native blocks page now reads as Cobalt throughout, with the late October 2026 planning target. Flashblocks retirement pages follow the same reassignment.
-
Added Snapshot Benchmarking page
How to run repeatable base-bench snapshot measurements, publish the artifacts, and compare 2-second against 200ms cadences without misreading Engine backpressure as a capacity limit.
-
EIP-8130 has left the Cobalt upgrade
Native account abstraction now sits behind its own zenith gate, which the node source leaves unset on Mainnet, Sepolia, and every other canonical chain. Only devnets opt in, via custom genesis. No replacement fork or date is announced.
-
Corrected four pages that placed EIP-8130 in Cobalt
The Cobalt, Beryl, Native Account Abstraction, and engineering blog pages all stated that account abstraction ships with Cobalt. Each now reflects the node source, which the official Base docs have not yet caught up with.
-
The maxperf build profile is gone
Base removed maxperf from the workspace, leaving release as the single production profile. Publish Release now builds the base image under PROFILE=release, and a local docker compose --build defaults to it too.
-
Corrected the Just build recipes across the docs
Build work lives in a Just module, so the commands are just build release and just build contracts rather than the hyphenated forms the pages carried. Bare just build only prints the recipe list.
-
Documented requester RPC exposure for standalone proving
The prover service RPC has no authentication, and reaching it is enough to spend your deposited PROVE. New guidance covers the loopback publish, the Docker network options that protect it, and the one daemon setting that defeats them.
-
Standalone prover stack now requires Docker Engine 28.3.3
Older daemons can leak a port published on 127.0.0.1 to the local network. Startup now checks the daemon version and refuses to reuse a Docker network whose options would allow direct routing to the container.
-
base/node repository is being archived
Operator releases now ship from base/base as of v1.3.0. The base/node repo goes read-only on September 4, 2026 and keeps only pre-v1.3.0 tags. Node docs updated, plus new NODE_TAG image pinning.
-
200ms blocks live on Vibenet; Flashblocks set for deprecation
Denim's canonical 200ms blocks now run on Vibenet for experimental testing. Upstream plans to deprecate Flashblocks in the Denim hardfork, which is still unscheduled on Sepolia and Mainnet.
-
Added Migrate to 200ms Blocks guide
A replacement for every Flashblocks subscription and every pending-tag RPC call, for applications preparing ahead of Denim.
-
Documented the protocol design goals and lineage
The Protocol Overview now opens with the four principles behind the spec — opinionated, maximally simple, fast cycles, Ethereum aligned — plus the release cadence and the chain's move off the OP Stack at Jovian.
-
Added Launch a B20 Token guide
A step-by-step path from an empty directory to a minted B20 token: Base's pinned Foundry build, the Activation Registry gate, a B20FactoryLib create script, then mint and verify.
-
Added a Builder Codes integration guide
Builder Codes attribute onchain activity to an app, wallet, or agent through an ERC-8021 calldata suffix. The guide covers Wagmi and Viem client setup, the wallet-side dataSuffix capability, and the agent registration API.
-
Added the B20 invariants and conformance tests
Thirty-six normative guarantees the precompiles hold to, plus the fifty-three scenarios that exercise them. Covers policy gating, role renunciation, supply caps, pauses, permit, and deterministic factory addresses.
-
Public Base RPC endpoints are HTTP only
No WebSocket transport is offered on mainnet.base.org or sepolia.base.org, so eth_subscribe and the newHeads and logs streams are unavailable. Subscription clients need a WebSocket-capable provider.
-
Deploy guide moved to Base's Foundry build
Stock forge and cast abort with call to non-contract address against Base precompiles. The guide now installs base-forge, base-cast, and base-anvil, which register those addresses.
-
Node providers page retired for the Base Services Hub
Base deleted its standalone node providers page and pointed all eleven references at one directory covering RPC, explorers, wallets, and tooling. The RPC breakdown stays on BaseHub.
-
Cobalt B20 additions pinned to the hardfork boundary
Seize, the ERC-8056 scheduled multiplier, and UNION/INTERSECT composite policies are specified but undialable until Cobalt activates. Every Beryl selector keeps its value and behaviour.
-
Cobalt moves to planning with a September target
Base now lists Cobalt as planning for September 2026 on both networks, with no activation timestamp yet. The fork also picks up dynamic upgrades, which read the fork schedule from an L1 contract.
-
Transaction gossip is off on every Base node
The execution layer now sets tx_gossip_disabled unconditionally and the --rollup.disable-tx-pool-gossip flag is gone. Operators no longer pair it with the sequencer endpoint.
-
Validity transactions get park and expiry examples
The transaction-event journal now shows a full admission-to-discard trace: the validity event carries the predicate list, and the park and expiry events that follow must be joined back by tx_hash.
-
Documented retention windows for the newer builder events
The validity admission event ages out alongside the plain submit event, while deferral and expiry share the shortest builder-decision window. A parked transaction can emit one deferral per flashblock.
-
Tokenized equities documented as a B20 application
Coinbase tokenized stocks run as B20 native precompiles, not per-asset contracts. Corporate actions reach holders through the multiplier, and Chainlink publishes total-return prices for thirteen equities.
-
Added a Tokenized Stocks integration guide
Covers multiplier arithmetic, transfer policies, announcement events, price-feed staleness handling during corporate actions, and the deployed token and Chainlink feed addresses.
-
B20 page now documents the scheduled multiplier path
The multiplier table listed only the instant updateMultiplier call. It now shows updateUIMultiplier and cancelUIMultiplierUpdate, and marks the instant path deprecated.
-
Denim draft would end Flashblocks in favour of 200ms canonical blocks
A draft spec proposes sealing five full blocks per second, each with its own hash and lifecycle, and retiring the Flashblocks stream. Nothing is scheduled on Sepolia or Mainnet.
-
Added a Denim 200ms native blocks page
Covers the BaseTime deposit and predeploy, the Engine and derivation rules, and the optional timestampMs and blockTimestampMs RPC fields. The Flashblocks overview now points at the draft.
-
BUILDER_EXPIRED is the builder's terminal discard
Where BUILDER_DEFERRED means not yet, the new BUILDER_EXPIRED event means never — an expired bundle validity window or position predicate that no later build attempt can satisfy.
-
Cobalt is unscheduled; native AA has no mainnet date
Base published a dedicated Cobalt upgrade page listing mainnet and Sepolia activation as TBD. EIP-8130 stays experimental and runs only on the vibenet devnet, correcting the earlier September 2026 expectation.
-
BUILDER_DEFERRED marks a move to the parking lot
A new builder event fires each time a transaction leaves the selection queue for the parking lot, repeating on promote-and-repark. Parking-capacity misses still report BUILDER_REJECTED instead.
-
Added a B20 selector stability and release history section
B20 signatures sit on the consensus surface, so the standard only grows by addition and shipped selectors keep their behaviour. The section records mainnet and Sepolia activation dates.
-
Raw-transaction admission events added to the journal
TXPOOL_SEND_RAW_TRANSACTION and TXPOOL_SEND_RAW_TRANSACTION_VALIDITY fire once per submit path at the RPC boundary, before pool insertion. Only the validity event carries data.validity_predicates; join later events back by tx_hash.
-
Final releases build one image and tag it four ways
Publish Release now runs a single base image build under PROFILE=maxperf, then applies the vX.Y.Z, X.Y, X, and latest tags to that same image on ghcr.io/base/node.
-
Upgrade guide: trait method calls fork_condition
The is_azul_active_at_timestamp example now uses the BaseUpgrades trait's own fork_condition accessor. RollupConfig's upgrade_activation is unchanged and still applies at the earlier step.
-
Testing page: system and action tests are required checks
Clarified what actually gates the merge queue. Both tiers are required status checks, so a failure blocks the merge rather than merely being run before landing. The system-test crate's own unit tests run there too.
-
Native account abstraction lands in Cobalt, not Beryl
Upstream reassigned EIP-8130 from a later Beryl phase to a later Cobalt phase and repointed its spec link. The Beryl overview now says so; the September 2026 Cobalt timing is unchanged.
-
audit-archiver now expires transaction events in Postgres
A background worker prunes rows by event type: 3 days for proxy and builder-decision events, 7 for ingress and forwarding, 30 for failures, drops, inclusion, and flashblock. Postgres is working storage, not the archive.
-
Added Standalone Proving guide
How to run the three-container prover stack against a live network without a devnet: ZK backend choices, the four historical RPC endpoints, funding a Succinct requester key, and the basectl propose/finalize/submit flow.
-
Base Mainnet operators must move to reth V2 storage by mid-August
V1 snapshots are being retired over the coming weeks. Pull a fresh V2 snapshot with base-reth-node download, or convert existing data in place with base-reth-node db migrate-v2 (archival nodes only, and much slower).
-
Added B20 Precompile Reference
Selector-level reference for all five B20 interfaces: functions with four-byte selectors, events by topic0, reverts by selector, plus the shared role, policy, and variant constants.
-
B20 spec now documents seizeWithMemo
The standard's seize path moved off the deprecated burnBlocked. Added a Seize section covering SEIZE_ROLE and the inverted SEIZE_HOLDER_POLICY check, and corrected the roles, policy scope, and pause tables.
-
Onchain Nitro attestation validation works again after Fusaka
Fusaka's MODEXP repricing and 16.7M gas cap broke base/nitro-validator. Checked P-384 inverse hints supplied in calldata bring a full cold attestation back to five transactions, each well under the cap.
-
New Block Production Review guide
Covers the halt and stall scenarios reviewers must check on base/base pull requests touching builder, execution, precompile, payload, or flashblocks paths, plus the I/O boundary size gate.
-
Security Council upgrade path is a 2-of-2 multisig
Base contract upgrades need both the CB Signers (a 3-of-6 Coinbase multisig, counted as one signature) and the Security Council (8-of-11). That is 9 approvals across 12 participants, and neither side can proceed alone.
-
basectl pointer added to sync troubleshooting
The stuck-sync entry now points at the basectl operator CLI, which reports richer node state and diagnostics than reading optimism_syncStatus directly.
-
New Testing guide for base/base
Documents the four testing tiers — unit, action, system, and fuzz — plus the static checks and the CI stages that run each one, from pull request through merge queue and nightly.
-
P2P spec: transaction forwarding moved to its own crate
The reader/forwarder pipeline now lives in tx-forwarding rather than txpool, with DestinationReader and DestinationForwarder replacing the old spawned consumer and forwarder types.
-
Development workflow recipes corrected
Static checks are now namespaced as check::<name>, and check::all no longer runs the test suite. Added the just pr recipe, which scopes tests to the crates a branch affects.
-
Snapshot FAQ: Full vs Minimal, and migrating a pruned v1 node
Dropped the stale 31-day retention claim for the Full snapshot and pointed to Reth's storage docs instead. Added guidance for operators moving a pruned v1-storage node onto v2.
-
Vibenet faucet and explorer move to chain.base.org
Base's Vibenet preview network now serves its landing page, faucet, and block explorer under chain.base.org/vibenet. The RPC endpoint at rpc.vibes.base.org is unchanged.
-
Mainnet safe head delayed on July 28
Base Mainnet's safe head lagged for about two hours on July 28. Unsafe block production was unaffected; only the batching of L2 data to Ethereum L1 was delayed. Resolved at 15:13 UTC.
-
Transaction event journal gains segment rotation
The transaction-event/v1 journal config adds max_file_bytes and max_files, capping the size of the active JSONL segment and the number of segments retained on disk.
-
Added Native Account Abstraction
New architecture page.
-
Native Account Abstraction announced (EIP-8130)
Base, with Optimism, Coinbase, and WalletConnect, is moving account abstraction into the protocol via EIP-8130, cutting a USDC transfer from 125,000 to 46,000 gas and adding native batching, sponsorship, and session keys. Ships in the Cobalt upgrade in September 2026.
-
Added Bridging and Withdrawals
New network page.
-
Added June 2026 Block Production Outage
New architecture page.
-
Added Throughput and Limits
New network page.
-
Postmortem: June 25 block production outage
Two mainnet block-production halts on June 25 and 26 traced to a sequencer bug that left the EVM journal state dirty, mischarging gas on a following transaction. Patched in base/base PR #3806.
-
Added Transaction Event Journal
New specification page.
-
Base Beryl upgrade reaches mainnet June 25
Beryl, Base's second network upgrade, adds the B20 native token standard, shortens the withdrawal delay, and raises throughput with Reth V2.
-
Added Jovian L2 Execution Engine
New specification page.
-
Added B20 Native Token Standard
New specification page.
-
Added Beryl Upgrade Overview
New specification page.
-
Added Reth V2
New specification page.
-
Added Glossary
New specification page.
-
Added Azul Execution Engine
New specification page.
-
Added Isthmus L2 Execution Engine
New specification page.
-
Added Protocol Overview
New architecture page.
-
Added Configuration
New specification page.
-
Added Rollup node RPC
New API reference page.
-
Added Azul Node Upgrade Guide
New node operations page.
-
Added Azul Proof System
New specification page.
-
Added Proof Contracts
New specification page.
-
Added TEE Prover
New specification page.
-
Added ZK Prover
New specification page.
-
Added Challenger
New specification page.
-
Added Network Incident History
New network page.
-
Added Proof System Overview
New specification page.
-
Added Proposer
New specification page.
-
Added Engineering Blog Index
New architecture page.
-
Added Multiproofs on Base
New architecture page.
-
Multiproofs live on Base mainnet
Base shipped its multiproof system pairing TEE and ZK provers, the technical bar for Stage 2 decentralization, also speeding withdrawals by removing the optimistic challenge window.
-
Added Azul Upgrade Overview
New specification page.
-
Added TEE Prover Registrar
New specification page.
-
Launched BaseHub
Initial public release — 177 documentation pages mirroring Base as agent-readable Markdown, with every page reachable by appending .md to its URL.