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
-
Balance predicates are back in validity transactions
Upstream reverted the October 1 withdrawal in both the node (#5528) and the docs. No release ever rejected balance. The relayer concern behind the removal still applies, so submit directly if it matters.
-
Audit event store moves to transaction_events_v2
The store now keys on the UTC hour first, so a re-sent event dedupes only within the same hour. Migration 004 drops the legacy tree and its rows. BUILDER_CONSIDERED is no longer emitted.
-
Added user analytics to the Builder Codes guide
How to measure active users, retention, and funnels by joining app signals with attributed transactions, including smart account cases. Registration now points to Base Dashboard.
-
Mapped every isAuthorized result for B20 policy IDs
The B20 reference now lists the result for malformed, unknown, and inverted policy IDs. It also corrects a claim that an inverted ID could be bound before Denim: updatePolicy rejects it with PolicyNotFound.
-
Forwarding events reworked on base/base main
Mempool nodes now emit TXPOOL_BUILDER_CONSUMED per builder and stop emitting TXPOOL_BUILDER_FORWARD_SUCCESS. The builder's accept event confirms delivery. On main only, not in v1.4.2 (#5521).
-
Transaction forwarding now favors high tips during a backlog
On main after v1.4.2, non-sequencer nodes forward 20% of picks oldest-first and the rest by highest tip. Two new flags tune the split and the queue depth.
-
Noted faster eviction of expired validity transactions
A validity transaction now leaves the pool as soon as its last valid block is committed, one block sooner than before. The fix is on main and in no release yet.
-
mainnet.base.org drops debug, trace, and txpool on October 8
From October 8 at 12:00 UTC the free Mainnet endpoint stops serving the debug, trace, and txpool namespaces and lowers its read rate limit. Apps that need them must move to a node provider.
-
Balance predicates withdrawn from validity transactions
Upstream removed the balance predicate because unsigned predicates let a relayer place transactions around a user's gas payment. The node now rejects it at ingress. Use storage predicates.
-
Denim Mainnet target moves to November 2026
Upstream moved the Denim Mainnet planning target from October to November 2026. Sepolia stays at October. Neither network has an activation timestamp yet.
-
Cobalt is live on Base Mainnet
Cobalt activated on Mainnet at 18:00 UTC on September 30, 2026, and the window closed cleanly. Seize, scheduled multipliers, composite policies, and validity transactions now work on both public networks.
-
Validity transactions open on Mainnet
base_sendRawTransactionValidity now answers on the Mainnet sequencer host. The validity, B20, and issuer pages no longer call these features upcoming.
-
Indexed the Cobalt launch post
Added the Cobalt launch post to the blog index. Its request sample merges two predicates into one object and does not parse, so the entry points to working examples.
-
Mainnet proof contracts switched for Cobalt
The Mainnet AggregateVerifier moved to a new address, and NitroValidator, CertManager, and P384Verifier replace NitroEnclaveVerifier. Game type 621 already resolves to the new verifier.
-
Withdrawal windows updated for Beryl
Finality, bridging, and contract pages still said withdrawals wait 7 days. They now give the Beryl windows: 5 days with one proof, 1 day when TEE and ZK proofs agree.
-
V1 node snapshots end October 5
Base stops publishing and serving V1 node database snapshots at 12:00 UTC on October 5, 2026. Restore scripts must move to V2 snapshots before then.
-
Corrected historical proofs setup and retention
The ExEx needs a storage path as well as the on switch, and the window flag counts blocks. The node's default grows from 1296000 to 6480000 blocks after v1.4.2, sized for 200ms blocks.
-
EIP-8130 drops automatic delegation
The Base node no longer delegates a code-less sender to DEFAULT_ACCOUNT on its own, and no longer emits the DelegationApplied log. Delegation now needs an explicit 0x01 entry.
-
Base node narrows EIP-8130 to k1 signatures
The node now admits only native k1 authenticators for 8130 senders and payers, so passkey signatures are rejected at admission. Delegation moves to account-change type 0x01. The feature is still unscheduled.
-
Audit event journal moves to day partitions
audit-archiver now drops whole day partitions per retention class and rejects out-of-window event times. Upgrading wipes existing transaction_events rows.
-
Cobalt verifies TEE signers fully onchain
Cobalt's TEE item is a registration change, not an infrastructure move. New prover signers are admitted by checking their Nitro attestation onchain with P-384 hints, retiring the RISC Zero and Boundless proof step.
-
Added B20 Issuer Operations guide
Seize and recover blocked balances, cancel units, announce holder-impacting changes, and schedule multipliers. Notes that executor checks on every transfer start at Denim, a gate upstream leaves out.
-
Added Base Verify guide
Sybil resistance and trait gating from verified X, Coinbase, Instagram, and TikTok accounts, through a backend token API or an onchain SignerRegistry that is live on Base Sepolia only.
-
Added Tokenized Stocks API reference
Coinbase now serves tokenized-stock records over a public read-only API with no key. The new page covers its three endpoints and the unit traps: multiplier is already de-WAD-scaled, and nav_price can go stale.
-
Mainnet Cobalt needs v1.4.2, not v1.4.1
Cobalt hits Mainnet on September 30 at 18:00 UTC. v1.4.1 carries the timestamp but lacks the validity RPC backport, so v1.4.2 is the floor. The validity limit flags also lost their experimental- prefix.
-
Added Private Transactions (Base Ledgers) guide
Base Ledgers keeps balances and transfers off the public chain and settles through one Portal contract. Covers what each of deposit, transfer, and withdraw exposes.
-
Sepolia proof contracts redeployed at Cobalt
Sepolia has new AggregateVerifier and ZkVerifier addresses, and lists NitroValidator, CertManager, and P384Verifier in place of NitroEnclaveVerifier. Mainnet addresses are unchanged.
-
Payments guide rebuilt on the Commerce Payments Protocol
Charge, authorize, capture, void, reclaim, and refund now run through the v1.1.0 AuthCaptureEscrow. Covers collectors, the three expiries, fee bounds, and the v1.0 event-topic break.
-
Inverted B20 policy IDs arrive with Denim
Bit 63 of a policy ID becomes a NOT flag at Denim. Before the fork the same ID is malformed and denies everyone, so a bound slot flips behaviour at activation.
-
Releases now publish split single-binary images
Seven images per release, all maxperf. ghcr.io/base/base is a lone base binary, not a rename of ghcr.io/base/node. No published tag carries the split yet.
-
Mainnet Cobalt activation is now pinned to September 30
Chain 8453 carries cobalt_timestamp 1790791200, September 30 2026 at 18:00 UTC, added 2026-09-21. It postdates v1.4.0, so the current stable release reads None for Mainnet and will not fork. First tag with it: v1.4.1-rc.9.
-
The ingress-rpc service was removed from base/base
crates/infra/ingress-rpc and bin/ingress-rpc are deleted, with the compose overlay and proxyd forwarding. The devnet stack is renamed, so just devnet ingress no longer resolves. Event types stay defined so archived rows parse.
-
B20 tokens reject themselves as a credit recipient at Denim
transfer, transferFrom, mint and seizeWithMemo now revert InvalidReceiver when to equals the token being credited. A different B20 token is still valid. This closes a seize path that cut balance without recording a burn.
-
Corrected the transaction-forwarding RPC method name
The P2P page named the forwarder's JSON-RPC method base_insertValidatedTransactions. The node registers only the singular base_insertValidatedTransaction, so the plural form fails. Upstream's own P2P guide still carries the error.
-
Block gossip topics now retire as forks age out
Nodes no longer hold all four block topics indefinitely. A topic drops 60 seconds after its replacement fork activates, enforced on both inbound decode and outbound publish. Dropped topics are not rejoined if the clock moves backwards.
-
Snapshot downloads on the unified base binary were hitting the wrong service
The base binary never registered Base's download defaults, so base snapshot download silently queried upstream Reth's snapshot API. It reported success while fetching data from another chain. base-reth-node was unaffected.
-
Documented snapshot benchmark gas limits and the --chain naming split
Benchmark cadences default to 10 Ggas per block at 2s and 1 Ggas at 200ms, matching 5 Ggas/s both ways. The load-test YAML block_gas_limit only paces the generator and never changes produced blocks.
-
v1.4.0 is the required build for Sepolia Cobalt on Sept 23
Upstream named the minimum release and cut it the same evening. v1.4.0 is the first tag carrying the Sepolia cobalt_timestamp of 1790186400. Mainnet is still unset in source, so its Sept 30 date has no version requirement yet.
-
RC builds split away from RC tagging in base/base
Create RC now tags a candidate and dispatches Build RC, then finishes without waiting. Candidates build in parallel instead of cancelling each other, and a green Create RC no longer means the artifacts succeeded.
-
Documented how far onchain history reaches after Denim
BLOCKHASH and the EIP-2935 buffer retain a fixed number of entries, so at 200ms blocks they span about 51 seconds and 27 minutes. Bridge and proof flows that outrun the window get a zero hash, not a revert.
-
Sepolia Cobalt is pinned to Sept 23, and no release carries it yet
cobalt_timestamp for chain 84532 is now 1790186400 (Sept 23, 18:00 UTC), compiled into the node source. It landed after v1.3.2, so Sepolia operators need a newer build. This corrects our earlier note that no release would carry the dates.
-
Base runs no free public WebSocket on Mainnet or Sepolia
The public endpoints are HTTP only and refuse a wss:// upgrade with 405. eth_subscribe and log streaming need your own node or a WebSocket-capable provider. Our public RPC table wrongly listed wss:// endpoints; it is fixed.
-
Documented Vibenet WebSocket streaming
Vibenet is the one Base network with an open WebSocket, at wss://rpc.vibes.base.org/ws. Added newHeads and logs subscription guidance, plus why 200ms blocks make polling step over blocks rather than lag.
-
Cobalt is scheduled: Sepolia Sept 23, Mainnet Sept 30
Upstream moved Cobalt off planning status and named both dates. No client release will carry them: Cobalt is contract-backed and reads its activation from the L1 registry at runtime.
-
Flagged the empty INTERSECT authorization hazard
isAuthorized never checks existence, so an INTERSECT policy ID that was never created has no children and authorizes every account. A slot meant to restrict behaves like ALWAYS_ALLOW, and nothing reverts.
-
Expanded the composite policy reference
Why composites replace flattened lists, how child ordering trades against gas, duplicates and renounced children, and the two size limits that are easy to confuse.
-
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.