From 4e60745ba3fe6d2263d5ff9de937d97735c90482 Mon Sep 17 00:00:00 2001 From: eric-brown Date: Fri, 8 May 2026 14:14:46 -0400 Subject: [PATCH 1/3] Reorganize Base Chain docs IA Consolidate Flashblocks content into canonical Chain surfaces, update Azul and network parameter references, and refresh redirects/indexes for the new IA. Co-authored-by: Codex --- docs/agents.md | 12 +- docs/apps/builder-codes/agent-developers.mdx | 8 +- docs/apps/builder-codes/app-developers.mdx | 12 +- docs/apps/builder-codes/builder-codes.mdx | 8 +- docs/apps/growth/rewards.mdx | 5 +- .../guides/migrate-to-standard-web-app.mdx | 26 +- docs/apps/llms-full.txt | 22 +- docs/apps/llms.txt | 8 +- .../quickstart/deploy-on-base.mdx | 6 +- docs/apps/resources/templates.mdx | 3 +- .../overview/what-is-base-account.mdx | 17 ++ .../core/capabilities/dataSuffix.mdx | 8 +- .../ethereum-json-rpc-api/eth_call.mdx | 8 +- .../eth_getBlockByNumber.mdx | 4 +- .../eth_getTransactionReceipt.mdx | 24 +- .../eth_sendRawTransaction.mdx | 6 +- .../flashblocks-api/eth_simulateV1.mdx | 6 +- .../flashblocks-api-overview.mdx | 48 +--- .../base-chain/api-reference/rpc-overview.mdx | 265 ++++++++++-------- .../flashblocks/app-integration.mdx | 203 -------------- docs/base-chain/flashblocks/architecture.mdx | 39 --- docs/base-chain/flashblocks/faq.mdx | 165 ----------- docs/base-chain/flashblocks/overview.mdx | 84 ------ docs/base-chain/llms-full.txt | 124 +++++--- docs/base-chain/llms.txt | 47 ++-- .../network-information/base-contracts.mdx | 76 ++--- .../base-solana-bridge.mdx | 0 .../network-information/block-building.mdx | 47 ++-- .../network-information/bridges.mdx | 101 ++++--- .../configuration-changelog.mdx | 2 +- .../diffs-ethereum-base.mdx | 12 +- .../network-information/network-fees.mdx | 10 +- .../networks-and-endpoints.mdx | 20 ++ .../network-information/sequencing-policy.mdx | 70 +++++ .../throughput-and-limits.mdx | 24 ++ .../transaction-finality.mdx | 7 +- .../transaction-lifecycle.mdx | 71 +++++ .../troubleshooting-transactions.mdx | 17 +- .../node-operators/run-a-base-node.mdx | 34 ++- .../node-operators/troubleshooting.mdx | 19 +- docs/base-chain/overview.mdx | 55 ++++ .../quickstart/connecting-to-base.mdx | 30 +- docs/base-chain/quickstart/why-base.mdx | 48 ---- docs/base-chain/specs/protocol/overview.mdx | 5 + .../specs/upgrades/azul/node-upgrade.mdx | 7 +- docs/changes.md | 2 +- docs/docs.json | 121 +++++--- docs/get-started/base.mdx | 6 +- docs/get-started/learning-resources.mdx | 4 +- docs/get-started/resources-for-ai-agents.mdx | 2 +- docs/llms-full.txt | 91 +++--- docs/llms.txt | 91 +++--- docs/snippets/base-networks.mdx | 8 + 53 files changed, 987 insertions(+), 1151 deletions(-) rename docs/{base-chain => apps}/quickstart/deploy-on-base.mdx (96%) delete mode 100644 docs/base-chain/flashblocks/app-integration.mdx delete mode 100644 docs/base-chain/flashblocks/architecture.mdx delete mode 100644 docs/base-chain/flashblocks/faq.mdx delete mode 100644 docs/base-chain/flashblocks/overview.mdx rename docs/base-chain/{quickstart => network-information}/base-solana-bridge.mdx (100%) create mode 100644 docs/base-chain/network-information/networks-and-endpoints.mdx create mode 100644 docs/base-chain/network-information/sequencing-policy.mdx create mode 100644 docs/base-chain/network-information/throughput-and-limits.mdx create mode 100644 docs/base-chain/network-information/transaction-lifecycle.mdx create mode 100644 docs/base-chain/overview.mdx delete mode 100644 docs/base-chain/quickstart/why-base.mdx create mode 100644 docs/snippets/base-networks.mdx diff --git a/docs/agents.md b/docs/agents.md index 7f959aeca..4449425a1 100644 --- a/docs/agents.md +++ b/docs/agents.md @@ -11,8 +11,9 @@ description: Look up Base documentation with a compact directory-grouped index b - [AI Agents](./ai-agents/llms.txt) — Give your AI assistant a wallet. Base MCP connects any AI to your Base Account — check balances, send funds, swap tokens, sign messages, and pay x402 APIs. - [Apps](./apps/llms.txt) — A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. - [Base Account](./base-account/llms.txt) -- [Base Chain](./base-chain/llms.txt) — Bridge tokens and messages between Base and Solana Mainnet +- [Base Chain](./base-chain/llms.txt) — Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. - [Get Started](./get-started/llms.txt) +- [Static](./static/llms.txt) ## Tools available for AI assistants @@ -48,7 +49,7 @@ npx skills add base/base-skills |apps/builder-codes:agent-developers,app-developers,builder-codes,wallet-developers |apps/growth:rewards |apps/guides:migrate-to-standard-web-app -|apps/quickstart:build-app +|apps/quickstart:build-app,deploy-on-base |apps/resources:design-resources,templates |apps/technical-guides:base-notifications |base-account/basenames:basename-transfer,basenames-faq @@ -72,14 +73,15 @@ npx skills add base/base-skills |base-account/reference/prolink-utilities:createProlinkUrl,decodeProlink,encodeProlink |base-account/reference/spend-permission-utilities:fetchPermission,fetchPermissions,getPermissionStatus,prepareRevokeCallData,prepareSpendCallData,requestRevoke,requestSpendPermission |base-account/reference/ui-elements:base-pay-button,brand-guidelines,sign-in-with-base-button +|base-chain:overview |base-chain/api-reference:rpc-overview |base-chain/api-reference/debug-api:debug_traceBlockByHash,debug_traceBlockByNumber,debug_traceTransaction |base-chain/api-reference/ethereum-json-rpc-api:eth_blockNumber,eth_call,eth_chainId,eth_estimateGas,eth_feeHistory,eth_gasPrice,eth_getBalance,eth_getBlockByHash,eth_getBlockByNumber,eth_getBlockReceipts,eth_getBlockTransactionCountByHash,eth_getBlockTransactionCountByNumber,eth_getCode,eth_getLogs,eth_getStorageAt,eth_getTransactionByBlockHashAndIndex,eth_getTransactionByBlockNumberAndIndex,eth_getTransactionByHash,eth_getTransactionCount,eth_getTransactionReceipt,eth_maxPriorityFeePerGas,eth_sendRawTransaction,eth_subscribe,eth_syncing,eth_unsubscribe,net_version,web3_clientVersion |base-chain/api-reference/flashblocks-api:base_transactionStatus,eth_simulateV1,flashblocks-api-overview,newFlashblockTransactions,newFlashblocks,pendingLogs -|base-chain/flashblocks:app-integration,architecture,faq,overview -|base-chain/network-information:base-contracts,block-building,bridges,configuration-changelog,diffs-ethereum-base,network-faucets,network-fees,transaction-finality,troubleshooting-transactions +|base-chain/asset-issuance:asset-security-checklist,bridged-and-native-assets,issuing-on-base,liquidity-and-venues,token-standards +|base-chain/network-information:base-contracts,base-execution-differences,base-solana-bridge,block-building,bridges,bridging-and-withdrawals,configuration-changelog,diffs-ethereum-base,flashblocks,network-faucets,network-fees,networks-and-endpoints,rpc-providers,sequencing-policy,throughput-and-limits,transaction-finality,transaction-lifecycle,transaction-ordering,troubleshooting-transactions |base-chain/node-operators:base-v1-upgrade,node-providers,performance-tuning,run-a-base-node,snapshots,troubleshooting -|base-chain/quickstart:base-solana-bridge,connecting-to-base,deploy-on-base,why-base +|base-chain/quickstart:connecting-to-base |base-chain/security:avoid-malicious-flags,bug-bounty,report-vulnerability,security-council |base-chain/specs:overview |base-chain/specs/protocol:batcher,overview diff --git a/docs/apps/builder-codes/agent-developers.mdx b/docs/apps/builder-codes/agent-developers.mdx index 06a2da676..45de967cd 100644 --- a/docs/apps/builder-codes/agent-developers.mdx +++ b/docs/apps/builder-codes/agent-developers.mdx @@ -9,7 +9,7 @@ AI agents operate autonomously and send transactions without a user manually tri ## Why agents need Builder Codes - **Attribution** — Every transaction your agent sends is tied to your identity in the Base registry. Without it, your agent's onchain activity is anonymous. -- **Analytics** — Track your agent's transaction volume, user reach, and onchain conversion in [base.dev](https://base.dev). +- **Analytics** — Track your agent's transaction volume, user reach, and onchain conversion in [Base Dashboard](https://dashboard.base.org). - **Visibility** — Agents with Builder Codes can appear in discovery surfaces like Base's App Leaderboard and ecosystem spotlights. ## How it works @@ -59,7 +59,7 @@ If you're using an AI coding tool (Claude Code, Cursor, Codex), install the Base npx skills add base/skills ``` -Then ask your agent: **"Register my agent for a builder code on Base.dev."** +Then ask your agent: **"Register my agent for a builder code in Base Dashboard."** The skill handles wallet validation, calls the registration API, writes the returned code to `src/constants/builderCode.ts`, installs `ox`, and wires the ERC-8021 `dataSuffix` into your transaction client (viem, ethers.js, or managed service). @@ -67,9 +67,9 @@ The skill handles wallet validation, calls the registration API, writes the retu To confirm your Builder Code is being appended correctly: -**1. Check base.dev** +**1. Check Base Dashboard** -- Visit [base.dev](https://base.dev) +- Visit [Base Dashboard](https://dashboard.base.org) - Select **Onchain** from the transaction type dropdown - Under the Total Transactions section, attribution counts increment when transactions with your code are processed diff --git a/docs/apps/builder-codes/app-developers.mdx b/docs/apps/builder-codes/app-developers.mdx index 8d3e8f497..76d868364 100644 --- a/docs/apps/builder-codes/app-developers.mdx +++ b/docs/apps/builder-codes/app-developers.mdx @@ -6,13 +6,13 @@ description: "Integrate Builder Codes into your app using Wagmi or Viem to attri ## Automatic Attribution on Base -Once your app is registered on [base.dev](http://base.dev/), the Base App will auto-append your Builder Code to transactions its users make in your app (e.g. via your app, or the Base App's browser). This powers your onchain analytics in [base.dev](http://base.dev/) and qualifies you for potential future rewards. +Once your app is registered in [Base Dashboard](https://dashboard.base.org), the Base App will auto-append your Builder Code to transactions its users make in your app (e.g. via your app, or the Base App's browser). This powers your onchain analytics in Base Dashboard and qualifies you for potential future rewards. ## Integrating Outside the Base App If users also access your app on the web or through other clients, you'll need to integrate the `dataSuffix` parameter to capture that activity. -When you register on [base.dev](https://base.dev/), you will receive a **Builder Code**—a random string (e.g., `bc_b7k3p9da`) that you'll use to generate your attribution suffix. The recommended approach is to configure `dataSuffix` at the client level, which appends your Builder Code to all transactions. +When you register in [Base Dashboard](https://dashboard.base.org), you will receive a **Builder Code**—a random string (e.g., `bc_b7k3p9da`) that you'll use to generate your attribution suffix. The recommended approach is to configure `dataSuffix` at the client level, which appends your Builder Code to all transactions. You can find your code anytime under **Settings** → **Builder Code**. @@ -37,7 +37,7 @@ When you register on [base.dev](https://base.dev/), you will receive a **Builder import { base } from "wagmi/chains"; import { Attribution } from "ox/erc8021"; - // Get your Builder Code from base.dev > Settings > Builder Codes + // Get your Builder Code from Base Dashboard > Settings > Builder Codes const DATA_SUFFIX = Attribution.toDataSuffix({ codes: ["YOUR-BUILDER-CODE"], }); @@ -98,7 +98,7 @@ When you register on [base.dev](https://base.dev/), you will receive a **Builder import { base } from "viem/chains"; import { Attribution } from "ox/erc8021"; - // Get your Builder Code from base.dev > Settings > Builder Codes + // Get your Builder Code from Base Dashboard > Settings > Builder Codes const DATA_SUFFIX = Attribution.toDataSuffix({ codes: ["YOUR-BUILDER-CODE"], }); @@ -220,9 +220,9 @@ See the [Privy Builder Codes integration guide](https://docs.privy.io/recipes/ev To confirm your Builder Code is being appended correctly: -**1. Check base.dev** +**1. Check Base Dashboard** -- Visit [base.dev](https://base.dev) +- Visit [Base Dashboard](https://dashboard.base.org) - Select **Onchain** from the transaction type dropdown - Under the Total Transactions section, attribution counts increment when transactions with your code are processed diff --git a/docs/apps/builder-codes/builder-codes.mdx b/docs/apps/builder-codes/builder-codes.mdx index 2992079d5..75c1294db 100644 --- a/docs/apps/builder-codes/builder-codes.mdx +++ b/docs/apps/builder-codes/builder-codes.mdx @@ -10,7 +10,7 @@ Base Builder Codes are an ERC-721 NFT collection where unique codes (e.g. "abc12 Each code has associated metadata. Onchain metadata primarily includes a "payout address" where each code declares where potential rewards should be sent to. Offchain metadata includes more details about the app including its name and site. - Get your Builder Code by registering on [base.dev](https://base.dev/). You can find your code under **Settings** → **Builder Code**. + Get your Builder Code by registering in [Base Dashboard](https://dashboard.base.org). You can find your code under **Settings** → **Builder Code**. ## Integration Guides @@ -30,7 +30,7 @@ Each code has associated metadata. Onchain metadata primarily includes a "payout ## Benefits - **Rewards:** If your app drives transactions, Builder Codes let Base automatically attribute that usage back to you, unlocking rewards as the program expands. -- **Analytics:** Reliably track onchain usage, user acquisition, and conversion metrics in Base.dev. +- **Analytics:** Reliably track onchain usage, user acquisition, and conversion metrics in Base Dashboard. - **Visibility:** Apps with Builder Codes can show up in discovery surfaces like App Leaderboards, Base App store, and ecosystem spotlights. ## FAQ @@ -59,9 +59,9 @@ The ERC-8021 suffix adds a negligible amount of gas to each transaction at 16 ga ### How Do I Verify That My Transaction Was Properly Attributed? -**1. Check base.dev** +**1. Check Base Dashboard** -- Visit [base.dev](https://base.dev) +- Visit [Base Dashboard](https://dashboard.base.org) - Select **Onchain** from the transaction type dropdown - Under the Total Transactions section, attribution counts increment when transactions with your code are processed diff --git a/docs/apps/growth/rewards.mdx b/docs/apps/growth/rewards.mdx index ab08ab298..230cbd95e 100644 --- a/docs/apps/growth/rewards.mdx +++ b/docs/apps/growth/rewards.mdx @@ -4,13 +4,13 @@ title: Rewards description: Earn financial incentives for building high-quality Apps that drive user engagement and onchain transactions --- -[Base.dev](https://www.base.dev/) rewards developers who build Apps that deliver real value to users and drive meaningful onchain activity. You can earn rewards through verification programs, competitions, and partner opportunities. +[Base Dashboard](https://dashboard.base.org) rewards developers who build Apps that deliver real value to users and drive meaningful onchain activity. You can earn rewards through verification programs, competitions, and partner opportunities. ## How Rewards Work - Submit your App to be verified on [Base.dev](https://www.base.dev/). This process validates your ownership of the app by adding Base builder address. + Submit your App to be verified in [Base Dashboard](https://dashboard.base.org). This process validates your ownership of the app by adding a Base builder address. @@ -22,4 +22,3 @@ description: Earn financial incentives for building high-quality Apps that driv - diff --git a/docs/apps/guides/migrate-to-standard-web-app.mdx b/docs/apps/guides/migrate-to-standard-web-app.mdx index afe2fd066..31fb5a297 100644 --- a/docs/apps/guides/migrate-to-standard-web-app.mdx +++ b/docs/apps/guides/migrate-to-standard-web-app.mdx @@ -1,6 +1,6 @@ --- title: "Migrate to a Standard Web App" -description: "Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods, and registering on Base.dev." +description: "Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods and registering in Base Dashboard." --- @@ -13,15 +13,15 @@ After April 9, 2026, the Base App treats all apps as standard web apps regardles ## What's changing -The Base App is moving from the Farcaster mini-app spec to a single model: **standard web app + wallet**, powered by Base.dev. +The Base App is moving from the Farcaster mini-app spec to a single model: **standard web app + wallet**, with app metadata managed in Base Dashboard. | Before | After | | --- | --- | -| Farcaster manifest (`/.well-known/farcaster.json`) | App metadata on [Base.dev](https://www.base.dev) projects. Already registered apps do not need to update metadata. | +| Farcaster manifest (`/.well-known/farcaster.json`) | App metadata in [Base Dashboard](https://dashboard.base.org) projects. Already registered apps do not need to update metadata. | | Neynar webhooks for add/remove events | Base-owned backends (Base Account / address preferences) | | FID-based notifications via Neynar | Wallet-address notifications through the [Notifications API](/apps/technical-guides/base-notifications) | | Farcaster SDK for auth and actions | wagmi + viem + Sign-In with Ethereum (SIWE) | -| Search and discovery via Farcaster | Base.dev app metadata + [builder codes](https://docs.base.org/apps/builder-codes/builder-codes) | +| Search and discovery via Farcaster | Base Dashboard app metadata + [builder codes](https://docs.base.org/apps/builder-codes/builder-codes) | --- @@ -164,12 +164,12 @@ Your app uses the Farcaster SDK. The migration replaces Farcaster-specific auth, See the [compatibility table](#deprecated-farcaster-sdk-methods-in-the-base-app) for what will and won't work in the Base app, along with standard web alternatives. - + Farcaster-based notifications (via Neynar, FIDs, or tokens) will not reach Base App users. Follow the [Notifications guide](/apps/technical-guides/base-notifications) to fetch opted-in wallet addresses and send notifications through the Base Dashboard API. - - If you haven't registered yet, create a project at [Base.dev](https://www.base.dev) and complete your app metadata: name, icon, tagline, description, screenshots, category, primary URL, and [builder code](/apps/builder-codes/builder-codes). Already registered apps do not need to re-register or update metadata. + + If you haven't registered yet, create a project in [Base Dashboard](https://dashboard.base.org) and complete your app metadata: name, icon, tagline, description, screenshots, category, primary URL, and [builder code](/apps/builder-codes/builder-codes). Already registered apps do not need to re-register or update metadata. @@ -179,7 +179,7 @@ Your app uses the Farcaster SDK. The migration replaces Farcaster-specific auth, -Your app is already a standard web app. You're mostly done — just verify your stack and register on Base.dev. +Your app is already a standard web app. You're mostly done — just verify your stack and register in Base Dashboard. @@ -188,8 +188,8 @@ Your app is already a standard web app. You're mostly done — just verify your - Uses [SIWE](https://viem.sh/docs/siwe/utilities/createSiweMessage) for authentication where needed - - If you haven't registered yet, create a project at [Base.dev](https://www.base.dev) and complete your app metadata: name, icon, tagline, description, screenshots, category, primary URL, and [builder code](/apps/builder-codes/builder-codes). Already registered apps do not need to re-register or update metadata. + + If you haven't registered yet, create a project in [Base Dashboard](https://dashboard.base.org) and complete your app metadata: name, icon, tagline, description, screenshots, category, primary URL, and [builder code](/apps/builder-codes/builder-codes). Already registered apps do not need to re-register or update metadata. @@ -238,11 +238,11 @@ Before considering your app migrated, verify the following: Wallet connection and contract interactions use wagmi + viem. Authentication uses [SIWE](https://viem.sh/docs/siwe/utilities/createSiweMessage) where needed. - - Project is registered on [Base.dev](https://www.base.dev) with primary URL set. Name, icon, tagline, screenshots, category, description, and [builder code](/apps/builder-codes/builder-codes) are all filled in. + + Project is registered in [Base Dashboard](https://dashboard.base.org) with primary URL set. Name, icon, tagline, screenshots, category, description, and [builder code](/apps/builder-codes/builder-codes) are all filled in. - + Notifications are sent by wallet address using the [Notifications guide](/apps/technical-guides/base-notifications), not through Neynar, FIDs, or tokens. diff --git a/docs/apps/llms-full.txt b/docs/apps/llms-full.txt index 6147f00f1..b46891abc 100644 --- a/docs/apps/llms-full.txt +++ b/docs/apps/llms-full.txt @@ -2,12 +2,13 @@ ## Apps — deep guide for LLMs -> The Base App now treats all apps as standard web apps. Migrate from Farcaster-specific SDKs to wagmi + SIWE, register on Base.dev, and earn rewards for driving onchain activity. +> The Base App now treats all apps as standard web apps. Migrate from Farcaster-specific SDKs to wagmi + SIWE, register in Base Dashboard, and earn rewards for driving onchain activity. ### What you can do here - Build a Next.js app on Base with wagmi, viem, wallet connection, contract reads, contract writes, and batch transactions +- Deploy smart contracts to Base Sepolia or Base Mainnet with Foundry - Migrate an existing Farcaster-embedded app to a standard web app compatible with the Base App -- Register your app on Base.dev for search, discovery, and rewards eligibility +- Register your app in Base Dashboard for search, discovery, and rewards eligibility - Replace deprecated Farcaster SDK methods with standard web equivalents (wagmi, viem, SIWE) - Earn financial rewards for building apps that drive user engagement and onchain transactions - Attribute onchain transactions to your app using Builder Codes (ERC-8021) @@ -17,16 +18,17 @@ ### Quickstart - [Build an App](https://docs.base.org/apps/quickstart/build-app.md) — Step-by-step guide to build a Next.js app on Base with wagmi and viem +- [Deploy on Base](https://docs.base.org/apps/quickstart/deploy-on-base.md) — Step-by-step guide to deploy a smart contract to Base with Foundry ### Guides - [Add notifications](https://docs.base.org/apps/technical-guides/base-notifications.md) — REST API (via Base Dashboard) to fetch opted-in users and send in-app notifications; Base App only -- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app.md) — Step-by-step migration guide: replace Farcaster SDK, update auth and wallet logic, register on Base.dev +- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app.md) — Step-by-step migration guide: replace Farcaster SDK, update auth and wallet logic, register in Base Dashboard ### Growth - [Rewards](https://docs.base.org/apps/growth/rewards.md) — Verification programs, competitions, and partner opportunities for earning rewards ### Builder Codes -- [Builder Codes overview](https://docs.base.org/apps/builder-codes/builder-codes.md) — ERC-8021 NFT codes that attribute onchain transactions to your app; register on base.dev under Settings → Builder Code +- [Builder Codes overview](https://docs.base.org/apps/builder-codes/builder-codes.md) — ERC-8021 NFT codes that attribute onchain transactions to your app; register in Base Dashboard under Settings → Builder Code - [For App Developers](https://docs.base.org/apps/builder-codes/app-developers.md) — Append a dataSuffix to transactions using wagmi or viem; no contract changes required - [For Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers.md) — Implement the ERC-5792 DataSuffixCapability so wallets pass through attribution suffixes - [For Agent Developers](https://docs.base.org/apps/builder-codes/agent-developers.md) — Attribute AI agent transactions via the Builder Codes API @@ -39,25 +41,25 @@ After April 9, 2026, the Base App treats all apps as standard web apps regardles | Before | After | | --- | --- | -| Farcaster manifest (`/.well-known/farcaster.json`) | App metadata on Base.dev | +| Farcaster manifest (`/.well-known/farcaster.json`) | App metadata in Base Dashboard | | Neynar webhooks for add/remove events | Base-owned backends (Base Account / address preferences) | | FID-based notifications via Neynar | Wallet-address notifications through the Notifications API | | Farcaster SDK for auth and actions | wagmi + viem + Sign-In with Ethereum (SIWE) | -| Search and discovery via Farcaster | Base.dev app metadata + builder codes | +| Search and discovery via Farcaster | Base Dashboard app metadata + builder codes | Migration options: - **AI agent migration** — Install the Migration Skill: `npx skills add base/skills`, then ask your agent to migrate your Farcaster-embedded app to a standard web app -- **Manual migration** — Follow the step-by-step guide to replace SDK methods, update auth, and register on Base.dev +- **Manual migration** — Follow the step-by-step guide to replace SDK methods, update auth, and register in Base Dashboard Source: `https://docs.base.org/apps/growth/rewards.md` -Base.dev rewards developers who build apps that deliver real value and drive meaningful onchain activity: -1. Submit your app for verification on Base.dev — validates ownership by adding a Base builder address in the manifest +Base Dashboard rewards developers who build apps that deliver real value and drive meaningful onchain activity: +1. Submit your app for verification in Base Dashboard — validates ownership by adding a Base builder address in the manifest 2. Access earning opportunities — partner programs, competitions, and special campaigns Source: `https://docs.base.org/apps/builder-codes/builder-codes.md` -Builder Codes are ERC-721 NFTs (unique strings like "abc123") that tag transactions with your app identity using ERC-8021 calldata suffixes. No contract changes are required — attribution is extracted offchain. Benefits: automatic reward attribution, analytics on base.dev, and discovery surface visibility. The suffix adds 16 gas per non-zero byte. Works with EOAs, smart wallets (ERC-5792 `dataSuffix` capability), and embedded wallets (Privy, Turnkey). +Builder Codes are ERC-721 NFTs (unique strings like "abc123") that tag transactions with your app identity using ERC-8021 calldata suffixes. No contract changes are required — attribution is extracted offchain. Benefits: automatic reward attribution, analytics in Base Dashboard, and discovery surface visibility. The suffix adds 16 gas per non-zero byte. Works with EOAs, smart wallets (ERC-5792 `dataSuffix` capability), and embedded wallets (Privy, Turnkey). Source: `https://docs.base.org/apps/technical-guides/base-notifications.md` diff --git a/docs/apps/llms.txt b/docs/apps/llms.txt index 9984d6f6c..68a18dd11 100644 --- a/docs/apps/llms.txt +++ b/docs/apps/llms.txt @@ -2,21 +2,21 @@ ## Apps documentation -> Build apps that run in the Base App as standard web apps — no Farcaster SDK required. Register on Base.dev, use wagmi + SIWE for auth, and earn rewards for driving onchain activity. +> Build apps that run in the Base App as standard web apps — no Farcaster SDK required. Register in Base Dashboard, use wagmi + SIWE for auth, and earn rewards for driving onchain activity. ## Quickstart - [Build an App](https://docs.base.org/apps/quickstart/build-app.md) — End-to-end guide to ship your first app on Base +- [Deploy on Base](https://docs.base.org/apps/quickstart/deploy-on-base.md) — Set up Foundry, configure RPCs, and deploy your first contract ## Guides - [Add notifications](https://docs.base.org/apps/technical-guides/base-notifications.md) — Send in-app notifications to users via the Base Dashboard REST API -- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app.md) — Replace deprecated Farcaster SDK methods and register your app on Base.dev +- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app.md) — Replace deprecated Farcaster SDK methods and register your app in Base Dashboard ## Growth - [Rewards](https://docs.base.org/apps/growth/rewards.md) — Earn financial incentives for building apps that drive user engagement and onchain transactions ## Builder Codes -- [Builder Codes overview](https://docs.base.org/apps/builder-codes/builder-codes.md) — Attribute onchain activity to your app using ERC-8021 NFT codes; register on base.dev +- [Builder Codes overview](https://docs.base.org/apps/builder-codes/builder-codes.md) — Attribute onchain activity to your app using ERC-8021 NFT codes; register in Base Dashboard - [For App Developers](https://docs.base.org/apps/builder-codes/app-developers.md) — Integrate Builder Codes using wagmi or viem - [For Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers.md) — Implement the dataSuffix ERC-5792 capability - [For Agent Developers](https://docs.base.org/apps/builder-codes/agent-developers.md) — Attribute AI agent transactions via the API - diff --git a/docs/base-chain/quickstart/deploy-on-base.mdx b/docs/apps/quickstart/deploy-on-base.mdx similarity index 96% rename from docs/base-chain/quickstart/deploy-on-base.mdx rename to docs/apps/quickstart/deploy-on-base.mdx index af591acd6..b15b1f479 100644 --- a/docs/base-chain/quickstart/deploy-on-base.mdx +++ b/docs/apps/quickstart/deploy-on-base.mdx @@ -1,5 +1,6 @@ --- title: 'Deploy on Base' +description: Deploy a smart contract to Base Sepolia with Foundry. --- Welcome to the Base deployment quickstart guide! This comprehensive walkthrough will help you set up your environment and deploy smart contracts on Base. Whether you're a seasoned developer or just starting out, this guide has got you covered. @@ -122,7 +123,7 @@ Note the format of the contract being deployed is `: - Learn how to use analytics and Base.dev to optimize your mini app's growth. + Learn how to use analytics in Base Dashboard to optimize your mini app's growth. - diff --git a/docs/base-account/overview/what-is-base-account.mdx b/docs/base-account/overview/what-is-base-account.mdx index f996994b9..76d03d276 100644 --- a/docs/base-account/overview/what-is-base-account.mdx +++ b/docs/base-account/overview/what-is-base-account.mdx @@ -27,6 +27,23 @@ import SupportedChains from "/snippets/supported-chains.mdx"; * **Cross-app identity** – fetch a verified email or shipping address via the same SDK. * **Self-custodial** – users hold the keys; you never touch private data or funds. +## Where Base Account fits + + + + Base Accounts power sign-in, payments, identity, and wallet interactions in the Base App. + + + Register apps, manage Builder Codes, and access app analytics from the developer dashboard. + + + Build standard web apps that connect through Base Account in the Base App. + + + Attribute onchain activity from Base Account transactions back to your app. + + + ## Next steps | Goal | Start here | diff --git a/docs/base-account/reference/core/capabilities/dataSuffix.mdx b/docs/base-account/reference/core/capabilities/dataSuffix.mdx index ad8324240..228e05d1d 100644 --- a/docs/base-account/reference/core/capabilities/dataSuffix.mdx +++ b/docs/base-account/reference/core/capabilities/dataSuffix.mdx @@ -111,7 +111,7 @@ import { Attribution } from "ox/erc8021"; // Example: Using Builder Code with dataSuffix. // Using the ox/erc8021 package to generate the ERC-8021 suffix from your builder code. const builderCodeSuffix = Attribution.toDataSuffix({ - codes: ['bc_foobar'], // Get your code from base.dev + codes: ['bc_foobar'], // Get your code from Base Dashboard }); await provider.request({ @@ -135,16 +135,16 @@ await provider.request({ }); ``` -Register on [base.dev](https://base.dev) to get your Builder Code for proper attribution. +Register in [Base Dashboard](https://dashboard.base.org) to get your Builder Code for proper attribution. ## Best Practices -1. **Use with Builder Codes**: Register on [base.dev](https://base.dev) to get your Builder Code for proper attribution +1. **Use with Builder Codes**: Register in [Base Dashboard](https://dashboard.base.org) to get your Builder Code for proper attribution 2. **Set optional appropriately**: Use `optional: true` if your app can function without attribution tracking 3. **Keep suffixes small**: Larger suffixes increase gas costs -For wallet developers implementing dataSuffix support, see the [For Wallet Developers](/apps/builder-codes/builder-codes#for-wallet-developers) section in the Builder Codes guide. +For wallet developers implementing dataSuffix support, see the [Builder Codes for Wallet Developers](/apps/builder-codes/wallet-developers) guide. ## Related Capabilities diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx index 89e905ed2..672d2f1e9 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_call.mdx @@ -11,7 +11,7 @@ Executes a message call immediately without broadcasting a transaction to the ne -**`eth_call "pending"` block context on Flashblocks nodes:** Block-context properties (`block.number`, `block.timestamp`, `block.basefee`) may reflect a block several behind tip due to how nodes cache historical Flashblocks. See the [FAQ](/base-chain/flashblocks/faq#why-does-eth_call-pending-report-a-block-context-several-blocks-behind-tip) for details. +**`eth_call "pending"` block context on Flashblocks nodes:** Block-context properties (`block.number`, `block.timestamp`, `block.basefee`) may reflect a block several behind tip because Flashblocks-aware nodes keep historical Flashblocks state to tolerate propagation differences. The call result still reflects received Flashblocks state applied on top of that base context, but contracts that depend on block context properties should account for this behavior. ## Parameters @@ -65,7 +65,7 @@ Executes a message call immediately without broadcasting a transaction to the ne ## Example - + ```bash Standard (latest) curl https://mainnet.base.org \ -X POST \ @@ -101,7 +101,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -109,4 +111,4 @@ curl https://mainnet.base.org \ "result": "0x0000000000000000000000000000000000000000000000000000000005f5e100" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx index 6d9ac38f5..ec386cadf 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx @@ -26,8 +26,8 @@ Returns information about a block by its number. A block object, or `null` if no block was found. - Block number in hex. `null` when pending. - Block hash. `null` when pending. + Block number in hex. Standard `"pending"` responses may return `null`; Flashblocks `"pending"` returns the current block number being built. + Block hash. Standard `"pending"` responses may return `null`; Flashblocks `"pending"` returns the partial block hash at the current Flashblock index. Hash of the parent block. PoW nonce. Always `"0x0000000000000000"` on Base (PoS). Hash of the uncles list. Always empty on Base. diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx index 37c72fe87..23d800672 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx @@ -1,14 +1,14 @@ --- title: 'eth_getTransactionReceipt' sidebarTitle: 'eth_getTransactionReceipt' -description: 'Returns the receipt for a mined transaction. Receipts are only available after a transaction is included in a block.' +description: 'Returns the receipt for a transaction. Flashblocks endpoints can return preconfirmed receipt data from cache before the block seals.' --- -Returns the receipt for a transaction by its hash. Returns `null` for transactions that are pending or have not been mined. +Returns the receipt for a transaction by its hash. On Standard RPC endpoints, receipts are available after a transaction is included in a sealed block. On Flashblocks RPC endpoints, this method can return preconfirmed receipt data from the Flashblocks cache before the block seals. - -Receipts are only available for mined transactions. To monitor a transaction before it is sealed, use [`base_transactionStatus`](/base-chain/api-reference/flashblocks-api/base_transactionStatus) to confirm it is in the mempool, or subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) to detect its pre-confirmation in a Flashblock. - + +Preconfirmed receipts are reorg-able until the full L2 block seals. This method does not accept a `pending` parameter; Flashblocks behavior is selected by using a Flashblocks RPC endpoint. See the [RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix) for the canonical method matrix. + ## Parameters @@ -19,7 +19,7 @@ Receipts are only available for mined transactions. To monitor a transaction bef ## Returns - The transaction receipt object, or `null` if the transaction has not been mined. + The transaction receipt object, or `null` if the transaction was not found. On Flashblocks endpoints, the result can be a preconfirmed receipt from the Flashblocks cache. 32-byte transaction hash. @@ -55,6 +55,18 @@ Receipts are only available for mined transactions. To monitor a transaction bef | --- | --- | --- | | `-32000` | transaction indexing is in progress | The node is still indexing transactions. Retry after the node has finished syncing. | +## Flashblock-Specific Response Fields + +Before Azul, the Flashblocks infrastructure stream included pre-confirmed receipt data inside the `metadata.receipts` object of each Flashblock payload before the block sealed. Azul removes receipts from the raw WebSocket payload. Applications should use Flashblocks RPC by-hash lookups or subscriptions instead of depending on raw stream receipt payloads. + +| Field | Flashblock `metadata.receipts[hash]` | +| --- | --- | +| `type` | Transaction type (`0x0`, `0x1`, `0x2`, `0x7e`) | +| `status` | `"0x1"` success / `"0x0"` failure | +| `cumulativeGasUsed` | Cumulative gas in block to this transaction | +| `logs` | Emitted log objects | +| `logsBloom` | Bloom filter | +| `transactionIndex` | Index in block | ## Example diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx index 3cb233f9a..6b5560238 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.mdx @@ -33,7 +33,7 @@ Submits a pre-signed, RLP-encoded transaction to the network and returns its has ## Example - + ```bash Standard curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ @@ -45,7 +45,9 @@ curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0x02f86b82210501843b9aca008477359400825208944200000000000000000000000000000000000006872c68af0bb1400080c001a0..."],"id":1}' ``` + + ```json Response { "jsonrpc": "2.0", @@ -53,4 +55,4 @@ curl https://mainnet.base.org \ "result": "0xb903239f8543d04b5dc1ba6579132b143087c68db1b2168786408fcbce568238" } ``` - + diff --git a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx index 8c464acad..fac5b177d 100644 --- a/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/eth_simulateV1.mdx @@ -74,7 +74,7 @@ Only available on Flashblocks endpoints: `https://mainnet.base.org` / `https://s ## Example - + ```bash cURL curl https://sepolia.base.org \ -X POST \ @@ -98,7 +98,9 @@ curl https://sepolia.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -145,4 +147,4 @@ curl https://sepolia.base.org \ ] } ``` - + diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 40648d001..9103df71a 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -35,6 +35,10 @@ The raw Flashblocks infrastructure stream is the upstream WebSocket feed consume **Applications should not connect directly to the infrastructure stream.** These endpoints are for node operators only. App developers should use the [WebSocket subscription methods](#websocket-subscriptions) above via a Flashblocks-aware RPC provider. + +Azul simplifies the raw Flashblocks WebSocket payload. Account balances and receipts are not populated in the raw stream after Azul. Applications that need preconfirmed transaction or receipt data should use Flashblocks RPC behavior described in the [RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix). + + | Network | Raw stream URL | | :--- | :--- | | Mainnet | `wss://mainnet.flashblocks.base.org/ws` | @@ -44,13 +48,13 @@ The raw Flashblocks infrastructure stream is the upstream WebSocket feed consume The root structure of each infrastructure stream message. - + Unique identifier for the block being built. Remains consistent across all Flashblocks within a single full block. -Flashblock index within the current block. Starts at 0 (system transactions only). User transactions begin at index 1. Typically reaches 9–10 per block, but [may exceed 10](/base-chain/flashblocks/faq#why-can-the-flashblock-index-exceed-10) during sequencer timing drift. +Flashblock index within the current block. Starts at 0 (system transactions only). User transactions begin at index 1. Typically reaches 9-10 per block, but can exceed 10 during sequencer timing drift. Do not hardcode a final index; use `payload_id` changes or full block confirmation via standard RPC as the signal that the block has advanced. @@ -70,7 +74,7 @@ Supplemental data. **Unstable — fields may change without notice.** See [Metad Contains full block header properties. **Only present in the `index: 0` message** (the first Flashblock of each full block). - + Hash of the parent block. Address receiving transaction fees (coinbase). Block number in hex. @@ -86,7 +90,7 @@ Contains full block header properties. **Only present in the `index: 0` message* Contains the incremental block state changes for this specific Flashblock. Present in every message. - + Merkle root of the state trie after applying this Flashblock's transactions. Hash of the partial block at this Flashblock index. Changes with each Flashblock as more transactions are pre-confirmed. Cumulative gas used up to and including this Flashblock (hex). @@ -101,45 +105,15 @@ Contains the incremental block state changes for this specific Flashblock. Prese ### Metadata Object -**The `metadata` object is not stable.** Fields may be added, modified, or removed without prior notice. Do not build production dependencies on it — use the [`diff`](#diff-object) object or query finalized block data via standard RPC instead. +**The `metadata` object is not stable.** Fields may be added, modified, or removed without prior notice. Do not build production dependencies on it — use the [`diff`](#diff-object), Flashblocks RPC methods, or finalized block data via standard RPC instead. -As of v0.8.0, `new_account_balances` and `receipts` are no longer present in the `metadata` object. `block_number` remains. The `access_list` field is present but always empty. +After Azul, the raw infrastructure stream does not populate account balances or transaction receipts in `metadata`. Use Flashblocks RPC by-hash lookups, `pendingLogs`, or `newFlashblockTransactions` when you need preconfirmed transaction, receipt, or log data. - + Block number as a decimal integer. -### Receipt Object - - -`metadata.receipts` was removed in v0.8.0. This schema is preserved for reference for older node versions. On v0.8.0+, use [`eth_getTransactionReceipt`](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) for polling-based receipt data, or subscribe to [`newFlashblockTransactions`](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) with `full: true` for a real-time stream of pre-confirmed transaction data including logs. - - - -Transaction type: `0x0` Legacy, `0x1` Access List, `0x2` EIP-1559, `0x7e` Deposit (L1→L2). -Transaction status: `0x1` for success, `0x0` for failure. -Total gas used in the block up to and including this transaction (hex). -Array of event logs emitted by the transaction. See [Log Object](#log-object). -Bloom filter for the logs in this receipt. -Index of the transaction within the block (hex). - - -### Log Object - - -Contract address that emitted the event. -Array of indexed event parameters. Topic 0 is typically the event signature hash. -ABI-encoded non-indexed event parameters. -Hash of the block containing this log. -Block number in hex. -Unix timestamp of the block as a hex string. Base L2 extension to the standard Ethereum log schema. -Hash of the transaction that emitted this log. -Index of the transaction in the block (hex). -Log's index position within the block (hex). -`true` if the log was removed due to a chain reorg. - - ### Complete Examples **Index 0** — includes the `base` object (block header): diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index 25dc9aa94..8eb1bde3c 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -1,112 +1,181 @@ --- title: 'Base RPC Overview' sidebarTitle: 'Overview' -description: 'Complete reference for all JSON-RPC and Flashblocks methods available on Base nodes.' +description: 'How to choose between Standard RPC, Flashblocks RPC, and API method families on Base.' --- -Base exposes a single, fully EVM-compatible JSON-RPC API across two performance tiers. You can move from 2-second block confirmations to 200ms pre-confirmations by switching one URL and one block tag. +import BaseNetworks from "/snippets/base-networks.mdx"; -## Networks +Base exposes an EVM-compatible JSON-RPC API through two RPC tiers: -| Network | Chain ID | Type | Archive | -| :--- | :--- | :--- | :--- | -| Mainnet | `8453` | Production | Yes | -| Sepolia | `84532` | Testnet | Yes | +- **Standard RPC** for normal Ethereum-compatible reads, writes, logs, and debugging against sealed blocks and standard pending state. +- **Flashblocks RPC** for apps that need preconfirmed state and transaction signals before the next L2 block seals. -## Endpoints +Most apps should start with Standard RPC. Use Flashblocks RPC when faster state reads, transaction feedback, or realtime subscriptions materially improve the user experience. - - - | | HTTP | - | :--- | :--- | - | RPC | `https://mainnet.base.org` | - - - | | HTTP | - | :--- | :--- | - | RPC | `https://sepolia.base.org` | - - +## Choose an RPC Tier + +| If your app needs to... | Use... | Notes | +| :--- | :--- | :--- | +| Read confirmed chain state | Standard RPC with `"latest"` | Default choice for balances, contract reads, blocks, receipts, and logs. | +| Submit transactions | Standard or Flashblocks RPC | `eth_sendRawTransaction` broadcasts the signed transaction; confirmation behavior depends on how you read it back. | +| Read preconfirmed state | Flashblocks RPC with `"pending"` | Useful for balances, storage, `eth_call`, gas estimation, pending logs, and block reads before the L2 block seals. | +| Track a transaction before it seals | Flashblocks RPC by hash, `base_transactionStatus`, or subscriptions | Preconfirmed transaction and receipt responses are strong signals, not finality guarantees. | +| Operate RPC or node infrastructure | Flashblocks RPC plus the raw Flashblocks stream when needed | The raw stream is infrastructure-oriented. Apps should usually use RPC methods and subscriptions. | - -The public endpoints above are rate-limited and not suitable for production traffic. For production use, connect through a [node provider](/base-chain/node-operators/node-providers). - + +For many app reads, the practical change is switching to a Flashblocks endpoint and using the `"pending"` block tag. + The public Base endpoints are **HTTP only**. WebSocket RPC connections (`eth_subscribe`, `newHeads`, `logs`) are not available on public Base endpoints — use a [node provider](/base-chain/node-operators/node-providers) such as Alchemy or QuickNode for WebSocket support. -## Flashblocks +Flashblocks are sub-block preconfirmations produced while Base is building the next L2 block. Standard L2 blocks seal about every 2 seconds. Flashblocks expose the block-in-progress at about 200ms resolution, so apps can read sequencer-ordered state before the full L2 block is sealed. -All Base public endpoints are Flashblocks-enabled. Every standard `eth_` method works identically, and the `pending` block tag reflects the current **pre-confirmed block in progress**, updated every ~200ms with new batches of sequencer-ordered transactions. +On **Standard RPC**, `"pending"` follows normal Ethereum JSON-RPC behavior and reflects pending transaction pool state. -Calls like `eth_getBalance`, `eth_getStorageAt`, and `eth_call` run against real sequencer state up to 1.8 seconds before the block seals, with sub-second latency. +On **Flashblocks RPC**, `"pending"` reflects the current preconfirmed block-in-progress. Methods such as `eth_getBalance`, `eth_getStorageAt`, `eth_call`, and `eth_estimateGas` can use that preconfirmed state. -## API Reference + +Preconfirmed responses are reorg-able until the full L2 block seals. For finality stages and the Flashblock reorg SLO, see [Transaction Finality](/base-chain/network-information/transaction-finality). + -### Ethereum JSON-RPC API +## Common Tasks -Core Ethereum protocol methods for account queries, block and transaction data, gas estimation, and log filtering. + + + Use `eth_call`, `eth_getBalance`, `eth_getStorageAt`, `eth_getCode`, and `eth_getTransactionCount`. Add `"pending"` on Flashblocks RPC to read preconfirmed state. + + + Broadcast signed transactions with `eth_sendRawTransaction`, then choose Standard or Flashblocks reads depending on the confirmation signal your app needs. + + + Use transaction and receipt lookups for sealed data. On Flashblocks RPC, by-hash lookups can also return preconfirmed cache data before the L2 block seals. + + + Use WebSocket subscriptions such as `eth_subscribe`, `newFlashblockTransactions`, `pendingLogs`, and `newFlashblocks` when polling is too slow. + + + Use `eth_simulateV1` to simulate bundles against preconfirmed state on Flashblocks endpoints. + + + Use debug methods for local development, transaction traces, and block replay. Availability and rate limits vary by provider. + + - -Methods marked ✓ support the `"pending"` block tag, which reflects the current pre-confirmed Flashblock in progress. - +## Endpoint URLs -| Method | Description | Flashblocks `pending` | -| :--- | :--- | :--- | -| [eth_blockNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber) | Current block number | — | -| [eth_getBalance](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance) | Account ETH balance | ✓ | -| [eth_getTransactionCount](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount) | Account nonce / tx count | ✓ | -| [eth_getCode](/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode) | Deployed contract bytecode | ✓ | -| [eth_getStorageAt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt) | Contract storage slot value | ✓ | -| [eth_call](/base-chain/api-reference/ethereum-json-rpc-api/eth_call) | Execute read-only call | ✓ | -| [eth_getBlockByNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber) | Block data by number | ✓ | -| [eth_getBlockByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash) | Block data by hash | — | -| [eth_getBlockReceipts](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts) | All receipts for a block | ✓ | -| [eth_getBlockTransactionCountByNumber](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber) | Tx count by block number | ✓ | -| [eth_getBlockTransactionCountByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash) | Tx count by block hash | — | -| [eth_getTransactionByHash](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash) | Transaction data by hash | — | -| [eth_getTransactionByBlockHashAndIndex](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex) | Tx by block hash and index | — | -| [eth_getTransactionByBlockNumberAndIndex](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex) | Tx by block number and index | — | -| [eth_getTransactionReceipt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) | Receipt for a mined tx | — | -| [eth_sendRawTransaction](/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction) | Submit signed transaction | — | -| [eth_gasPrice](/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice) | Current gas price | — | -| [eth_maxPriorityFeePerGas](/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas) | Max priority fee estimate | — | -| [eth_feeHistory](/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory) | Historical base fee and rewards | — | -| [eth_estimateGas](/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas) | Estimate gas for a tx | ✓ | -| [eth_getLogs](/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs) | Query event logs by filter | ✓ | -| [eth_chainId](/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId) | Network chain ID | — | -| [eth_syncing](/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing) | Node sync status | — | -| [net_version](/base-chain/api-reference/ethereum-json-rpc-api/net_version) | Network version ID | — | -| [web3_clientVersion](/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion) | Client version string | — | -| [eth_subscribe](/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe) | Subscribe to events (WSS) | ✓ | -| [eth_unsubscribe](/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe) | Cancel a subscription (WSS) | — | +Most readers can use their provider's Base endpoint directly. Expand this section when you need the public Base RPC URLs, chain IDs, explorers, or Flashblocks endpoint URLs. -### Flashblocks API + + + -Pre-confirmation methods for sub-second transaction signals on Base. These methods enable reading state, simulating bundles, and streaming events up to ~1.8 seconds before a block seals. +## API Surfaces -| Method | Description | -| --- | --- | -| [eth_simulateV1](/base-chain/api-reference/flashblocks-api/eth_simulateV1) | Simulate transaction bundles against pre-confirmed state | -| [base_transactionStatus](/base-chain/api-reference/flashblocks-api/base_transactionStatus) | Check if a transaction has been received by the mempool | -| [newFlashblockTransactions](/base-chain/api-reference/flashblocks-api/newFlashblockTransactions) | Subscribe to individual pre-confirmed transactions | -| [pendingLogs](/base-chain/api-reference/flashblocks-api/pendingLogs) | Subscribe to filtered logs from pre-confirmed transactions | -| [newFlashblocks](/base-chain/api-reference/flashblocks-api/newFlashblocks) | Subscribe to full Flashblock payload stream | +### Ethereum JSON-RPC API + +Core Ethereum protocol methods for account queries, contract calls, block and transaction data, gas estimation, log filtering, transaction submission, and WebSocket subscriptions. These methods work on both Standard and Flashblocks endpoints. + + + + `eth_call`, `eth_getBalance`, `eth_getStorageAt`, `eth_getCode`, `eth_getTransactionCount` + + + `eth_getBlockByNumber`, `eth_getBlockByHash`, transaction count methods, transaction lookups, receipts + + + `eth_estimateGas`, `eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory` + + + `eth_getLogs`, `eth_subscribe`, `eth_unsubscribe` + + + +### Flashblocks API + +Flashblocks methods provide preconfirmation-specific capabilities on Flashblocks endpoints. Use them when your app needs sub-second transaction status, filtered pending logs, preconfirmed transaction streams, or bundle simulation. + + + + Check whether a transaction has reached the mempool before it is sealed into an L2 block. + + + Subscribe to filtered logs from preconfirmed transactions. + + + Subscribe to individual preconfirmed transactions. + + + Subscribe to Flashblock payloads. Most apps should prefer higher-level RPC methods unless they need the raw payload shape. + + ### Debug API -Development and debugging utilities for deep transaction inspection and block replay. Debug methods replay transactions and are computationally expensive — availability and rate limits vary by [node provider](/base-chain/node-operators/node-providers). +Debug methods replay transactions and blocks for development and incident analysis. They are computationally expensive, so availability and rate limits vary by [node provider](/base-chain/node-operators/node-providers). + + + + Inspect full EVM execution for a transaction. + + + Replay all transactions in a block by number or hash. + + + +## Flashblocks Behavior Matrix + +The table below is the canonical behavior summary for pages that need exact Flashblocks semantics. Most app developers only need the decision table above; use this section when you are choosing method-level behavior or documenting provider expectations. + + + + Use the Flashblocks endpoint with the `"pending"` block tag when you want preconfirmed state. + + | Surface | Standard RPC | Flashblocks RPC | + | :--- | :--- | :--- | + | State reads: `eth_call`, `eth_getBalance`, `eth_getStorageAt`, `eth_getCode`, `eth_getTransactionCount` | Ethereum JSON-RPC behavior against sealed blocks or standard pending state. | With `"pending"`, reflects the current Flashblock state. | + | Block reads: `eth_getBlockByNumber`, `eth_getBlockReceipts`, block transaction counts by number | Ethereum JSON-RPC behavior against sealed blocks. | With `"pending"`, reflects the current Flashblock state. | + + `eth_getBlockByHash` and block transaction counts by hash do not use a `"pending"` tag because they identify an explicit block hash. + + + + Transaction and receipt lookups by hash do not accept a `"pending"` parameter. Flashblocks behavior is selected by using a Flashblocks RPC endpoint. + + | Method | Standard RPC | Flashblocks RPC | + | :--- | :--- | :--- | + | `eth_getTransactionByHash` | Returns sealed transaction data, or `null` if not found. | Can return preconfirmed transaction data from the Flashblocks cache before the L2 block seals. | + | `eth_getTransactionReceipt` | Returns sealed receipt data, or `null` if not found. | Can return preconfirmed receipt data from the Flashblocks cache before the L2 block seals. | + + Preconfirmed by-hash responses can be reorged before the full L2 block seals. + + + + Flashblocks-only methods and subscriptions are available only on Flashblocks endpoints. + + | Surface | Behavior | + | :--- | :--- | + | `eth_simulateV1` | Simulates bundles against preconfirmed state. | + | `base_transactionStatus` | Checks whether a transaction has reached the mempool. | + | `newFlashblockTransactions` | Streams individual preconfirmed transactions. | + | `pendingLogs` | Streams filtered logs from preconfirmed transactions. | + | `newFlashblocks` | Streams Flashblock payloads over WebSocket. | + + + + The raw Flashblocks WebSocket stream is intended for infrastructure and node operators, not normal application polling. Applications should usually use RPC methods, by-hash lookups, or Flashblocks subscriptions instead. + + Azul removes account balances and receipts from the raw WebSocket payload. Apps that need preconfirmed transaction or receipt data should use Flashblocks RPC behavior rather than depending on raw stream payload fields. + + -| Method | Description | -| --- | --- | -| [debug_traceTransaction](/base-chain/api-reference/debug-api/debug_traceTransaction) | Full EVM execution trace for a transaction | -| [debug_traceBlockByHash](/base-chain/api-reference/debug-api/debug_traceBlockByHash) | EVM traces for all transactions in a block by hash | -| [debug_traceBlockByNumber](/base-chain/api-reference/debug-api/debug_traceBlockByNumber) | EVM traces for all transactions in a block by number | +## Request and Response Format -## Request & Response Format +All JSON-RPC requests are HTTP POST requests with `Content-Type: application/json`. -All requests are HTTP POST with `Content-Type: application/json`. +Every request includes the JSON-RPC version, method name, ordered parameters, and an ID that is echoed back in the response. | Field | Type | Description | | :--- | :--- | :--- | @@ -115,39 +184,7 @@ All requests are HTTP POST with `Content-Type: application/json`. | `params` | array | Method parameters in order | | `id` | number \| string | Identifier echoed back in the response | -**Request:** - -```json -{ - "jsonrpc": "2.0", - "method": "eth_getBalance", - "params": ["0x742d35Cc6634C0532925a3b8D4C9dD0b4f3BaEa", "pending"], - "id": 1 -} -``` - -**Success response:** - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "result": "0x1a055690d9db80000" -} -``` - -**Error response:** - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "error": { - "code": -32602, - "message": "Invalid params" - } -} -``` +Successful responses include `jsonrpc`, `id`, and `result`. Error responses include `jsonrpc`, `id`, and an `error` object with a numeric `code` and human-readable `message`. ## Error Codes @@ -158,14 +195,14 @@ All requests are HTTP POST with `Content-Type: application/json`. | `-32601` | Method not found | Method does not exist or is unavailable | | `-32602` | Invalid params | Invalid method parameters | | `-32603` | Internal error | Internal JSON-RPC error | -| `-32000` | Server error | Node-specific error (see message) | +| `-32000` | Server error | Node-specific error. See the returned message for details. | ## Block Parameters -| Value | Standard | Flashblocks | +| Value | Standard RPC | Flashblocks RPC | | --- | --- | --- | | `"latest"` | Most recently sealed block | Most recently sealed block | -| `"pending"` | Unmined transaction pool state | **Current Flashblock in progress (~200ms resolution)** | +| `"pending"` | Unmined transaction pool state | Current Flashblock in progress, at about 200ms resolution | | `"safe"` | Latest safe block | Latest safe block | | `"finalized"` | Latest finalized block | Latest finalized block | | `"earliest"` | Genesis block | Genesis block | diff --git a/docs/base-chain/flashblocks/app-integration.mdx b/docs/base-chain/flashblocks/app-integration.mdx deleted file mode 100644 index d7b417fe8..000000000 --- a/docs/base-chain/flashblocks/app-integration.mdx +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: App Integration -sidebarTitle: App Integration -description: Integrate Flashblocks into your app for 200ms transaction confirmations using RPC APIs and popular libraries like Ethers, Wagmi and Viem. ---- - -Choose the integration method that fits your use case: - -| Use Case | Recommended Approach | Documentation | -|----------|---------------------|---------------| -| **Apps needing instant UX** | Flashblocks-aware RPC with `pending` tag | [API Reference](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview) | -| **Infrastructure providers** | Host Flashblocks-aware RPC nodes | [Enable Flashblocks](/base-chain/node-operators/run-a-base-node#enable-flashblocks) | -| **Standard apps** | Continue using regular RPCs | [JSON-RPC API Reference](/base-chain/api-reference/rpc-overview) | - - -Applications should avoid hard dependencies on the WebSocket stream. RPCs provide stable behavior and automatic failover to regular blocks if Flashblocks go down. - - -## RPC Endpoints - -For HTTP and WebSocket endpoint URLs, see the [Flashblocks API Reference](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview). Public endpoints are rate-limited. For production use, connect through a Flashblocks-enabled node provider such as Alchemy, QuickNode, or dRPC. - -## Performance Characteristics - -| Metric | Value | -|--------|-------| -| Flashblock build time (P50) | ~10ms | -| Preconfirmation latency | ~200ms | -| Full block time | 2 seconds | -| Flashblocks per block | 10 | -| Reorg rate | < 0.1% | - -## Gas & Transaction Sizing - -The gas budget is **cumulative**, not per-Flashblock. Each Flashblock unlocks an additional 1/10 of the total block gas: - -| Flashblock | Cumulative Gas Available | -|------------|--------------------------| -| 1 | 1/10 of block limit (~18.75M gas) | -| 2 | 2/10 of block limit (~37.5M gas) | -| 3 | 3/10 of block limit (~56.25M gas) | -| ... | ... | -| 10 | Full block limit (~187.5M gas) | - - -**Unused gas carries forward.** If Flashblock 1 only uses 0.3/10 of gas, Flashblock 2 can use up to 1.7/10 (the cumulative 2/10 limit minus what's already been used). - - -**Implications for large transactions:** -- Transactions exceeding 1/10 of block gas (~18.75M) may not land in the first Flashblock — they wait until enough cumulative capacity exists. -- There is a separate **max gas limit per transaction** on Base, distinct from Flashblock capacity. -- If confirmation speed matters, keep individual transactions under ~18.75M gas to maximize the chance of inclusion in the earliest Flashblock. - -## Reliability & Fallback - -Base targets a **< 0.1% Flashblock reorg rate** — meaning a preconfirmation was streamed but not included in the final block. This is rare, but apps should account for it. - - -**Implement fallback logic.** Treat preconfirmations as strong signals, not guarantees. For critical operations, confirm against finalized block data. Check live reorg metrics at [base.org/stats](https://base.org/stats). - - -If Flashblocks become unavailable, the sequencer continues operating normally and confirmation falls back to standard 2-second blocks. Build your app to handle both cases gracefully. - -## Library Examples - -You will need to use a Flashblocks-aware RPC endpoint to use Flashblocks with the following libraries: - -### [Wagmi](https://wagmi.sh) - -To use Flashblocks with Wagmi, you will need to use the `basePreconf` chain in the Wagmi Config (see `config.ts`). - - - -```tsx Example.tsx -import { useSendTransaction, useWaitForTransactionReceipt } from "wagmi"; - -function SendTransaction() { - const { data: hash, sendTransaction } = useSendTransaction(); - const { data: receipt } = useWaitForTransactionReceipt({ hash }); - - return ( -
- - {hash &&
Hash: {hash}
} - {receipt &&
Included on block number: {receipt.blockNumber}
} -
- ) -} -``` - -```tsx App.tsx -import { QueryClient, QueryClientProvider } from '@tanstack/react-query' -import { WagmiProvider, useAccount } from 'wagmi' -import { config } from './config' -import { Example } from './Example' - -const queryClient = new QueryClient() - -function App() { - return ( - - - - - - ) -} -``` - -```tsx config.ts -import { createConfig, http } from "wagmi"; -import { baseSepoliaPreconf } from "wagmi/chains"; -import { baseAccount } from "wagmi/connectors"; - -export const config = createConfig({ - chains: [baseSepoliaPreconf], - connectors: [baseAccount()], - transports: { - [baseSepoliaPreconf.id]: http(), - }, -}); -``` - -
- -### [Viem](https://viem.sh) - -```ts -import { createWalletClient, http, parseEther, publicActions } from "viem"; -import { privateKeyToAccount } from "viem/accounts"; -import { baseSepoliaPreconf } from "viem/chains"; - -// Create client with the Flashblocks-aware chain. -const account = privateKeyToAccount(`0x${process.env.PRIVATE_KEY}`); -const client = createWalletClient({ - account, - chain: baseSepoliaPreconf, - transport: http(), -}) - .extend(publicActions); - -const submissionTime = new Date(); -console.log(`Submitting transaction at: ${submissionTime.toISOString()}`); - -// Send transaction. -const hash = await client.sendTransaction({ - to: "0x...", - value: parseEther('0.0001'), -}); -console.log(`Transaction hash: ${hash}`); - -// Wait for transaction to be included. -const receipt = await client.waitForTransactionReceipt({ hash }); -const confirmTime = new Date(); - -console.log(`Transaction included at: ${confirmTime.toISOString()}`); -console.log(`Time difference: ${confirmTime - submissionTime}ms`); -``` - -### [Ethers](https://github.com/ethers-io/ethers.js) - -```jsx - const providerA = new ethers.JsonRpcProvider( - "https://sepolia.base.org" - ); - - const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, providerA); - - try { - // Create a simple transaction (sending 0.001 ETH to a random address) - const tx = { - to: "", - value: ethers.parseEther("0.0000001"), - }; - - // Submit transaction - const submissionTime = new Date(); - const transaction = await wallet.sendTransaction(tx); - - console.log(`Submitting transaction at: ${submissionTime.toISOString()}`); - console.log(`Transaction hash: ${transaction.hash}`); - - await transaction.wait(0); // Make sure to set the confirmation count to 0 - - console.log("Transaction confirmed"); - const confirmationTime = new Date(); - console.log(`Transaction confirmed at: ${confirmationTime.toISOString()}`); - console.log(`Time difference: ${confirmationTime - submissionTime}ms`); - } -``` - -You should see the confirmation time significantly lower than the standard RPC endpoint. - -## Support - -For feedback, support or questions about Flashblocks, please don't hesitate to contact us in the `#developer-chat` channel in the [Base Discord](https://base.org/discord). diff --git a/docs/base-chain/flashblocks/architecture.mdx b/docs/base-chain/flashblocks/architecture.mdx deleted file mode 100644 index f1b24eda5..000000000 --- a/docs/base-chain/flashblocks/architecture.mdx +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: Flashblocks Architecture -sidebarTitle: Architecture -description: Understand the sequencer architecture and infrastructure components that power Flashblocks on Base. ---- - -## Before Flashblocks - -Base operates a high-availability sequencer system with five sequencer instances: - -| Component | Role | -|-----------|------| -| **base-consensus** | Consensus layer (CL) — replaced op-node after Azul | -| **base-reth-node** | Execution layer (EL) — replaced op-geth after Azul | -| **op-conductor** | High availability controller with Raft consensus for leader election | - -One sequencer instance acts as the **leader**, responsible for building blocks and propagating them via P2P. The remaining four act as **followers** that sync the chain. Leadership transfers if the current leader stops producing blocks. - -## With Flashblocks - -Flashblocks introduce several new infrastructure components: - -| Component | Purpose | What It Unlocks | -|-----------|---------|-----------------| -| **rollup-boost** | CL↔EL Engine API proxy | Enables sharing Flashblocks with the EL without modifying the CL. Provides a stable seam for future block-building evolutions (multi-builder, etc.) | -| **base-builder** | Out-of-protocol builder at 200ms cadence | Produces the sub-second Flashblocks, decoupled from the EL. Enables pluggable builder mechanisms | -| **websocket-proxy** | Flashblocks stream fan-out | Broadcast layer so many consumers can read the stream without overwhelming the builder | -| **[base](https://github.com/base/base)** | RPC surface exposing preconfirmations | Converts streamed Flashblocks into familiar RPCs so apps and wallets can consume preconfirmation state | - -[rollup-boost](https://github.com/flashbots/rollup-boost) is built and maintained by Flashbots, while Base maintains [base-builder](https://github.com/base/base/tree/main/crates/builder), the websocket-proxy, and the [base](https://github.com/base/base) components. - ---- - -## Further Reading - -- [Flashblocks Overview](/base-chain/flashblocks/overview) — Key concepts and transaction lifecycle -- [Enable Flashblocks](/base-chain/node-operators/run-a-base-node#enable-flashblocks) — Run your own Flashblocks-aware RPC node -- [API Reference](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview) — RPC methods, WebSocket subscriptions, and infrastructure stream schema -- [Flashblocks Deep Dive](https://blog.base.dev/flashblocks-deep-dive) — Engineering blog post with implementation details diff --git a/docs/base-chain/flashblocks/faq.mdx b/docs/base-chain/flashblocks/faq.mdx deleted file mode 100644 index c07f4264c..000000000 --- a/docs/base-chain/flashblocks/faq.mdx +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Flashblocks FAQ -sidebarTitle: FAQ -description: Frequently asked questions about Flashblocks, including block building, WebSocket data, RPC usage, and node setup. ---- - - -For a comprehensive introduction to how Flashblocks work, see the [Flashblocks Overview](/base-chain/flashblocks/overview). - - -## Block Building - - - - All Base blocks are built by the Flashblocks builder, meaning **Flashblocks are always live**. However, apps may choose not to rely on preconfirmations and can continue using standard RPCs without any Flashblocks integration. - - - - No significant differences—both order transactions by fee. The main difference is timing: Flashblocks occur every 200ms instead of every 2 seconds. - - See [Block Building](/base-chain/network-information/block-building#flashblocks) for details. - - - - The sequencer will not stop publishing Flashblocks unless an extreme circumstance makes running them unsafe. If this happens, preconfirmations are disabled network-wide and confirmations fall back to standard 2-second blocks. The sequencer continues operating normally. - - - - Transactions with large gas limits (> ~18.75M gas, which is 1/10 of the ~187.5M block limit) may have longer inclusion times. This is because the builder allocates gas cumulatively—each Flashblock `j` can use up to `j/10` of the total block gas limit. Large transactions can be included once enough cumulative capacity exists. - - See [Gas & Transaction Sizing](/base-chain/flashblocks/app-integration#gas-&-transaction-sizing) for the full breakdown. - - - - There's no way to guarantee which Flashblock a transaction lands in, similar to how you can't guarantee a specific block. To improve chances of quick inclusion: - - - Set a higher priority fee - - Keep gas limits below ~18.75M (1/10 of block limit) to be eligible for Flashblock 1 - - - - The Flashblock builder uses a **dynamic mempool** that continuously accepts new transactions while building. This design prioritizes **low inclusion latency** over strict fee ordering. - - **What this means:** - - Transactions are ordered by fee *at the time they're selected* for inclusion - - If a high-fee transaction arrives after a lower-fee transaction has already been committed to the current Flashblock, the high-fee transaction will appear after it (or in the next Flashblock) - - This is expected behavior, not a bug—the builder doesn't "reorder" already-committed transactions - - **Why this tradeoff?** - - A "snapshot" mempool (freezing the transaction pool at the start of each block) would guarantee strict fee ordering but increase inclusion latency. The dynamic approach gets transactions included faster at the cost of occasionally "breaking" the expected priority gas auction (PGA) order. - - **For traders and bots:** If strict fee-based ordering is critical for your use case, be aware that arrival timing matters as much as fee amount within a 200ms Flashblock window. - - - - Base targets a Flashblock reorg rate of < 0.1%. While reorgs are rare, applications should implement fallback logic for critical operations. - - Check current metrics at [base.org/stats](https://base.org/stats). - - - - A reorg means a Flashblock was streamed as a preconfirmation but wasn't included in the final block. This is rare due to architectural improvements in rollup-boost that prevent tail Flashblock reorgs. Apps should handle this possibility gracefully, but occurrences are minimal. - - - ---- - -## WebSocket - - - - **No.** The raw Flashblocks WebSocket (`wss://mainnet.flashblocks.base.org/ws`) is reserved for infrastructure-to-node data syncing. Applications should not connect to it directly. - - Instead, query your RPC node or node provider (e.g., QuickNode, Alchemy, Infura, dRPC) for Flashblocks data via: - - **RPC API**: Standard JSON-RPC methods with the `pending` tag - - **WebSocket subscriptions**: Use `eth_subscribe` via your node provider's WebSocket endpoint - - See [App Integration](/base-chain/flashblocks/app-integration) for implementation details. - - - - Index 0 contains only system transactions and doesn't use any gas limit. Indexes 1-10 are the actual Flashblocks that pull pending transactions from the txpool. - - - - This is expected. When the previous block takes longer to build, the system compensates by allocating less time to the next block, resulting in fewer Flashblocks. - - - - **No, it is not a bug.** Seeing indices of 10, 11, or higher is expected behavior. - - The standard math — 2-second block time ÷ 200ms per Flashblock — gives exactly 10 Flashblocks (indices 0–9). In practice, however, the transition from one full L2 block to the next is not always perfectly synchronized with the 200ms timer. Two things can cause extra indices: - - 1. **Sequencer delay:** If the sequencer takes slightly longer than 2000ms to finalize and seal the full block, the Flashblock stream continues emitting incremental updates for the current block to keep the stream live. - 2. **Timing drift:** If the internal 200ms clock drifts or starts early relative to the L2 block's canonical start time, an extra update can fit within the 2-second window. - - **What this means for your implementation:** - - Do not hardcode `9` or `10` as the final index — the last Flashblock for a given block is not predictable by index alone. - - Watch the `payloadId` instead. The most reliable signal that a block has finished is when `payloadId` changes, or when the full block is confirmed via standard RPC. All Flashblocks sharing the same `payloadId` belong to the same block, regardless of how high the index goes. - - Once the sequencer advances to the next block, `payloadId` resets and `index` returns to `0`. - - - - Transaction data in the [`diff.transactions`](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview#diff-object) array is Recursive Length Prefix (RLP) encoded. - - - - The public WebSocket has a maximum connection limit. For production use, we recommend: - - 1. Running your own [Flashblocks-aware RPC node](/base-chain/node-operators/run-a-base-node#enable-flashblocks) - 2. Using a third-party node provider with Flashblocks support - - - ---- - -## RPC - - - - The public endpoint has explicit rate limiting. For production use: - - - Use a third-party node provider with Flashblocks support (Alchemy, Infura, QuickNode, dRPC) - - Run your own [Flashblocks-aware RPC node](/base-chain/node-operators/run-a-base-node#enable-flashblocks) - - - - This is expected behavior. Flashblocks-aware nodes store up to 5 historical blocks worth of Flashblocks state to prevent race conditions. When `eth_call "pending"` is called, it operates on top of that historical base, so the block number visible in the call context (e.g. `block.number`) may appear to be N-5. - - When `eth_call "pending"` executes, the entire block context — `block.number`, `block.timestamp`, `block.basefee`, and all other block properties — corresponds to that historical base block (potentially N-5), not the current chain tip. **The call result is correct** in that it reflects all received Flashblocks state applied on top, but contracts that rely on block context properties should be aware that those values may be several blocks behind. - - If you operate a node in a geographic region where your P2P latency is not significantly higher than the WebSocket stream latency, you can reduce this difference by lowering the `MAX_PENDING_BLOCKS_DEPTH` configuration value. This controls the maximum number of historical blocks worth of Flashblocks your node stores, so a lower value will make the block context closer to tip at the cost of reduced tolerance for P2P latency spikes. - - - - The following methods are Flashblocks-enabled: - - | Method | Usage | - |--------|-------| - | `eth_getBlockByNumber` | Use `pending` tag | - | `eth_getBalance` | Use `pending` tag | - | `eth_getTransactionReceipt` | Returns preconfirmed receipts | - | `eth_getTransactionByHash` | Use `pending` tag | - | `eth_getTransactionCount` | Use `pending` tag | - | `eth_call` | Use `pending` tag | - | `eth_simulateV1` | Use `pending` tag | - | `eth_estimateGas` | Use `pending` tag | - | `eth_getLogs` | Use `pending` for `toBlock` | - | `eth_subscribe` | Stream Flashblock data in real-time | - | `base_transactionStatus` | Check if transaction is in mempool (Beta) | - - See the [Flashblocks API Reference](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview) for full method details and examples. - - - ---- - -## Node Setup - - - - Use the Reth binary from the [Base node repository](https://github.com/base/node/tree/main/reth). See the [Enable Flashblocks guide](/base-chain/node-operators/run-a-base-node#enable-flashblocks) for complete setup instructions. - - \ No newline at end of file diff --git a/docs/base-chain/flashblocks/overview.mdx b/docs/base-chain/flashblocks/overview.mdx deleted file mode 100644 index 21f2c7cc7..000000000 --- a/docs/base-chain/flashblocks/overview.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Flashblocks Overview -sidebarTitle: Overview -description: Understand the sequencer architecture, block building algorithm, and integration options for Flashblocks on Base. ---- - -## What are Flashblocks? - -Flashblocks introduce **200ms** incremental state updates to Base, significantly reducing perceived latency for users. - -Built in collaboration with [Flashbots](https://www.flashbots.net/), this mechanism streams sub-blocks within the standard 2-second block interval, providing near-instant sequencer preconfirmations, allowing applications to reflect state changes long before the full block is gossiped to the rest of the network. - - -Flashblocks are always live on Base. All blocks are built by the Flashblocks builder. Apps can choose whether to consume preconfirmations or wait for standard 2-second block finality. - - -### Key Concepts - -| Term | Definition | -|------|------------| -| **Flashblock** | A 200ms sub-block containing a portion of the full block's transactions | -| **Preconfirmation** | An ultra-fast signal that a transaction will be included, before the full block is sealed | -| **Full Block** | A series of 10 Flashblocks combined to form the complete 2-second block | - -Each block contains **10 Flashblocks** (indexes 1-10), each arriving every 200ms. Index 0 exists but only contains system transactions. See [Gas & Transaction Sizing](/base-chain/flashblocks/app-integration#gas-&-transaction-sizing) for how gas budgets work. - - -## Architecture - -For details on the sequencer system and Flashblocks infrastructure components (rollup-boost, base-builder, websocket-proxy, and base), see the [Architecture](/base-chain/flashblocks/architecture) page. - -## Transaction Lifecycle - -When you send a transaction to Base, here's what happens: - -### 1. Submission -``` -User → DNS (mainnet.base.org) → Load Balancer → Proxyd → Mempool -``` - -The transaction reaches the private mempool and is inserted into the txpool as pending. - -### 2. Distribution -The mempool maintains P2P connections with execution layers (base-reth-node, base-builder), ensuring all pending transactions are synced for block building. - -### 3. Block Building -During each 200ms block building loop, base-builder selects transactions based on: - -1. **Transaction fee** — transactions are ordered by fee (highest first) -2. **Gas limit and remaining capacity** — each Flashblock `j` can use up to `j/10` of the total block gas limit - - -**Dynamic Mempool:** The builder uses a dynamic mempool that continuously accepts new transactions while building. This minimizes inclusion latency but means a late-arriving high-fee transaction may appear after an already-committed lower-fee transaction within the same Flashblock. This is expected behavior, not a violation of fee priority—transactions are ordered by fee *at the time they're selected*. - - -### 4. Block Building Algorithm - -The builder follows this process for each 2-second block: - -``` -FOR each flashblock j FROM 0 TO 10: - 1. Wait until next 200ms window - 2. Calculate available gas: (j / 10) × total_block_gas_limit - 3. Sort pending transactions by fee (descending) - 4. Select top transactions that fit within available gas - 5. Execute transactions and update state - 6. Stream flashblock to websocket-proxy -``` - - -**Index 0** contains only system transactions and doesn't use any gas limit. **Indexes 1-10** are the actual Flashblocks that pull pending transactions from the txpool. - - -### 5. Preconfirmation Delivery -Once a transaction is included in a Flashblock, it's streamed to the websocket-proxy, which RPC nodes listen to. When you call a Flashblocks-aware RPC method (like `eth_getTransactionReceipt`), the node retrieves the preconfirmed data from its cache. - - -For the complete infrastructure stream schema, see the [Flashblocks API Overview](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview) reference: [Flashblock](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview#flashblock-object), [Diff](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview#diff-object), [Metadata](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview#metadata-object), [Receipt](/base-chain/api-reference/flashblocks-api/flashblocks-api-overview#receipt-object). - - -## Further Reading -- [FAQ](/base-chain/flashblocks/faq) — Common questions about Flashblocks -- [Block Building](/base-chain/network-information/block-building) — Detailed block ordering configuration -- [Flashblocks Deep Dive](https://blog.base.dev/flashblocks-deep-dive) — Engineering blog post with implementation details diff --git a/docs/base-chain/llms-full.txt b/docs/base-chain/llms-full.txt index 5cff0bf21..e83399619 100644 --- a/docs/base-chain/llms-full.txt +++ b/docs/base-chain/llms-full.txt @@ -2,46 +2,42 @@ ## Base Chain — Deep Guide for LLMs -> Base is a fast, low‑cost Ethereum L2 built on the OP Stack. This guide orients an LLM to deployment, connectivity, network details, node operations, and security across the Base Chain docs. +> Base is a fast, low‑cost Ethereum L2 built on the OP Stack. This guide orients an LLM to connectivity, network details, node operations, and security across the Base Chain docs. ### What you can do here -- Deploy smart contracts quickly (testnet and mainnet) - Connect apps to read/write on Base - Understand fees, contracts, and bridges - Use the full Ethereum JSON-RPC API and Flashblocks pre-confirmation API - Operate performant nodes - Obtain testnet ETH from faucets -- Discover Flashblocks resources - Follow security disclosure guidance ## Navigation (with brief descriptions) -### Quickstart -- [Why Base](https://docs.base.org/base-chain/quickstart/why-base.md) — Platform value prop -- [Deploy on Base](https://docs.base.org/base-chain/quickstart/deploy-on-base.md) — Deploy contracts (Foundry) -- [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — App connectivity -- [Base-Solana Bridge](https://docs.base.org/base-chain/quickstart/base-solana-bridge.md) — Bridge between Base and Solana - ### Network Information -- [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Canonical addresses +- [Chain Overview](https://docs.base.org/base-chain/overview.md) — Entry point for Base Chain docs +- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle.md) — Transaction flow across fees, sequencing, preconfirmation, inclusion, and finality - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees.md) — Fee model -- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — Block production +- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — Block production, Flashblocks, gas allocation, and per-transaction limits - [Diffs vs Ethereum](https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md) — Differences from L1 -- [Bridges](https://docs.base.org/base-chain/network-information/bridges.md) — Bridges +- [Bridging](https://docs.base.org/base-chain/network-information/bridges.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge assets and messages between Base and Solana - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality.md) — Finality model +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — Capacity, gas, fee, and endpoint limits +- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy.md) — Ordering, inclusion, and sequencing behavior + +### Network Reference +- [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints.md) — Chain IDs, RPC URLs, Flashblocks endpoints, and explorers +- [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — App connectivity and wallet network setup +- [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Canonical addresses +- [Ecosystem Contracts](https://docs.base.org/base-chain/network-information/ecosystem-contracts.md) — Third-party addresses - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose common transaction issues - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Network config changes - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets.md) — Testnet ETH for Base Sepolia -### Flashblocks -- [Overview](https://docs.base.org/base-chain/flashblocks/overview.md) — What Flashblocks is and how the two-tier RPC system works -- [App Integration](https://docs.base.org/base-chain/flashblocks/app-integration.md) — Apps using Flashblocks -- [Architecture](https://docs.base.org/base-chain/flashblocks/architecture.md) — How the sequencer emits Flashblocks and nodes consume them -- [FAQ](https://docs.base.org/base-chain/flashblocks/faq.md) — Frequently asked questions about Flashblocks - ### API Reference -- [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Networks, endpoints (Standard and Flashblocks), request/response format, error codes, block parameters, and full method index for all three API groups -- [Ethereum JSON-RPC API](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md) — Core Ethereum protocol methods: account state, blocks, transactions, gas, logs, chain info, and WebSocket subscriptions (28 methods total) +- [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Human overview of Standard and Flashblocks endpoints, request/response format, error codes, and block parameters +- [Ethereum JSON-RPC API](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md) — Core Ethereum protocol methods: account state, blocks, transactions, gas, logs, chain info, and WebSocket subscriptions (27 method pages) - [Flashblocks API](https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md) — Flashblocks-specific HTTP methods (eth_simulateV1, base_transactionStatus), WebSocket subscriptions (newFlashblockTransactions, pendingLogs, newFlashblocks), and the raw infrastructure stream schema - [Debug API](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceTransaction.md) — EVM execution tracing: debug_traceTransaction, debug_traceBlockByHash, debug_traceBlockByNumber @@ -102,18 +98,63 @@ - [Bug Bounty](https://docs.base.org/base-chain/security/bug-bounty.md) — Bug bounty program -## Quickstart (excerpts) - -Source: `https://docs.base.org/base-chain/quickstart/deploy-on-base.md` - -Deploy with Foundry to Base Sepolia: - -```bash -forge create src/Contract.sol:Contract \ - --rpc-url $BASE_SEPOLIA_RPC \ - --private-key $PRIVATE_KEY \ - --verify --verifier blockscout --verifier-url https://base-sepolia.blockscout.com/api -``` +## API Method Inventory + +Use this section as the agent-facing complete index. The human [API Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) explains endpoint selection and JSON-RPC request shape; the method inventory below links to the canonical per-method pages. + +### Ethereum JSON-RPC API + +| Method | Purpose | Flashblocks note | +| :--- | :--- | :--- | +| [eth_blockNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md) | Returns the most recently mined block number. | Standard behavior. | +| [eth_getBalance](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.md) | Returns an account ETH balance at a block. | Use `pending` on a Flashblocks endpoint for preconfirmed balances. | +| [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.md) | Returns the account nonce / transaction count. | Use `pending` on a Flashblocks endpoint for preconfirmed nonce state. | +| [eth_getCode](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.md) | Returns contract bytecode at an address. | Use `pending` on a Flashblocks endpoint to detect newly deployed contracts before the block seals. | +| [eth_getStorageAt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.md) | Returns a contract storage slot value. | Use `pending` on a Flashblocks endpoint for preconfirmed storage reads. | +| [eth_call](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_call.md) | Executes a read-only call without creating a transaction. | Use `pending` on a Flashblocks endpoint to simulate against preconfirmed state. | +| [eth_getBlockByNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.md) | Returns block information by block number or tag. | `pending` returns the live preconfirmed block on Flashblocks endpoints. | +| [eth_getBlockByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.md) | Returns block information by hash. | Standard behavior. | +| [eth_getBlockReceipts](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.md) | Returns all transaction receipts for a block. | Use `pending` on a Flashblocks endpoint for preconfirmed receipts. | +| [eth_getBlockTransactionCountByNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.md) | Returns transaction count in a block by number. | Use `pending` on a Flashblocks endpoint for current preconfirmed block count. | +| [eth_getBlockTransactionCountByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.md) | Returns transaction count in a block by hash. | Standard behavior. | +| [eth_getTransactionByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.md) | Returns transaction data by transaction hash. | Flashblocks endpoints can return preconfirmed cache data; no `pending` parameter. | +| [eth_getTransactionByBlockHashAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.md) | Returns a transaction by block hash and index. | Standard behavior. | +| [eth_getTransactionByBlockNumberAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.md) | Returns a transaction by block number and index. | Standard behavior. | +| [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.md) | Returns a transaction receipt by transaction hash. | Flashblocks endpoints can return preconfirmed receipt cache data; no `pending` parameter. | +| [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.md) | Submits a pre-signed transaction. | Submit to Flashblocks preconf endpoints for faster preconfirmation feedback. | +| [eth_gasPrice](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.md) | Returns the current gas price in wei. | Standard behavior. | +| [eth_maxPriorityFeePerGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.md) | Returns suggested EIP-1559 priority fee per gas. | Standard behavior. | +| [eth_feeHistory](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.md) | Returns base fee and priority fee history for a block range. | Standard behavior. | +| [eth_estimateGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.md) | Estimates gas required for a transaction. | Use `pending` on a Flashblocks endpoint to estimate against preconfirmed state. | +| [eth_getLogs](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.md) | Returns logs matching a filter. | Use `pending` on Flashblocks endpoints for preconfirmed logs; use `pendingLogs` for streaming. | +| [eth_chainId](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.md) | Returns the chain ID. | Standard behavior. | +| [eth_syncing](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.md) | Returns node sync status. | Standard behavior. | +| [net_version](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/net_version.md) | Returns the network ID as a string. | Standard behavior. | +| [web3_clientVersion](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.md) | Returns the client version string. | Standard behavior. | +| [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.md) | Creates a WebSocket subscription. | Flashblocks endpoints add subscription types and emit `newHeads` per Flashblock. | +| [eth_unsubscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.md) | Cancels a WebSocket subscription. | Standard behavior. | + +### Flashblocks API + +| Method or surface | Purpose | +| :--- | :--- | +| [eth_simulateV1](https://docs.base.org/base-chain/api-reference/flashblocks-api/eth_simulateV1.md) | Simulates one or more transaction bundles against current preconfirmed Flashblock state. | +| [base_transactionStatus](https://docs.base.org/base-chain/api-reference/flashblocks-api/base_transactionStatus.md) | Checks whether a transaction is in the node mempool. | +| [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.md) | WebSocket subscription for each transaction as it is preconfirmed into a Flashblock. | +| [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs.md) | WebSocket subscription for filtered logs from preconfirmed transactions. | +| [newFlashblocks](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblocks.md) | WebSocket subscription for the full Flashblock payload stream. | +| [Raw infrastructure stream schema](https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md) | Node-operator stream consumed by Flashblocks-aware RPC infrastructure; applications should use Flashblocks RPC methods and subscriptions instead. | + +### Debug API + +| Method | Purpose | +| :--- | :--- | +| [debug_traceTransaction](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceTransaction.md) | Returns the full EVM execution trace for a transaction. | +| [debug_traceBlockByHash](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceBlockByHash.md) | Returns EVM execution traces for all transactions in a block by hash. | +| [debug_traceBlockByNumber](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceBlockByNumber.md) | Returns EVM execution traces for all transactions in a block by number. | + + +## Connection Reference (excerpts) Source: `https://docs.base.org/base-chain/quickstart/connecting-to-base.md` @@ -136,7 +177,7 @@ Source: `https://docs.base.org/base-chain/network-information/diffs-ethereum-bas - Source: `https://docs.base.org/base-chain/network-information/network-fees.md` - Canonical contracts: Use published address lists for bridges, system contracts, and registry. - Source: `https://docs.base.org/base-chain/network-information/base-contracts.md` -- Bridges: Official and third‑party bridge options for moving assets to/from Base. +- Bridging: How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. - Source: `https://docs.base.org/base-chain/network-information/bridges.md` @@ -173,17 +214,20 @@ curl -s -X POST "$BASE_RPC" -H 'content-type: application/json' \ ``` -## Flashblocks (excerpts) +## Flashblocks (where to read) Sources: -- `https://docs.base.org/base-chain/flashblocks/faq.md` -- `https://docs.base.org/base-chain/flashblocks/app-integration.md` +- `https://docs.base.org/base-chain/network-information/block-building.md` +- `https://docs.base.org/base-chain/network-information/transaction-finality.md` +- `https://docs.base.org/base-chain/api-reference/rpc-overview.md` +- `https://docs.base.org/base-chain/node-operators/run-a-base-node.md` - `https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md` -- Overview: Flashblocks provide sub-200ms preconfirmed block state on Base, enabling lower-latency reads and faster transaction confirmation signals. -- Ecosystem: Review apps that make use of Flashblocks‑related infra and the node providers who support relevant capabilities. -- When to consider: High‑frequency reads/writes, market‑sensitive UX, or services where propagation and data freshness are critical. -- Integration: Connect to `mainnet.base.org` (or `sepolia.base.org`); use `"pending"` block tag to query preconfirmed state. Follow provider documentation and the Flashblocks docs for setup and operational guidance. +- Block building: Read Block Building for Flashblocks sequencing, gas allocation, and per-transaction limits. +- Finality: Read Transaction Finality for preconfirmation, L2 block inclusion, L1 batching, and finality stages. +- API behavior: Read Base RPC Overview for Standard RPC, Flashblocks RPC, by-hash cache behavior, and raw stream differences. +- Node operation: Read Run a Base Node and Flashblocks API Overview for raw stream infrastructure and schema details. +- Integration: Connect to `mainnet-preconf.base.org` or `sepolia-preconf.base.org`; use `"pending"` block tag on Flashblocks endpoints for preconfirmed state where supported. - Validation: Measure end‑to‑end latency and consistency across providers as part of your rollout plan. Simple latency probe (conceptual): diff --git a/docs/base-chain/llms.txt b/docs/base-chain/llms.txt index f8bc3ff6a..f2c9a20ea 100644 --- a/docs/base-chain/llms.txt +++ b/docs/base-chain/llms.txt @@ -2,37 +2,46 @@ ## Base Chain Documentation -> Base is a fast, low-cost Ethereum L2 for building global onchain apps; start here to deploy, connect, and operate reliably. +> Base is a fast, low-cost Ethereum L2 for building global onchain apps; start here to connect, understand, and operate reliably. -## Quickstart -- [Why Base](https://docs.base.org/base-chain/quickstart/why-base.md) — Why build on Base -- [Deploy on Base](https://docs.base.org/base-chain/quickstart/deploy-on-base.md) — Set up Foundry, configure RPCs, and deploy your first contract -- [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — Configure providers and clients to read/write on Base -- [Base-Solana Bridge](https://docs.base.org/base-chain/quickstart/base-solana-bridge.md) — Bridge assets between Base and Solana +## Introduction +- [Chain Overview](https://docs.base.org/base-chain/overview.md) — Entry point for Base Chain docs and canonical destinations ## Network Information +- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle.md) — Transaction flow across fees, sequencing, preconfirmation, inclusion, and finality +- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — Sequencing, Flashblocks, gas allocation, and per-transaction limits +- [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality.md) — Preconfirmation, L2 block inclusion, L1 batching, and finality stages +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — Entry point for capacity, gas, fee, and endpoint limits +- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy.md) — How Base orders, includes, and preconfirms transactions - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees.md) — L2 execution and L1 data costs on Base -- [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Core contracts and addresses -- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — How blocks are ordered and built on Base -- [Bridges](https://docs.base.org/base-chain/network-information/bridges.md) — Official and third-party bridge options +- [Bridging](https://docs.base.org/base-chain/network-information/bridges.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge assets and messages between Base and Solana - [Differences: Ethereum & Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md) — Behavioral differences between Base and Ethereum -- [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality.md) — When transactions become irreversible on Base + +## Network Reference +- [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints.md) — Chain IDs, RPC URLs, Flashblocks endpoints, and explorers +- [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — Configure providers and clients to read/write on Base +- [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Core contracts and addresses +- [Ecosystem Contracts](https://docs.base.org/base-chain/network-information/ecosystem-contracts.md) — Common ecosystem contract addresses - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose and fix common transaction issues - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Log of network configuration changes - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets.md) — Obtain testnet ETH for Base Sepolia -## Flashblocks -- [Overview](https://docs.base.org/base-chain/flashblocks/overview.md) — What Flashblocks is and how it works -- [App Integration](https://docs.base.org/base-chain/flashblocks/app-integration.md) — How apps integrate with Flashblocks -- [Architecture](https://docs.base.org/base-chain/flashblocks/architecture.md) — Sequencer architecture and infrastructure components -- [FAQ](https://docs.base.org/base-chain/flashblocks/faq.md) — Frequently asked questions about Flashblocks - ## API Reference -- [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Networks, endpoints, request/response format, and full method index -- [Ethereum JSON-RPC API](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md) — Core Ethereum protocol methods (eth_, net_, web3_) -- [Flashblocks API](https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md) — Flashblocks-specific methods, WebSocket subscriptions, and infrastructure stream schema +- [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Human overview of endpoints, request/response format, errors, and block parameters +- [Ethereum JSON-RPC API](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md) — Core Ethereum protocol methods (27 method pages) +- [Flashblocks API](https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md) — Flashblocks-specific HTTP methods, WebSocket subscriptions, and raw stream schema - [Debug API](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceTransaction.md) — EVM execution tracing and block replay +### API Method Inventory +- Ethereum JSON-RPC state/execution: [eth_getBalance](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.md), [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.md), [eth_getCode](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.md), [eth_getStorageAt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.md), [eth_call](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_call.md), [eth_estimateGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.md) +- Ethereum JSON-RPC blocks: [eth_blockNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.md), [eth_getBlockByNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.md), [eth_getBlockByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.md), [eth_getBlockReceipts](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.md), [eth_getBlockTransactionCountByNumber](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.md), [eth_getBlockTransactionCountByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.md) +- Ethereum JSON-RPC transactions: [eth_getTransactionByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.md), [eth_getTransactionByBlockHashAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.md), [eth_getTransactionByBlockNumberAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.md), [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.md), [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction.md) +- Ethereum JSON-RPC fees/logs/chain/node: [eth_gasPrice](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.md), [eth_maxPriorityFeePerGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.md), [eth_feeHistory](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.md), [eth_getLogs](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.md), [eth_chainId](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.md), [eth_syncing](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.md), [net_version](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/net_version.md), [web3_clientVersion](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.md) +- Ethereum JSON-RPC WebSocket: [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.md), [eth_unsubscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.md) +- Flashblocks API: [eth_simulateV1](https://docs.base.org/base-chain/api-reference/flashblocks-api/eth_simulateV1.md), [base_transactionStatus](https://docs.base.org/base-chain/api-reference/flashblocks-api/base_transactionStatus.md), [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.md), [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs.md), [newFlashblocks](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblocks.md); raw infrastructure stream schema lives in [Flashblocks API Overview](https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md) +- Debug API: [debug_traceTransaction](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceTransaction.md), [debug_traceBlockByHash](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceBlockByHash.md), [debug_traceBlockByNumber](https://docs.base.org/base-chain/api-reference/debug-api/debug_traceBlockByNumber.md) + ## Node Operators - [Run a Base Node](https://docs.base.org/base-chain/node-operators/run-a-base-node.md) — Setup and operations guide - [Base Azul Upgrade](https://docs.base.org/base-chain/node-operators/base-v1-upgrade.md) — Migrate to base-reth-node and base-consensus for Azul diff --git a/docs/base-chain/network-information/base-contracts.mdx b/docs/base-chain/network-information/base-contracts.mdx index b919d4282..7ec3fb936 100644 --- a/docs/base-chain/network-information/base-contracts.mdx +++ b/docs/base-chain/network-information/base-contracts.mdx @@ -8,47 +8,47 @@ description: A comprehensive list of L2 contract addresses for Base Mainnet and ### Base Mainnet -| Name | Address | -| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------- | -| WETH9 | [0x4200000000000000000000000000000000000006](https://basescan.org/address/0x4200000000000000000000000000000000000006) | -| L2CrossDomainMessenger | [0x4200000000000000000000000000000000000007](https://basescan.org/address/0x4200000000000000000000000000000000000007) | -| L2StandardBridge | [0x4200000000000000000000000000000000000010](https://basescan.org/address/0x4200000000000000000000000000000000000010) | -| SequencerFeeVault | [0x4200000000000000000000000000000000000011](https://basescan.org/address/0x4200000000000000000000000000000000000011) | -| OptimismMintableERC20Factory | [0xF10122D428B4bc8A9d050D06a2037259b4c4B83B](https://basescan.org/address/0xF10122D428B4bc8A9d050D06a2037259b4c4B83B) | -| GasPriceOracle | [0x420000000000000000000000000000000000000F](https://basescan.org/address/0x420000000000000000000000000000000000000F) | -| L1Block | [0x4200000000000000000000000000000000000015](https://basescan.org/address/0x4200000000000000000000000000000000000015) | -| L2ToL1MessagePasser | [0x4200000000000000000000000000000000000016](https://basescan.org/address/0x4200000000000000000000000000000000000016) | -| L2ERC721Bridge | [0x4200000000000000000000000000000000000014](https://basescan.org/address/0x4200000000000000000000000000000000000014) | -| OptimismMintableERC721Factory | [0x4200000000000000000000000000000000000017](https://basescan.org/address/0x4200000000000000000000000000000000000017) | -| ProxyAdmin | [0x4200000000000000000000000000000000000018](https://basescan.org/address/0x4200000000000000000000000000000000000018) | -| BaseFeeVault | [0x4200000000000000000000000000000000000019](https://basescan.org/address/0x4200000000000000000000000000000000000019) | -| L1FeeVault | [0x420000000000000000000000000000000000001a](https://basescan.org/address/0x420000000000000000000000000000000000001a) | -| EAS | [0x4200000000000000000000000000000000000021](https://basescan.org/address/0x4200000000000000000000000000000000000021) | -| EASSchemaRegistry | [0x4200000000000000000000000000000000000020](https://basescan.org/address/0x4200000000000000000000000000000000000020) | -| LegacyERC20ETH | [0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000](https://basescan.org/address/0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) | +| Name | Address | Network note | +| :---------------------------- | :------ | :----------- | +| WETH9 | [0x4200000000000000000000000000000000000006](https://basescan.org/address/0x4200000000000000000000000000000000000006) | Same as Sepolia | +| L2CrossDomainMessenger | [0x4200000000000000000000000000000000000007](https://basescan.org/address/0x4200000000000000000000000000000000000007) | Same as Sepolia | +| L2StandardBridge | [0x4200000000000000000000000000000000000010](https://basescan.org/address/0x4200000000000000000000000000000000000010) | Same as Sepolia | +| SequencerFeeVault | [0x4200000000000000000000000000000000000011](https://basescan.org/address/0x4200000000000000000000000000000000000011) | Same as Sepolia | +| OptimismMintableERC20Factory | [0xF10122D428B4bc8A9d050D06a2037259b4c4B83B](https://basescan.org/address/0xF10122D428B4bc8A9d050D06a2037259b4c4B83B) | Differs by network | +| GasPriceOracle | [0x420000000000000000000000000000000000000F](https://basescan.org/address/0x420000000000000000000000000000000000000F) | Same as Sepolia | +| L1Block | [0x4200000000000000000000000000000000000015](https://basescan.org/address/0x4200000000000000000000000000000000000015) | Same as Sepolia | +| L2ToL1MessagePasser | [0x4200000000000000000000000000000000000016](https://basescan.org/address/0x4200000000000000000000000000000000000016) | Same as Sepolia | +| L2ERC721Bridge | [0x4200000000000000000000000000000000000014](https://basescan.org/address/0x4200000000000000000000000000000000000014) | Same as Sepolia | +| OptimismMintableERC721Factory | [0x4200000000000000000000000000000000000017](https://basescan.org/address/0x4200000000000000000000000000000000000017) | Same as Sepolia | +| ProxyAdmin | [0x4200000000000000000000000000000000000018](https://basescan.org/address/0x4200000000000000000000000000000000000018) | Same as Sepolia | +| BaseFeeVault | [0x4200000000000000000000000000000000000019](https://basescan.org/address/0x4200000000000000000000000000000000000019) | Same as Sepolia | +| L1FeeVault | [0x420000000000000000000000000000000000001a](https://basescan.org/address/0x420000000000000000000000000000000000001a) | Same as Sepolia | +| EAS | [0x4200000000000000000000000000000000000021](https://basescan.org/address/0x4200000000000000000000000000000000000021) | Same as Sepolia | +| EASSchemaRegistry | [0x4200000000000000000000000000000000000020](https://basescan.org/address/0x4200000000000000000000000000000000000020) | Same as Sepolia | +| LegacyERC20ETH | [0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000](https://basescan.org/address/0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) | Same as Sepolia | ### Base Testnet (Sepolia) -| Name | Address | -| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | -| WETH9 | [0x4200000000000000000000000000000000000006](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006) | -| L2CrossDomainMessenger | [0x4200000000000000000000000000000000000007](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000007) | -| L2StandardBridge | [0x4200000000000000000000000000000000000010](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000010) | -| SequencerFeeVault | [0x4200000000000000000000000000000000000011](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000011) | -| OptimismMintableERC20Factory | [0x4200000000000000000000000000000000000012](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000012) | -| GasPriceOracle | [0x420000000000000000000000000000000000000F](https://sepolia.basescan.org/address/0x420000000000000000000000000000000000000F) | -| L1Block | [0x4200000000000000000000000000000000000015](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000015) | -| L2ToL1MessagePasser | [0x4200000000000000000000000000000000000016](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000016) | -| L2ERC721Bridge | [0x4200000000000000000000000000000000000014](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000014) | -| OptimismMintableERC721Factory | [0x4200000000000000000000000000000000000017](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000017) | -| ProxyAdmin | [0x4200000000000000000000000000000000000018](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000018) | -| BaseFeeVault | [0x4200000000000000000000000000000000000019](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000019) | -| L1FeeVault | [0x420000000000000000000000000000000000001a](https://sepolia.basescan.org/address/0x420000000000000000000000000000000000001a) | -| EAS | [0x4200000000000000000000000000000000000021](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000021) | -| EASSchemaRegistry | [0x4200000000000000000000000000000000000020](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000020) | -| LegacyERC20ETH | [0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000](https://sepolia.basescan.org/address/0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) | - -\*_L2 contract addresses are the same on both mainnet and testnet._ +| Name | Address | Network note | +| :---------------------------- | :------ | :----------- | +| WETH9 | [0x4200000000000000000000000000000000000006](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000006) | Same as Mainnet | +| L2CrossDomainMessenger | [0x4200000000000000000000000000000000000007](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000007) | Same as Mainnet | +| L2StandardBridge | [0x4200000000000000000000000000000000000010](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000010) | Same as Mainnet | +| SequencerFeeVault | [0x4200000000000000000000000000000000000011](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000011) | Same as Mainnet | +| OptimismMintableERC20Factory | [0x4200000000000000000000000000000000000012](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000012) | Differs by network | +| GasPriceOracle | [0x420000000000000000000000000000000000000F](https://sepolia.basescan.org/address/0x420000000000000000000000000000000000000F) | Same as Mainnet | +| L1Block | [0x4200000000000000000000000000000000000015](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000015) | Same as Mainnet | +| L2ToL1MessagePasser | [0x4200000000000000000000000000000000000016](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000016) | Same as Mainnet | +| L2ERC721Bridge | [0x4200000000000000000000000000000000000014](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000014) | Same as Mainnet | +| OptimismMintableERC721Factory | [0x4200000000000000000000000000000000000017](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000017) | Same as Mainnet | +| ProxyAdmin | [0x4200000000000000000000000000000000000018](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000018) | Same as Mainnet | +| BaseFeeVault | [0x4200000000000000000000000000000000000019](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000019) | Same as Mainnet | +| L1FeeVault | [0x420000000000000000000000000000000000001a](https://sepolia.basescan.org/address/0x420000000000000000000000000000000000001a) | Same as Mainnet | +| EAS | [0x4200000000000000000000000000000000000021](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000021) | Same as Mainnet | +| EASSchemaRegistry | [0x4200000000000000000000000000000000000020](https://sepolia.basescan.org/address/0x4200000000000000000000000000000000000020) | Same as Mainnet | +| LegacyERC20ETH | [0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000](https://sepolia.basescan.org/address/0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000) | Same as Mainnet | + +\*_Most predeploy addresses are shared across Mainnet and Sepolia; exceptions are listed explicitly._ ## L1 Contract Addresses diff --git a/docs/base-chain/quickstart/base-solana-bridge.mdx b/docs/base-chain/network-information/base-solana-bridge.mdx similarity index 100% rename from docs/base-chain/quickstart/base-solana-bridge.mdx rename to docs/base-chain/network-information/base-solana-bridge.mdx diff --git a/docs/base-chain/network-information/block-building.mdx b/docs/base-chain/network-information/block-building.mdx index fe83ea2ee..c54363fb4 100644 --- a/docs/base-chain/network-information/block-building.mdx +++ b/docs/base-chain/network-information/block-building.mdx @@ -22,47 +22,50 @@ See the [Configuration Changelog](/base-chain/network-information/configuration- ### Flashblocks -Blocks are built using [base-builder](https://github.com/base/base/tree/main/crates/builder) with priority fee auctions occurring every **200ms**. This reduces effective block times from 2 seconds to 200 milliseconds through preconfirmations. +The Base sequencer produces Flashblocks every **200ms**, committing to transaction ordering incrementally while the next L2 block is being built. Flashblocks provide preconfirmation signals before the full L2 block seals. -For a comprehensive technical deep dive into Flashblocks architecture, see the [Flashblocks Overview](/base-chain/flashblocks/overview). +For the protocol-level sequencer role, see the [Protocol Overview](/base-chain/specs/protocol/overview#sequencers). For how preconfirmed state is exposed to applications, see the [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix). For node operation, see [Run a Base Node](/base-chain/node-operators/run-a-base-node#enable-flashblocks). *There are three key differences from vanilla ordering:* 1. **Timing** — Flashblocks are built every 200ms, each ordering a portion of the block. Once built and broadcast, transaction ordering is locked. Later-arriving transactions with higher priority fees cannot be included in earlier Flashblocks. -2. **Gas Allocation** — Each Flashblock has an incrementally increasing gas budget. Flashblock 1 can use 1/10 of the block gas limit, Flashblock 2 can use 2/10, and so on until Flashblock 10 has access to the full limit. +2. **Gas Allocation** — Each Flashblock has an incrementally increasing gas budget. Flashblock `j` can use up to `j/10` of the full block gas limit, minus gas already consumed by earlier Flashblocks in the same block. - | Flashblock | Available Gas | - |------------|---------------| - | 1 | ~14M gas (1/10) | - | 2 | ~28M gas (2/10) | - | 3 | ~42M gas (3/10) | - | ... | ... | - | 10 | ~140M gas (full) | + + **Current parameters, last verified 2026-05-08** - - Transactions exceeding 14M gas cannot fit in Flashblock 1 and must wait for later Flashblocks. Monitor inclusion latency if your app creates large transactions. - + | Network | Full block gas limit | Flashblock 1 cumulative budget | + |---------|----------------------|--------------------------------| + | Base Mainnet | 400M gas | 40M gas | + | Base Sepolia | 1.2B gas | 120M gas | -3. **Dynamic Mempool** — The builder continuously accepts new transactions while building each Flashblock. This minimizes inclusion latency but means transactions are ordered by fee *at the time of selection*, not globally across all transactions that arrive during the 200ms window. A late-arriving high-fee transaction may appear after an already-committed lower-fee transaction. + Base Sepolia's block gas limit is scheduled to increase every 2 weeks. See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for network parameter history. + + + For example, on Base Mainnet, Flashblock 1 can use up to 40M gas, Flashblock 2 can use up to 80M gas minus gas already consumed by Flashblock 1, and Flashblock 10 can use up to the full 400M gas limit minus gas already consumed. + +3. **Incremental ordering** — Flashblocks commit to transaction ordering as the L2 block is being built. Do not assume the sequencer performs one global fee-ranked ordering pass over every transaction that arrives during the full 2 second L2 block interval. - This is a deliberate tradeoff: faster inclusion at the cost of occasionally "breaking" expected priority gas auction (PGA) ordering within a Flashblock. See the [Flashblocks FAQ](/base-chain/flashblocks/faq) for more details. + Priority fees can affect transaction inclusion and ordering, but Flashblocks are not a formalized priority-fee auction mechanism. If ordering is critical for your workflow, account for transaction propagation, arrival timing, and fee settings. ### Per-Transaction Gas Maximum -As of the [Azul hardfork](/base-chain/specs/upgrades/azul/exec-engine#transaction-gas-limit-cap), Base enforces a protocol-level per-transaction gas maximum of **16,777,216 gas (2^24)** via [EIP-7825](https://eips.ethereum.org/EIPS/eip-7825). Transactions that specify a gas limit above this value are **rejected during block validation**. `eth_sendTransaction` or `eth_sendRawTransaction` will return a JSON-RPC error (for example: `exceeds maximum per-transaction gas limit`). +Base enforces a per-transaction gas maximum. Transactions that specify a gas limit above the active maximum are **rejected by the mempool before inclusion**. `eth_sendTransaction` or `eth_sendRawTransaction` will return a JSON-RPC error (for example: `exceeds maximum per-transaction gas limit`). This cap does **not** change the block gas limit or the block validity conditions. - -Deposit transactions are exempt from this cap. They are limited by the maximum gas includable in an L1 block (20,000,000 gas). - +| Network | Active per-transaction gas maximum | +|---------|------------------------------------| +| Base Mainnet | 25,000,000 gas until Azul activates on May 21, 2026 at 18:00 UTC; 16,777,216 gas after activation | +| Base Sepolia | 16,777,216 gas, active since April 20, 2026 at 18:00 UTC | -Bundler operators for smart contract wallets must configure their systems to limit the bundle size to fit within this cap. +For the Azul protocol change that enforces the 16,777,216 gas cap, see the [Azul execution engine specification](/base-chain/specs/upgrades/azul/exec-engine#transaction-gas-limit-cap). -### Vanilla +Bundler operators for smart contract wallets must configure their systems to limit the bundle size to fit within this cap. -Blocks are built every 2s by `base-reth-node`. Transactions within those blocks are ordered by priority fee. +### Client support +Azul requires Base-native clients. For operator migration guidance and supported client combinations, see [Base Azul Upgrade](/base-chain/node-operators/base-v1-upgrade) and [Run a Base Node](/base-chain/node-operators/run-a-base-node#supported-client-combinations). diff --git a/docs/base-chain/network-information/bridges.mdx b/docs/base-chain/network-information/bridges.mdx index 258a15b70..4edba81a4 100644 --- a/docs/base-chain/network-information/bridges.mdx +++ b/docs/base-chain/network-information/bridges.mdx @@ -1,36 +1,50 @@ --- -title: Bridges -description: Documentation for bridging assets to Base. This page covers how to bridge assets between Ethereum, Solana, Bitcoin, and Base. - +title: Bridging +description: How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. --- -Base supports bridging assets from multiple chains including Ethereum, Solana, and Bitcoin. While the bridge on bridge.base.org has been deprecated, there are many bridges that support moving assets between Base and other chains. +Bridging moves assets or messages between Base and another chain. The user experience can look like a single transfer, but the underlying mechanism depends on the source chain, destination chain, asset, and bridge provider. -For questions, see our [FAQ](#faq). +Base supports several bridging paths, including canonical Ethereum ↔ Base bridging, Base ↔ Solana bridging, and third-party bridges for assets such as BTC. For protocol-level details, see the [bridging specifications](/base-chain/specs/protocol/bridging/bridges). ---- +## How bridging works + +Most bridge designs use one of three patterns: + +- **Lock and mint:** the source-chain asset is locked in a bridge contract or custody system, and a representation is minted on the destination chain. +- **Burn and release:** a bridged representation is burned on one chain, and the original or equivalent asset is released on the other chain. +- **Message passing:** a source-chain action emits a message that is verified and executed on the destination chain. + +The trust model depends on who verifies the source-chain event and who can release or mint the destination-chain asset. Native Ethereum ↔ Base bridging uses the OP Stack bridge and fault proof system. Other bridge providers may use different validator sets, liquidity networks, or custody models. + + +Bridge security and withdrawal timing vary by provider and route. Always verify the destination token, bridge provider, and withdrawal assumptions before moving significant funds. + ## Ethereum ↔ Base -### Superbridge +Ethereum is Base's L1 settlement layer. Native deposits and withdrawals between Ethereum and Base use OP Stack bridge contracts and cross-domain messaging. -Superbridge enables you to bridge ETH and other supported assets from Ethereum mainnet (L1) directly to Base. +### Deposits to Base -#### Supported Networks +Deposits start on Ethereum. A user deposits ETH or an ERC-20 through an L1 bridge contract, the deposit is included on Ethereum, and the corresponding L2 transaction is derived and executed on Base. Deposits typically complete much faster than withdrawals because they do not need the fault proof challenge window. -- [Base Mainnet](https://superbridge.app/base) -- [Base Sepolia (Testnet)](https://superbridge.app/base-sepolia) +### Withdrawals to Ethereum -### Brid.gg +Withdrawals start on Base and complete on Ethereum. The user initiates a withdrawal on Base, the withdrawal is proven against an output root on Ethereum, and the funds can be finalized after the fault proof challenge window if the output root remains valid. -Brid.gg is another option that also helps you bridge ETH and supported assets between Ethereum mainnet (L1) and Base. + +Only Base-to-Ethereum withdrawals through the native bridge use the 7 day finality period. Normal Base transactions do not wait 7 days. See [Transaction Finality](/base-chain/network-information/transaction-finality#finality-for-withdrawal-transactions). + -#### Supported Networks +### Bridge providers -- [Base Mainnet](https://brid.gg/base) -- [Base Sepolia (Testnet)](https://testnet.brid.gg/base-sepolia) +Several bridge interfaces support Ethereum ↔ Base transfers: -### Programmatic Bridging (Ethereum) +- [Superbridge Base Mainnet](https://superbridge.app/base) +- [Superbridge Base Sepolia](https://superbridge.app/base-sepolia) +- [Brid.gg Base Mainnet](https://brid.gg/base) +- [Brid.gg Base Sepolia](https://testnet.brid.gg/base-sepolia) See the [sample code repository](https://github.com/base-org/guides/tree/main/bridge/native) to see how to bridge ETH and ERC-20s from Ethereum to Base. @@ -47,57 +61,52 @@ This implementation can only bridge assets to Base. Do not attempt to alter the code to withdraw the assets. -### For Token Issuers - -If you have an ERC-20 token deployed on Ethereum and want to enable bridging to Base, see our guide on [Bridging an L1 Token to Base](/base-chain/quickstart/bridge-token). This covers deploying your token on Base using the standard bridge contracts and getting it listed on the Superchain token list. - ---- - ## Solana ↔ Base -The Base-Solana bridge enables bidirectional token transfers and message passing between Base and Solana networks. +The Base-Solana bridge enables bidirectional token transfers and message passing between Base and Solana. It uses bridge contracts/programs and validators to verify cross-chain messages between the two ecosystems. -**Key Features:** -- Transfer SOL and SPL tokens between Base and Solana -- Send arbitrary cross-chain messages -- Deploy wrapped tokens on either chain -- Optional auto-relay for instant execution +Use this route when you need to move SOL, SPL tokens, wrapped tokens, or application messages between Solana and Base. - - Complete guide with code examples and contract addresses + + Read the implementation guide, contract addresses, token wrapping flow, and message passing examples. - Production terminal UI for bridging + contract calls + Use a production terminal UI for bridging and cross-chain contract calls. -### Contract Addresses - -| Network | Contract | Address | -|---------|----------|---------| -| Base Mainnet | Bridge | `0x3eff766C76a1be2Ce1aCF2B69c78bCae257D5188` | -| Base Mainnet | SOL Token | `0x311935Cd80B76769bF2ecC9D8Ab7635b2139cf82` | -| Solana Mainnet | Bridge Program | `HNCne2FkVaNghhjKXapxJzPaBvAKDG1Ge3gqhZyfVWLM` | - -For testnet addresses and full implementation details, see the [Base-Solana Bridge documentation](/base-chain/quickstart/base-solana-bridge#contract-addresses). +For Mainnet, Sepolia, and Solana Devnet addresses, see the [Base-Solana Bridge documentation](/base-chain/network-information/base-solana-bridge#contract-addresses). --- ## Bitcoin → Base -### Garden - Garden is a fast non-custodial Bitcoin bridge that enables you to bridge BTC and other supported assets from Ethereum, Solana, and more, directly to Base. -#### Supported Networks +### Supported networks - [Base Mainnet](https://app.garden.finance/?output-chain=base&output-asset=cbBTC) - [Base Sepolia (Testnet)](https://testnet.garden.finance/?output-chain=base_sepolia&output-asset=USDT) ---- +## Choosing a route + +| Goal | Typical route | +| --- | --- | +| Move ETH or canonical ERC-20s between Ethereum and Base | Use an Ethereum ↔ Base bridge such as Superbridge or Brid.gg. | +| Withdraw from Base to Ethereum with native security assumptions | Use the native withdrawal path and account for the 7 day challenge window. | +| Move assets or messages between Solana and Base | Use the Base-Solana bridge. | +| Move BTC or BTC-like assets to Base | Use a provider that supports Bitcoin routes to Base, such as Garden. | + +## Related specs and references + +- [Standard Bridges spec](/base-chain/specs/protocol/bridging/bridges) explains the protocol bridge model. +- [Deposits spec](/base-chain/specs/protocol/bridging/deposits) describes Ethereum-to-Base deposits. +- [Withdrawals spec](/base-chain/specs/protocol/bridging/withdrawals) describes Base-to-Ethereum withdrawals. +- [Base contracts](/base-chain/network-information/base-contracts) lists deployed bridge contract addresses. +- [Transaction Finality](/base-chain/network-information/transaction-finality) explains withdrawal finality. ## Disclaimer @@ -126,7 +135,7 @@ Superchain Bridges are operated by third parties, not by Coinbase Technologies, -The Base-Solana bridge uses validators to verify cross-chain messages. When bridging from Solana to Base, tokens are locked on Solana and minted on Base. When bridging from Base to Solana, tokens are burned on Base and unlocked on Solana. See the [full documentation](/base-chain/quickstart/base-solana-bridge) for implementation details. +The Base-Solana bridge uses validators to verify cross-chain messages. When bridging from Solana to Base, tokens are locked on Solana and minted on Base. When bridging from Base to Solana, tokens are burned on Base and unlocked on Solana. See the [full documentation](/base-chain/network-information/base-solana-bridge) for implementation details. diff --git a/docs/base-chain/network-information/configuration-changelog.mdx b/docs/base-chain/network-information/configuration-changelog.mdx index abde76c1b..4703e71e2 100644 --- a/docs/base-chain/network-information/configuration-changelog.mdx +++ b/docs/base-chain/network-information/configuration-changelog.mdx @@ -4,7 +4,7 @@ slug: /configuration-changelog description: A log of configuration changes to the Base networks. --- -This page tracks configuration changes to the Base networks, including updates to block building, network fees, and other network parameters. +This page tracks historical configuration changes to the Base networks, including updates to block building, network fees, and other network parameters. For current fee behavior and active fee values, see [Network Fees](/base-chain/network-information/network-fees). ## Base Mainnet diff --git a/docs/base-chain/network-information/diffs-ethereum-base.mdx b/docs/base-chain/network-information/diffs-ethereum-base.mdx index e78dbd55b..4392d2f6f 100644 --- a/docs/base-chain/network-information/diffs-ethereum-base.mdx +++ b/docs/base-chain/network-information/diffs-ethereum-base.mdx @@ -9,10 +9,10 @@ However, there are still some minor discrepancies between the behavior of Base a These minor differences include: -- [Flashblocks](/base-chain/flashblocks/app-integration) +- [Flashblocks](/base-chain/network-information/block-building#flashblocks) - [Minimum base fee](/base-chain/network-information/network-fees#minimum-base-fee) -- [Bridging](/base-chain/specs/protocol/bridging/bridges) -- [Precompiles](/base-chain/specs/protocol/execution/evm/precompiles) -- [Address aliasing](/base-chain/specs/protocol/bridging/deposits#address-aliasing) -- [Transaction costs](/base-chain/network-information/network-fees) -- [Chain Finality](/base-chain/network-information/transaction-finality) \ No newline at end of file +- [Bridging](https://docs.optimism.io/stack/differences#bridging) +- [Opcodes](https://docs.optimism.io/stack/differences#opcodes) +- [Address aliasing](https://docs.optimism.io/stack/differences#address-aliasing) +- [Transaction costs](https://docs.optimism.io/stack/differences#transaction-fees) +- [Chain Finality](https://docs.optimism.io/stack/differences#chain-finality) diff --git a/docs/base-chain/network-information/network-fees.mdx b/docs/base-chain/network-information/network-fees.mdx index db3df4c15..231588fdc 100644 --- a/docs/base-chain/network-information/network-fees.mdx +++ b/docs/base-chain/network-information/network-fees.mdx @@ -27,9 +27,9 @@ For additional details about fee calculation on Base, please refer to the ## Minimum Base Fee -As part of the [Jovian upgrade], Base introduced a minimum base fee. This feature sets a floor for the L2 base fee, preventing it from dropping to extremely low levels during periods of low network activity. +Base uses a minimum base fee, which sets a floor for the L2 base fee and prevents it from dropping to extremely low levels during periods of low network activity. -The minimum base fee for Base Mainnet is 5,000,000 wei (0.005 gwei). This value may be periodically adjusted as we gather data on how it affects the chain. For reference, a minimum base fee of 0.005 gwei results in a cost of approximately \$0.002 for a typical 200,000 gas transaction at an ETH price of \$2000. +The current minimum base fee for Base Mainnet and Base Sepolia is 5,000,000 wei (0.005 gwei). This value may be periodically adjusted as we gather data on how it affects the chain. For reference, a minimum base fee of 0.005 gwei results in a cost of approximately \$0.002 for a typical 200,000 gas transaction at an ETH price of \$2000. ### Benefits @@ -44,7 +44,7 @@ The minimum base fee for Base Mainnet is 5,000,000 wei (0.005 gwei). This value | Base Mainnet | 5,000,000 wei (0.005 gwei) | | Base Sepolia | 5,000,000 wei (0.005 gwei) | -See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for a history of changes to the minimum base fee and other network parameters. +Last verified: May 8, 2026. Last changed on February 19, 2026 for both networks. See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for the history of changes to the minimum base fee and other network parameters. ## EIP-1559 Fee Parameters @@ -77,6 +77,8 @@ This gradual adjustment helps prevent extreme fee volatility during traffic spik | Base Mainnet | 6 | 125 | 4% | | Base Sepolia | 6 | 125 | 4% | +Last verified: May 8, 2026. The denominator was last changed on February 4, 2026 for Base Mainnet and February 10, 2026 for Base Sepolia. See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for historical parameter changes. + ## Querying the L1 Fee The **GasPriceOracle** predeployment at `0x420000000000000000000000000000000000000F` (listed in [Contract Addresses](/base-chain/network-information/base-contracts)) lets you programmatically estimate the L1 fee component before signing and submitting a transaction. @@ -91,5 +93,3 @@ The **GasPriceOracle** predeployment at `0x4200000000000000000000000000000000000 | `blobBaseFeeScalar()` | Scalar applied to the blob base fee component | Use `getL1FeeUpperBound` when you need a quick estimate before the transaction is fully constructed. Use `getL1Fee` with the complete serialized transaction for an exact value before signing. - -[Jovian upgrade]: /base-chain/specs/upgrades/jovian/overview diff --git a/docs/base-chain/network-information/networks-and-endpoints.mdx b/docs/base-chain/network-information/networks-and-endpoints.mdx new file mode 100644 index 000000000..ac52fbfe7 --- /dev/null +++ b/docs/base-chain/network-information/networks-and-endpoints.mdx @@ -0,0 +1,20 @@ +--- +title: Networks and Endpoints +description: Base Mainnet and Base Sepolia chain IDs, public RPC URLs, WebSocket URLs, Flashblocks endpoints, and explorers. +--- + +import BaseNetworks from "/snippets/base-networks.mdx"; + +Use this page to find public Base network connection details. For app and wallet setup steps, see [Connecting to Base](/base-chain/quickstart/connecting-to-base). + +## Public networks + + + +## Related references + +- [Base RPC Overview](/base-chain/api-reference/rpc-overview) explains API behavior across Standard and Flashblocks endpoints. +- [Node Providers](/base-chain/node-operators/node-providers) lists production infrastructure providers. +- [Run a Base Node](/base-chain/node-operators/run-a-base-node) explains how to operate your own Base node. +- [Network Faucets](/base-chain/network-information/network-faucets) lists testnet faucets. +- [Contract Addresses](/base-chain/network-information/base-contracts) lists L1 and L2 protocol contract deployments. diff --git a/docs/base-chain/network-information/sequencing-policy.mdx b/docs/base-chain/network-information/sequencing-policy.mdx new file mode 100644 index 000000000..0e987cccf --- /dev/null +++ b/docs/base-chain/network-information/sequencing-policy.mdx @@ -0,0 +1,70 @@ +--- +title: Sequencing Policy +description: How Base orders, includes, and preconfirms transactions. +--- + +Base transactions are ordered by the Base sequencer before they become sealed L2 blocks. This page explains the practical sequencing model app developers, traders, market makers, and infrastructure operators should account for when they submit or monitor transactions. + +## What the sequencer does + +The sequencer receives signed transactions, validates them against current account state and network rules, chooses which valid transactions to include, and produces ordered L2 blocks. Validators can independently derive and verify the resulting L2 chain from data posted to Ethereum. + +Sequencing is separate from finality. A transaction can be: + +- **Received** by an RPC endpoint or mempool. +- **Preconfirmed** in a Flashblock before the full L2 block seals. +- **Included** in a sealed L2 block. +- **Batched** to Ethereum. +- **Finalized** once the Ethereum batch reaches L1 finality. + +For the timing and guarantees of those stages, see [Transaction Lifecycle](/base-chain/network-information/transaction-lifecycle) and [Transaction Finality](/base-chain/network-information/transaction-finality). + +## How transactions are selected + +Base uses Flashblocks for block production. The block-in-progress is divided into roughly 200ms Flashblocks. Each Flashblock orders a portion of the next full L2 block. + +Transaction selection is affected by: + +- **Validity:** invalid nonce, insufficient balance, gas-limit violations, or reverted execution can prevent inclusion. +- **Priority fee:** higher-priority transactions are more likely to be selected earlier, but Flashblocks are not a formalized priority-fee auction mechanism. +- **Arrival timing:** a transaction that arrives after an earlier Flashblock has already been produced should not be assumed to reorder that earlier Flashblock, even if it pays a higher fee. +- **Gas budget:** each Flashblock has an incrementally increasing gas budget within the full L2 block gas limit. +- **Per-transaction gas maximum:** transactions above the active per-transaction gas cap are rejected before inclusion. + + +Flashblocks improve inclusion latency, but they do not create a single global fee-ranked ordering pass over every transaction that arrives during the full 2 second block window. For latency-sensitive workflows, arrival timing and propagation path matter alongside fee settings. + + +## What preconfirmation means + +When a transaction appears in Flashblocks data, it has been sequencer-ordered into the current block-in-progress. This is a strong preconfirmation signal, not the same thing as L2 block inclusion. + +Applications can use Flashblocks-aware RPC endpoints and subscriptions to display faster state updates, pending logs, transaction status, or preconfirmed receipts. They should still reconcile against sealed L2 block data before treating the transaction as fully included. + +## Practical guidance + +For apps and wallets: + +- Submit transactions with realistic fee settings and handle RPC rejection errors clearly. +- Track transactions by hash until a sealed receipt is available. +- If using preconfirmed state, label optimistic UI states and reconcile after L2 inclusion. + +For market makers and latency-sensitive systems: + +- Account for transaction propagation and arrival time, not only priority fee. +- Monitor both preconfirmation signals and sealed block receipts. +- Avoid assuming that a later high-fee transaction can reorder already-built Flashblocks. + +For infrastructure providers: + +- Expose Standard and Flashblocks endpoint behavior clearly to users. +- Document whether by-hash lookups can return preconfirmed cache data. +- Keep raw Flashblocks stream dependencies separate from application-facing RPC behavior. + +## Related references + +- [Block Building](/base-chain/network-information/block-building) documents Flashblocks timing, gas allocation, and active gas limits. +- [Base RPC Overview](/base-chain/api-reference/rpc-overview) explains how sequencing and preconfirmed state are exposed over RPC. +- [eth_sendRawTransaction](/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction) documents transaction submission behavior. +- [eth_getTransactionReceipt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) documents sealed and preconfirmed receipt lookups. +- [Protocol Overview](/base-chain/specs/protocol/overview) describes sequencer and validator roles at the specification layer. diff --git a/docs/base-chain/network-information/throughput-and-limits.mdx b/docs/base-chain/network-information/throughput-and-limits.mdx new file mode 100644 index 000000000..bdb19ed96 --- /dev/null +++ b/docs/base-chain/network-information/throughput-and-limits.mdx @@ -0,0 +1,24 @@ +--- +title: Throughput and Limits +description: Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. +--- + +This page collects the current destinations for Base throughput and limit topics. Keep live values on the canonical reference pages below. + +## Capacity and gas limits + +- [Block Building](/base-chain/network-information/block-building) documents block building mode, Flashblocks gas allocation, and the active per-transaction gas maximum. +- [Network Fees](/base-chain/network-information/network-fees) documents L2 execution fees, L1 security fees, minimum base fee, and EIP-1559 parameters. +- [Configuration Changelog](/base-chain/network-information/configuration-changelog) tracks changes to block building, fees, and other network parameters. + +## API and endpoint limits + +- [Networks and Endpoints](/base-chain/network-information/networks-and-endpoints) lists public Standard and Flashblocks endpoints. +- [Base RPC Overview](/base-chain/api-reference/rpc-overview) documents method behavior across Standard and Flashblocks endpoints. +- [Node Providers](/base-chain/node-operators/node-providers) lists infrastructure providers for production traffic. +- [Run a Base Node](/base-chain/node-operators/run-a-base-node) explains how to operate your own RPC infrastructure. + +## Troubleshooting + +- [Troubleshooting Transactions](/base-chain/network-information/troubleshooting-transactions) covers transaction inclusion, rejection, nonce, and confirmation issues. +- [Node Troubleshooting](/base-chain/node-operators/troubleshooting) covers node setup, sync, snapshot, and performance issues. diff --git a/docs/base-chain/network-information/transaction-finality.mdx b/docs/base-chain/network-information/transaction-finality.mdx index 01ae09508..1af493b4e 100644 --- a/docs/base-chain/network-information/transaction-finality.mdx +++ b/docs/base-chain/network-information/transaction-finality.mdx @@ -26,9 +26,9 @@ For transactions on Base, finality is not a single time to wait for. Instead, th After roughly 200ms, the transaction is included in a preconfirmation block (Flashblock) by the Base sequencer. - -* Flashblocks reorg less than 0.001% of the time -* You can see the reorg history in our [public stats page.](https://base.org/stats) + +* Base targets a Flashblock reorg SLO of less than 0.01%. +* This is a target SLO, not an observed reorg rate. Check current metrics in the [public stats page.](https://base.org/stats) @@ -85,4 +85,3 @@ Transactions moving funds from Ethereum L1 to Base must be initiated on Ethereum No. The output proposal that was challenged is marked invalid, and any actions that used it's output root become invalid. Specifically, withdrawals from Base to L1 that proved against this output root must now prove against a different and valid one. - diff --git a/docs/base-chain/network-information/transaction-lifecycle.mdx b/docs/base-chain/network-information/transaction-lifecycle.mdx new file mode 100644 index 000000000..495b43b0c --- /dev/null +++ b/docs/base-chain/network-information/transaction-lifecycle.mdx @@ -0,0 +1,71 @@ +--- +title: Transaction Lifecycle +description: Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. +--- + +Most transactions on Base follow the same high-level path: a wallet signs a transaction, an RPC endpoint accepts it, the sequencer orders it, Base exposes the result through preconfirmed and sealed block data, and the batcher posts the transaction data to Ethereum. + +For normal L2 activity, such as transfers, swaps, mints, contract calls, and app interactions, this process completes quickly. The 7 day waiting period only applies to withdrawals from Base back to Ethereum. + + +Only Base-to-Ethereum withdrawals use the 7 day fault proof window. Regular transactions on Base do not wait 7 days before apps can treat them as complete. + + +## Lifecycle at a glance + +| Stage | Typical timing | What happens | What apps can do | +| --- | --- | --- | --- | +| Submit and price | Immediate | The wallet signs a transaction and sends it to an RPC endpoint. The transaction must pay the required L2 execution fee and L1 data fee. | Surface wallet or RPC errors, show the transaction as submitted, and keep tracking by hash. | +| Sequence | Sub-second | The sequencer admits valid transactions, orders them, and begins building the next L2 block. | Treat the transaction as pending until it appears in preconfirmed or sealed block data. | +| Flashblock preconfirmation | About 200 ms | Flashblocks-aware infrastructure can expose preconfirmed transaction and state updates before the full L2 block is sealed. | Use Flashblocks endpoints for faster UI updates when your product can tolerate preconfirmation semantics. | +| L2 block inclusion | About 2 seconds | The transaction is included in a sealed L2 block distributed to Base nodes. | Show the transaction as included on Base and read its receipt through standard JSON-RPC. | +| L1 batch inclusion | About 2 minutes | The batcher posts Base transaction data to Ethereum. | Treat the transaction as having stronger settlement guarantees because the data has been posted to L1. | +| L1 finality | About 20 minutes | The Ethereum block containing the batch reaches Ethereum finality. | Treat the transaction as finalized for normal L2 app and accounting workflows. | +| Withdrawal finality | 7 days | For Base-to-Ethereum withdrawals only, the withdrawal must pass the fault proof challenge window before funds can be released on L1. | Keep withdrawal-specific UX separate from normal L2 transaction confirmation. | + +## Submission and fees + +A Base transaction starts the same way as an Ethereum transaction: a wallet signs calldata, gas parameters, nonce, chain ID, and value. The transaction is then sent to a Base RPC endpoint with `eth_sendRawTransaction`. + +Before a transaction can be included, it must be valid for the current account state and fee market. Common reasons for rejection or delay include an underpriced fee, an incorrect nonce, insufficient funds for gas, reverted execution, or endpoint rate limits. Base fees include L2 execution costs and the L1 data cost of eventually posting transaction data to Ethereum. + +## Sequencing and preconfirmation + +The Base sequencer orders admitted transactions and builds L2 blocks. With Flashblocks, the sequencer also emits preconfirmation data before the full L2 block is sealed. This gives apps a faster signal that a transaction is likely to land. + +Preconfirmed state is useful for low-latency UX, but it is not the same as L2 block inclusion. Apps should label or handle preconfirmed state separately when the distinction matters. For example, an app can optimistically update an order, mint, or transfer view from Flashblocks data, then reconcile the final receipt after L2 block inclusion. + +## L2 inclusion and receipts + +Once a transaction is included in a sealed L2 block, standard JSON-RPC methods such as `eth_getTransactionReceipt`, `eth_getTransactionByHash`, and `eth_getBlockByNumber` can return the canonical L2 result. This is the main confirmation point most apps use for normal Base activity. + +At this point, the receipt tells you whether execution succeeded, which logs were emitted, how much gas was used, and which block included the transaction. If a transaction is missing, still pending, or replaced by another transaction with the same nonce, handle that as a transaction tracking problem rather than a finality problem. + +## L1 batching and finality + +After L2 inclusion, Base batches transaction data and posts it to Ethereum. L1 batch inclusion gives the transaction stronger guarantees because the data needed to derive the L2 chain has been published to Ethereum. + +When the Ethereum block containing the batch reaches finality, the transaction has reached the strongest finality stage relevant to normal L2 app workflows. This is separate from withdrawal finality, which protects cross-chain withdrawals through the fault proof system. + +## Withdrawals are different + +Deposits from Ethereum to Base and normal transactions on Base do not use the 7 day withdrawal period. The 7 day window applies when a user withdraws from Base to Ethereum through the native bridge. + +During a withdrawal, the user initiates the withdrawal on Base, a proposer submits an output root to Ethereum, and the withdrawal can be finalized after the fault proof challenge window if the output root remains valid. If a challenge invalidates an output root, the L2 chain itself does not reorg, but withdrawals proven against that invalid output need to be proven again against a valid output. + +## Related docs + + + + Understand L2 execution fees, L1 data fees, and minimum base fee settings. + + + Learn how Base sequences transactions, builds Flashblocks, and enforces gas limits. + + + Compare Standard and Flashblocks endpoint behavior by method. + + + Compare preconfirmation, L2 inclusion, L1 batching, L1 finality, and withdrawal finality. + + diff --git a/docs/base-chain/network-information/troubleshooting-transactions.mdx b/docs/base-chain/network-information/troubleshooting-transactions.mdx index b20699ede..5e67a6c71 100644 --- a/docs/base-chain/network-information/troubleshooting-transactions.mdx +++ b/docs/base-chain/network-information/troubleshooting-transactions.mdx @@ -50,11 +50,11 @@ If you submit a transaction with a nonce that has already been used, it will be ### Gas Limit Exceeds Maximum -Base enforces a [per-transaction gas maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum) of **16,777,216 gas (2^24)**. Transactions specifying a higher gas limit are rejected during block validation. +Base enforces a [per-transaction gas maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum). The active cap is network- and activation-dependent: Base Sepolia uses 16,777,216 gas, while Base Mainnet uses 25,000,000 gas until Azul activates on May 21, 2026 at 18:00 UTC and 16,777,216 gas after activation. Transactions specifying a higher gas limit are rejected by the mempool before inclusion. **Error**: `exceeds maximum per-transaction gas limit` -**Solution**: Reduce the gas limit to 16,777,216 (2^24) or below. If your transaction genuinely requires more gas, you'll need to break it into multiple transactions. +**Solution**: Reduce the gas limit to the active per-transaction cap for the network. If your transaction genuinely requires more gas, you'll need to break it into multiple transactions. ## Transaction Included But Failed @@ -76,16 +76,7 @@ The contract execution encountered a revert condition. ### Understanding Confirmation Times -Base produces blocks every 2 seconds, but [Flashblocks](/base-chain/flashblocks/app-integration) provide preconfirmations every 200ms. - -| Confirmation Level | Time | Description | -|-------------------|------|-------------| -| Flashblock preconfirmation | ~200ms | Transaction included in a preconfirmation | -| L2 block inclusion | ~2s | Transaction included in a sealed L2 block | -| L1 batch inclusion | ~2m | Transaction posted to Ethereum | -| L1 finality | ~20m | Ethereum batch is finalized | - -See [Transaction Finality](/base-chain/network-information/transaction-finality) for more details. +First identify which confirmation stage your app or wallet is waiting for. The canonical lifecycle and timing from Flashblock preconfirmation through L1 finality is documented in [Transaction Finality](/base-chain/network-information/transaction-finality). ### Using Flashblocks for Faster Confirmations @@ -98,6 +89,8 @@ To get the fastest possible confirmation, use a Flashblocks-aware RPC endpoint: These endpoints return transaction receipts as soon as a transaction is included in a Flashblock, rather than waiting for the full L2 block. +If a transaction appears on a Flashblocks-aware endpoint but not yet on a standard RPC endpoint, continue polling the standard endpoint before treating it as a regular L2 block inclusion. If neither endpoint returns a receipt, continue with the fee, nonce, and gas-limit checks above. + ## Debugging Tools - **[Basescan](https://basescan.org)**: View transaction status, logs, and revert reasons diff --git a/docs/base-chain/node-operators/run-a-base-node.mdx b/docs/base-chain/node-operators/run-a-base-node.mdx index 4d36be28e..ac19d001e 100644 --- a/docs/base-chain/node-operators/run-a-base-node.mdx +++ b/docs/base-chain/node-operators/run-a-base-node.mdx @@ -3,6 +3,8 @@ title: Run a Node description: A tutorial that teaches how to set up and run a Base Node. --- +import BaseNetworks from "/snippets/base-networks.mdx"; + This tutorial will walk you through setting up your own [Base Node](https://github.com/base/node). ## Objectives @@ -17,16 +19,13 @@ By the end of this tutorial you should be able to: Running a node is time consuming, resource expensive, and potentially costly. If you don't already know why you want to run your own node, you probably don't need to. -If you're just getting started and need an RPC URL, you can use our free endpoints: - -- **Mainnet**: `https://mainnet.base.org` -- **Testnet (Sepolia)**: `https://sepolia.base.org` - -**Note:** Our RPCs are rate-limited, they are not suitable for production apps. +If you're just getting started and need an RPC URL, you can use the public endpoints listed below. These endpoints are rate-limited and are not suitable for production apps. If you're looking to harden your app and avoid rate-limiting for your users, please consider using an endpoint from one of our [partners](/base-chain/node-operators/node-providers). + + ### Hardware requirements See the [Node Performance guide](/base-chain/node-operators/performance-tuning#hardware) for full hardware specifications, storage requirements, and production hardware examples. @@ -64,14 +63,23 @@ This tutorial assumes you are familiar with [Docker](https://www.docker.com/) an You'll need your own L1 RPC URL. This can be one that you run yourself, or via a third-party provider, such as our [partners](/base-chain/node-operators/node-providers). +### Supported Client Combinations + +| Network | Activation status | Supported execution client | Supported consensus client | Env-var family | Sync RPC | +|---------|-------------------|----------------------------|----------------------------|----------------|----------| +| Base Mainnet | Azul activates May 21, 2026 18:00 UTC | `base-reth-node` v0.8.0+ after activation | `base-consensus` v0.8.0+ after activation | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | +| Base Sepolia | Azul activated April 20, 2026 18:00 UTC | `base-reth-node` v0.8.0+ | `base-consensus` v0.8.0+ | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | + + +Use supported Base-native client combinations for Azul. The `CLIENT=geth` + `BASE_CONSENSUS=true` combination crash-loops in v0.15.5 and should not be used. + + ## Running a Node 1. Clone the [repo](https://github.com/base/node). -2. Ensure you have an Ethereum L1 full node RPC available (not Base), and set `BASE_NODE_L1_ETH_RPC` & `BASE_NODE_L1_BEACON` in the appropriate `.env` file (`.env.mainnet` or `.env.sepolia`). If running your own L1 node, it needs to be synced before Base will be able to fully sync. -3. Start the node: - - **Mainnet**: `docker compose up --build` - - **Testnet**: `NETWORK_ENV=.env.sepolia docker compose up --build` -4. Confirm you get a response from: +2. Ensure you have an Ethereum L1 full node RPC available (not Base), and set `BASE_NODE_L1_ETH_RPC` and `BASE_NODE_L1_BEACON` (in the `.env.*` file if using `docker-compose`). If running your own L1 node, it needs to be synced before Base will be able to fully sync. +3. Uncomment the line relevant to your network (`.env.sepolia`, or `.env.mainnet`) under the 2 `env_file` keys in `docker-compose.yml`. +4. Run `docker compose up`. Confirm you get a response from: ```bash Terminal curl -d '{"id":0,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' \ @@ -93,7 +101,7 @@ You can monitor the progress of your sync with: ```bash Terminal echo Latest synced block behind by: $((($(date +%s)-$( \ curl -d '{"id":0,"jsonrpc":"2.0","method":"optimism_syncStatus"}' \ - -H "Content-Type: application/json" http://localhost:7545 | \ + -H "Content-Type: application/json" http://localhost:${BASE_NODE_RPC_PORT:-7545} | \ jq -r .result.unsafe_l2.timestamp))/60)) minutes ``` @@ -127,7 +135,7 @@ RETH_FB_WEBSOCKET_URL="wss://mainnet.flashblocks.base.org/ws" docker compose up **These WebSocket endpoints are for node infrastructure only.** -Applications should not connect directly to `wss://mainnet.flashblocks.base.org/ws`. Instead, apps should query your RPC node for Flashblocks data. See the [App Integration guide](/base-chain/flashblocks/app-integration) for details. +Applications should not connect directly to `wss://mainnet.flashblocks.base.org/ws`. Instead, apps should query your RPC node for Flashblocks data. See the [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix) for endpoint behavior. diff --git a/docs/base-chain/node-operators/troubleshooting.mdx b/docs/base-chain/node-operators/troubleshooting.mdx index 4508dd7af..84c54386b 100644 --- a/docs/base-chain/node-operators/troubleshooting.mdx +++ b/docs/base-chain/node-operators/troubleshooting.mdx @@ -33,20 +33,21 @@ Before diving into specific issues, here are some general steps that often help: - **Check**: Are you in the correct directory (the cloned `node` directory containing `docker-compose.yml`)? - **Check**: Syntax errors in the command (e.g., misspelled `NETWORK_ENV`). -- **Issue**: Container fails to start, logs show errors related to `.env` files or environment variables. - - **Check**: Did you correctly configure the L1 endpoints (`BASE_NODE_L1_ETH_RPC`, `BASE_NODE_L1_BEACON`) in the correct `.env` file (`.env.mainnet` or `.env.sepolia`)? - - **Check**: Are `RETH_CHAIN` and `RETH_SEQUENCER_HTTP` correctly set in the `.env` file? +- **Issue**: Container fails to start, logs show errors related to `.env` files or environment variables. + - **Check**: Did you correctly configure the L1 endpoints (`BASE_NODE_L1_ETH_RPC`, `BASE_NODE_L1_BEACON`) in the correct `.env` file (`.env.mainnet` or `.env.sepolia`)? + - **Check**: Is the `BASE_NODE_L1_BEACON_ARCHIVER` endpoint set if required by your configuration or L1 node? + - **Check**: (Reth) Are `RETH_CHAIN` and `RETH_SEQUENCER_HTTP` correctly set in the `.env` file? -- **Issue**: Errors related to JWT secret or authentication between `base-consensus` and the execution client. - - **Check**: Ensure you haven't manually modified the `BASE_NODE_L2_ENGINE_AUTH` variable or the JWT file path (`$BASE_NODE_L2_ENGINE_AUTH`) unless you know what you're doing. The `docker-compose` setup usually handles this automatically. +- **Issue**: Errors related to JWT secret or authentication between `base-consensus` and the execution client. + - **Check**: Ensure you haven't manually modified `BASE_NODE_L2_ENGINE_AUTH_RAW`, `BASE_NODE_L2_ENGINE_AUTH`, or the JWT file path unless you know what you're doing. The `docker-compose` setup usually handles this automatically. - **Issue**: Permission errors related to data volumes (`./reth-data`). - **Check**: Ensure the user running `docker compose` has write permissions to the directory where the `node` repository was cloned. Docker needs to be able to write to `./reth-data`. Sometimes running Docker commands with `sudo` can cause permission issues later; try running as a non-root user added to the `docker` group. ### Syncing Problems -- **Issue**: Node doesn't start syncing or appears stuck (block height not increasing). - - **Check**: `base-consensus` logs. Look for errors connecting to L1 endpoints or the execution client. +- **Issue**: Node doesn't start syncing or appears stuck (block height not increasing). + - **Check**: `base-consensus` logs. Look for errors connecting to L1 endpoints or the execution client. - **Check**: Look at logs for the execution client. Look for errors connecting to `base-consensus` via the Engine API (port `8551`) or P2P issues. - **Check**: L1 node health and sync status. Is the L1 node accessible and fully synced? - **Check**: System time. Ensure the server’s clock is accurately synchronized (use `ntp` or `chrony`). Significant time drift can cause P2P issues. @@ -57,12 +58,12 @@ Before diving into specific issues, here are some general steps that often help: - **Check**: Network connection quality and bandwidth. - **Check**: `base-consensus` and execution client logs for any performance warnings or errors. -- **Issue**: `optimism_syncStatus` (port `7545` on `base-consensus`) shows a large time difference or errors. +- **Issue**: `optimism_syncStatus` on the base-consensus RPC port (`BASE_NODE_RPC_PORT`) shows a large time difference or errors. - **Action**: Check the logs for both the rollup node and the L2 execution client around the time the status was checked to identify the root cause (e.g., L1 connection issues, L2 client issues). - **Issue**: `Error: nonce has already been used` when trying to send transactions. - **Cause**: The node is not yet fully synced to the head of the chain. - - **Action**: Wait for the node to fully sync. Monitor progress using `optimism_syncStatus` or logs. + - **Action**: Wait for the node to fully sync. Monitor progress using `optimism_syncStatus` on the base-consensus RPC port or logs. ### Performance Issues diff --git a/docs/base-chain/overview.mdx b/docs/base-chain/overview.mdx new file mode 100644 index 000000000..ae8552e24 --- /dev/null +++ b/docs/base-chain/overview.mdx @@ -0,0 +1,55 @@ +--- +title: Chain Overview +description: Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +--- + +Base is an Ethereum L2. These docs explain how transactions move through Base, how blocks are built, how assets move across chains, and where to find the lower-level references for integration and operations. + +## Start here + + + + Follow a transaction from submission through preconfirmation, L2 inclusion, L1 batching, and finality. + + + Learn how Base orders transactions, builds Flashblocks, and enforces network limits. + + + Understand how assets move between Base, Ethereum, Solana, Bitcoin, and other chains. + + + Learn where batch transactions, sponsored gas, spend permissions, and smart account UX live in the Base docs. + + + Operate Base infrastructure, including Flashblocks-aware RPC nodes. + + + Use Base JSON-RPC, Flashblocks API methods, subscriptions, and debug APIs. + + + +## Reference areas + + + + Learn how Base blocks are built, how transactions are ordered, and how network limits are configured. + + + Look up RPC endpoints, chain IDs, contract addresses, faucets, and configuration history. + + + Build account abstraction UX on Base, including batching, paymasters, spend permissions, and sub-accounts. + + + Read the cohesive Base Chain protocol specification, upgrades, BCPs, and protocol reference. + + + +## Where Flashblocks content lives + +Flashblocks is part of Base block production, transaction confirmation, RPC behavior, and node operation. Start with: + +- [Block Building](/base-chain/network-information/block-building#flashblocks) for sequencing and gas allocation. +- [Transaction Finality](/base-chain/network-information/transaction-finality) for preconfirmation and finality stages. +- [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix) for API behavior. +- [Run a Base Node](/base-chain/node-operators/run-a-base-node#enable-flashblocks) for node operation. diff --git a/docs/base-chain/quickstart/connecting-to-base.mdx b/docs/base-chain/quickstart/connecting-to-base.mdx index d3d326288..f9af19daa 100644 --- a/docs/base-chain/quickstart/connecting-to-base.mdx +++ b/docs/base-chain/quickstart/connecting-to-base.mdx @@ -3,27 +3,11 @@ title: 'Connecting to Base' description: Documentation about Base Mainnet and Base Testnet. This page covers network information for the Base network, including network names, descriptions, RPC endpoints, chain IDs, currency symbols, and block explorers. --- -## Base Mainnet - -| Name | Value | -| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------ | -| Network Name | Base Mainnet | -| Description | The public mainnet for Base. | -| RPC Endpoint | [https://mainnet.base.org](https://mainnet.base.org)
_Flashblocks-enabled. Rate limited and not for production systems._ | -| Chain ID | 8453 | -| Currency Symbol | ETH | -| Block Explorer | [https://base.blockscout.com/](https://base.blockscout.com/) | - -## Base Testnet (Sepolia) - -| Name | Value | -| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------ | -| Network Name | Base Sepolia | -| Description | A public testnet for Base. | -| RPC Endpoint | [https://sepolia.base.org](https://sepolia.base.org)
_Flashblocks-enabled. Rate limited and not for production systems._ | -| Chain ID | 84532 | -| Currency Symbol | ETH | -| Block Explorer | [https://sepolia-explorer.base.org](https://sepolia-explorer.base.org) | +import BaseNetworks from "/snippets/base-networks.mdx"; + +## Base Networks + + L1 & L2 protocol and network-related smart contract deployments can be found on the [Base Contracts](/base-chain/network-information/base-contracts) page. @@ -71,7 +55,7 @@ To add Base as a custom network to MetaMask: | RPC Endpoint | [https://mainnet.base.org](https://mainnet.base.org) | | Chain ID | 8453 | | Currency Symbol | ETH | - | Block Explorer | [https://base.blockscout.com/](https://base.blockscout.com/) | + | Block Explorer | [https://basescan.org](https://basescan.org) | 6. Tap the Save button to save Base as a network. @@ -114,7 +98,7 @@ To add Base Sepolia as a custom network in MetaMask: | RPC Endpoint | [https://sepolia.base.org](https://sepolia.base.org) | | Chain ID | 84532 | | Currency Symbol | ETH | - | Block Explorer | [https://sepolia-explorer.base.org](https://sepolia-explorer.base.org) | + | Block Explorer | [https://sepolia.basescan.org](https://sepolia.basescan.org) | 6. Tap the Save button to save Base Sepolia as a network. diff --git a/docs/base-chain/quickstart/why-base.mdx b/docs/base-chain/quickstart/why-base.mdx deleted file mode 100644 index ffa86161d..000000000 --- a/docs/base-chain/quickstart/why-base.mdx +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: 'Why Base?' ---- - -## TL;DR - -- **Cheap, fast, and open platform:** Base is a globally available platform that provides 1-second and <1-cent transactions to anyone in the world. -- **Access to high-quality tooling:** Builders have access to tools to build incredible onchain experiences for AI, social, media, and entertainment. -- **A place to earn:** Base has delivered grants to more than 1,000 builders, with plans to continue supporting more. -- **Reach more users:** Base is committed to helping developers grow their user base by distributing their apps through official Base channels. - - -## A platform for building innovative apps - -Base is a global onchain economy of people, builders, and businesses creating the next generation of the open internet. It enables builders to: - -- Focus on solving real user problems -- Scale apps globally by default -- Onboard users with a click -- Accept payments from anyone, easily - -It’s fast, cheap, and permissionless, meaning anyone can build and use applications on Base. - -Base has become the hub for innovative use cases in media, entertainment, social, and even artificial intelligence. [Clanker](https://www.clanker.world), an autonomous AI agent on Base, generated more than $13 million in revenue within three months of its inception. As a cultivator of innovation, Base enables developers to focus on improving their products while retaining more of the upside they generate. - -Traditional app distribution models often require developers to sacrifice 30% of their revenue to app marketplaces. These platforms may incentivize predatory practices—selling user data or requiring personal information—and can restrict or deny access at their discretion. For instance, someone in Nairobi might be unable to use many U.S.-based fintech services. - -In contrast, decentralized finance (DeFi) apps—an onchain development sector—like [Moonwell](https://moonwell.fi) allow people anywhere in the world to access financial services directly from their phones. This means someone in Nairobi has the same level of access as someone in the U.S., opening opportunities that were previously inaccessible. - - - -## Expansive developer tools - -Developers choose Base for its: - -- Always-on global payment rail operating at internet speed -- Low transaction costs (often less than a cent) -- Robust developer tooling - -But there’s more: Base apps can be launched in hours, not days or weeks, thanks to an extensive suite of tools—many of which are open source. We’re reviving the spirit of innovation where two builders in a garage can create a massively successful business. - -Some of the tooling that makes this possible: - -- **Base Account:** Onboard your users quickly and securely. Users never have to worry about seed phrases again. -- **Coinbase Developer Platform:** Access specialized developer services for onchain development, such as free node software, sponsored transactions, and other tools to help you fine-tune your application. -- **Basenames:** More than just human-readable text to replace an address—Basenames are the front page to a builder’s onchain profile. -- **Verifications:** Enable unique experiences for users with verified credentials. - diff --git a/docs/base-chain/specs/protocol/overview.mdx b/docs/base-chain/specs/protocol/overview.mdx index 7d7870f34..34320c3d4 100644 --- a/docs/base-chain/specs/protocol/overview.mdx +++ b/docs/base-chain/specs/protocol/overview.mdx @@ -7,6 +7,11 @@ Base is a rollup built on Ethereum. L2 transaction data is posted to Ethereum fo and proofs allow anyone to challenge invalid state transitions. This page gives a high-level tour of the protocol components and the core user flows. +Some implementation names in the protocol specifications, such as `op-node`, `op-geth`, and +`op-program`, are inherited OP Stack protocol or reference terminology. Current Base operator guidance +uses `base-consensus` and `base-reth-node`; see [Run a Node](/base-chain/node-operators/run-a-base-node) +and the [Azul upgrade guide](/base-chain/node-operators/base-v1-upgrade). + ## Network Participants There are three primary actors that interact with Base: users, sequencers, and validators. diff --git a/docs/base-chain/specs/upgrades/azul/node-upgrade.mdx b/docs/base-chain/specs/upgrades/azul/node-upgrade.mdx index d7b84323d..5aa97c64f 100644 --- a/docs/base-chain/specs/upgrades/azul/node-upgrade.mdx +++ b/docs/base-chain/specs/upgrades/azul/node-upgrade.mdx @@ -86,11 +86,12 @@ Replace `op-node` with `base-consensus` by updating your environment variables. 4. Verify: - Check consensus logs: `docker compose logs -f node` - - Confirm sync status: `optimism_syncStatus` continues to work + - Confirm sync status with `optimism_syncStatus` on the base-consensus RPC port ### Environment Variable Mapping If you use [base/node](https://github.com/base/node), most variables are already set in `.env.mainnet` and `.env.sepolia`. If you build from [base/base](https://github.com/base/base), use the table below to map your `op-node` environment variables to `base-consensus`. Most are optional. Run `base-consensus node --help` for the full list. + | `op-node` | `base-consensus` | |-----------|-------------------| | `OP_NODE_NETWORK` | `BASE_NODE_NETWORK` | @@ -102,7 +103,7 @@ If you use [base/node](https://github.com/base/node), most variables are already | `OP_NODE_L1_TRUST_RPC` | `BASE_NODE_L1_TRUST_RPC` | | `OP_NODE_L2_ENGINE_RPC` | `BASE_NODE_L2_ENGINE_RPC` | | `OP_NODE_L2_ENGINE_AUTH` | `BASE_NODE_L2_ENGINE_AUTH` | -| — | `BASE_NODE_L2_ENGINE_AUTH_ENCODED` | +| — | `BASE_NODE_L2_ENGINE_AUTH_RAW` | | `OP_NODE_P2P_BOOTNODES` | `BASE_NODE_P2P_BOOTNODES` | | `OP_NODE_P2P_LISTEN_IP` | `BASE_NODE_P2P_LISTEN_IP` | | `OP_NODE_P2P_LISTEN_TCP_PORT` | `BASE_NODE_P2P_LISTEN_TCP_PORT` | @@ -124,7 +125,7 @@ If you use [base/node](https://github.com/base/node), most variables are already | `OP_NODE_RPC_ADMIN_STATE` | `BASE_NODE_RPC_ADMIN_STATE` | | `OP_NODE_SAFEDB_PATH` | `BASE_NODE_SAFEDB_PATH` | | `OP_NODE_SYNCMODE` | — | -| `OP_NODE_VERIFIER_L1_CONFS` | — | +| `OP_NODE_VERIFIER_L1_CONFS` | `BASE_NODE_VERIFIER_L1_CONFS` | | `OP_NODE_L2_ENGINE_KIND` | — | | `OP_NODE_L1_RPC_KIND` | — | | `OP_NODE_L1_BEACON_FETCH_ALL_SIDECARS` | — | diff --git a/docs/changes.md b/docs/changes.md index 58d5ecc97..edc35a649 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -23,7 +23,7 @@ These are **config and visible docs only** (not hidden MDX): |--------|------------| | Destinations pointed at **`/apps/overview`** (no page) | Now **`/apps/quickstart/create-new-app`** (matches prior `/mini-apps/overview` behavior). | | **`/mini-apps/features/links`** → missing `technical-guides/links` | Destination is **`/apps/core-concepts/navigation`**. | -| **`/mini-apps/growth/data-driven-growth`** → missing `technical-guides/data-driven-growth` | Destination is **`https://base.dev`** (same as the `technical-guides/data-driven-growth` redirect). | +| **`/mini-apps/growth/data-driven-growth`** → missing `technical-guides/data-driven-growth` | Destination is **`https://dashboard.base.org`** (same as the `technical-guides/data-driven-growth` redirect). | | **`/apps/features/manifest`** (base-app minikit redirects) | **`/apps/core-concepts/manifest`**. | | **`/mini-apps/quickstart/new-apps/features`** → missing `features/overview` | **`/apps/featured-guidelines/overview`**. | diff --git a/docs/docs.json b/docs/docs.json index 90dbd4ae8..0b55c1bcd 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -38,7 +38,6 @@ "group": "Quickstart", "pages": [ "get-started/resources-for-ai-agents", - "get-started/build-app", "get-started/launch-token", "get-started/deploy-smart-contracts", "get-started/learning-resources" @@ -83,7 +82,7 @@ }, { "anchor": "Bridge", - "href": "https://docs.base.org/base-chain/network-information/bridges-mainnet", + "href": "https://docs.base.org/base-chain/network-information/bridges", "icon": "coin" }, { @@ -105,40 +104,47 @@ ] }, { - "group": "Quickstart", + "group": "Introduction", "pages": [ - "base-chain/quickstart/why-base", - "base-chain/quickstart/deploy-on-base", - "base-chain/quickstart/connecting-to-base", - "base-chain/quickstart/base-solana-bridge" + "base-chain/overview" ] }, { - "group": "Network Information", + "group": "Concepts", "pages": [ - "base-chain/network-information/base-contracts", - "base-chain/network-information/network-fees", + "base-chain/network-information/transaction-lifecycle", "base-chain/network-information/block-building", + "base-chain/network-information/sequencing-policy", "base-chain/network-information/transaction-finality", - "base-chain/network-information/diffs-ethereum-base", - "base-chain/network-information/troubleshooting-transactions", - "base-chain/network-information/configuration-changelog", - "base-chain/network-information/network-faucets" + "base-chain/network-information/throughput-and-limits", + "base-chain/network-information/network-fees", + { + "group": "Bridging", + "pages": [ + "base-chain/network-information/bridges", + "base-chain/network-information/base-solana-bridge" + ] + }, + "base-chain/network-information/diffs-ethereum-base" ] }, { - "group": "Flashblocks", + "group": "Network Reference", "pages": [ - "base-chain/flashblocks/overview", - "base-chain/flashblocks/app-integration", - "base-chain/flashblocks/architecture", - "base-chain/flashblocks/faq" + "base-chain/network-information/networks-and-endpoints", + "base-chain/quickstart/connecting-to-base", + "base-chain/network-information/base-contracts", + "base-chain/network-information/ecosystem-contracts", + "base-chain/network-information/network-faucets", + "base-chain/network-information/configuration-changelog", + "base-chain/network-information/troubleshooting-transactions" ] }, { "group": "Node Operators", "pages": [ "base-chain/node-operators/run-a-base-node", + "base-chain/node-operators/base-v1-upgrade", "base-chain/node-operators/performance-tuning", "base-chain/node-operators/snapshots", "base-chain/node-operators/node-providers", @@ -368,7 +374,7 @@ "anchors": [ { "anchor": "GitHub", - "href": "https://github.com/base", + "href": "https://github.com/base/base", "icon": "github" }, { @@ -386,11 +392,6 @@ "href": "https://basescan.org/", "icon": "magnifying-glass" }, - { - "anchor": "Support", - "href": "https://discord.com/invite/buildonbase", - "icon": "discord" - }, { "anchor": "Blog", "href": "https://blog.base.dev/", @@ -626,11 +627,6 @@ "anchor": "GitHub", "href": "https://github.com/base/account-sdk", "icon": "github" - }, - { - "anchor": "Support", - "href": "https://discord.com/invite/buildonbase", - "icon": "discord" } ] } @@ -641,7 +637,8 @@ { "group": "Quickstart", "pages": [ - "apps/quickstart/build-app" + "apps/quickstart/build-app", + "apps/quickstart/deploy-on-base" ] }, { @@ -732,8 +729,8 @@ ], "primary": { "type": "button", - "label": "Base Dashboard", - "href": "https://dashboard.base.org/" + "label": "Dashboard", + "href": "https://dashboard.base.org" } }, "footer": { @@ -840,6 +837,18 @@ "source": "/ai-agents/skills/trading/swap-execution", "destination": "/ai-agents/guides/swap-tokens" }, + { + "source": "/base-chain/quickstart/base-solana-bridge", + "destination": "/base-chain/network-information/base-solana-bridge" + }, + { + "source": "/base-chain/quickstart/deploy-on-base", + "destination": "/apps/quickstart/deploy-on-base" + }, + { + "source": "/base-chain/network-information/specs-vs-network-reference", + "destination": "/base-chain/overview" + }, { "source": "/base-chain/reference/json-rpc-api", "destination": "/base-chain/api-reference/rpc-overview" @@ -864,6 +873,22 @@ "source": "/base-chain/flashblocks/api-reference#endpoints", "destination": "/base-chain/api-reference/rpc-overview#endpoints" }, + { + "source": "/base-chain/flashblocks/overview", + "destination": "/base-chain/network-information/block-building#flashblocks" + }, + { + "source": "/base-chain/flashblocks/app-integration", + "destination": "/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix" + }, + { + "source": "/base-chain/flashblocks/architecture", + "destination": "/base-chain/node-operators/run-a-base-node#enable-flashblocks" + }, + { + "source": "/base-chain/flashblocks/faq", + "destination": "/base-chain/network-information/transaction-lifecycle" + }, { "source": "/ai-agents/reference/contracts", "destination": "/ai-agents/index" @@ -1834,11 +1859,11 @@ }, { "source": "/mini-apps/growth/data-driven-growth", - "destination": "https://base.dev" + "destination": "https://dashboard.base.org" }, { "source": "/mini-apps/technical-guides/data-driven-growth", - "destination": "https://base.dev" + "destination": "https://dashboard.base.org" }, { "source": "/mini-apps/features/links", @@ -2058,11 +2083,11 @@ }, { "source": "/chain/bridges-mainnet", - "destination": "/base-chain/network-information/bridges-mainnet" + "destination": "/base-chain/network-information/bridges" }, { "source": "/chain/builder-anniversary-nft", - "destination": "/base-chain/quickstart/why-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/chain/connecting-to-base", @@ -2078,11 +2103,11 @@ }, { "source": "/chain/decentralizing-base-with-optimism", - "destination": "/base-chain/quickstart/why-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/chain/deploy-on-base-quickstart", - "destination": "/base-chain/quickstart/deploy-on-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/chain/differences-between-ethereum-and-base", @@ -2094,15 +2119,15 @@ }, { "source": "/chain/flashblocks", - "destination": "/base-chain/flashblocks/app-integration" + "destination": "/base-chain/network-information/block-building#flashblocks" }, { "source": "/chain/flashblocks/apps", - "destination": "/base-chain/flashblocks/app-integration" + "destination": "/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix" }, { "source": "/base-chain/flashblocks/apps", - "destination": "/base-chain/flashblocks/app-integration" + "destination": "/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix" }, { "source": "/chain/flashblocks/node-providers", @@ -2182,7 +2207,11 @@ }, { "source": "/chain/why-base", - "destination": "/base-chain/quickstart/why-base" + "destination": "/base-chain/overview" + }, + { + "source": "/base-chain/quickstart/why-base", + "destination": "/base-chain/overview" }, { "source": "/cookbook/growth/cast-actions", @@ -2654,11 +2683,11 @@ }, { "source": "/tutorials/deploy-with-foundry", - "destination": "/base-chain/quickstart/deploy-on-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/tutorials/deploy-with-remix", - "destination": "/base-chain/quickstart/deploy-on-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/use-cases/accept-crypto-payments", @@ -2954,7 +2983,7 @@ }, { "source": "/cookbook/testing-onchain-apps", - "destination": "/base-chain/quickstart/deploy-on-base" + "destination": "/apps/quickstart/deploy-on-base" }, { "source": "/cookbook/ai-prompting", diff --git a/docs/get-started/base.mdx b/docs/get-started/base.mdx index d672db9a9..d1c29fb65 100644 --- a/docs/get-started/base.mdx +++ b/docs/get-started/base.mdx @@ -20,7 +20,7 @@ mode: "wide"
### Tokens [Launch a Token](/get-started/launch-token) - [Bridge from Solana](/base-chain/quickstart/base-solana-bridge) + [Bridge from Solana](/base-chain/network-information/base-solana-bridge) [Bridge from Ethereum](/base-chain/network-information/bridges)
@@ -28,7 +28,7 @@ mode: "wide" ### Products - + Network, nodes, and infrastructure @@ -37,7 +37,7 @@ mode: "wide" Build and deploy autonomous onchain agents - + Cross-chain asset transfers diff --git a/docs/get-started/learning-resources.mdx b/docs/get-started/learning-resources.mdx index e2d014f01..77ac467d4 100644 --- a/docs/get-started/learning-resources.mdx +++ b/docs/get-started/learning-resources.mdx @@ -18,6 +18,6 @@ We will be adding more learning resources to help you build on Base. Stay tuned - New educational content In the meantime, check out the following resources: -- [Base Account](/base-account/overview/what-is-base-account), [Apps](/apps/quickstart/create-new-app), and [Base Chain](/base-chain/quickstart/why-base) for building on Base. +- [Base Account](/base-account/overview/what-is-base-account), [Apps](/apps/quickstart/build-app), and [Base Chain](/base-chain/overview) for building on Base. - [CryptoZombies](https://cryptozombies.io/) and [Solidity by Example](https://solidity-by-example.org/) for learning Solidity. -- [Base Prompt Library](/get-started/prompt-library) for building with AI. \ No newline at end of file +- [Base Prompt Library](/get-started/prompt-library) for building with AI. diff --git a/docs/get-started/resources-for-ai-agents.mdx b/docs/get-started/resources-for-ai-agents.mdx index 69c2a414e..5d14aaba2 100644 --- a/docs/get-started/resources-for-ai-agents.mdx +++ b/docs/get-started/resources-for-ai-agents.mdx @@ -79,7 +79,7 @@ Once your agent has docs context, point it at the section that matches what you' | Adding payments or onchain transactions | [Make x402 payments](/ai-agents/guides/x402-payments) | | Registering an agent for onchain attribution | [Builder Codes for Agents](/ai-agents/guides/agent-builder-codes) | | Using AI tools with Base Account | [Base Account quickstart for AI tools](/base-account/quickstart/ai-tools-available-for-devs) | -| Deploying contracts | [Deploy on Base](/base-chain/quickstart/deploy-on-base) | +| Deploying contracts | [Deploy on Base](/apps/quickstart/deploy-on-base) | | Building an app on Base | [Build a Base app](/apps/quickstart/build-app) | ## Example prompts diff --git a/docs/llms-full.txt b/docs/llms-full.txt index 40a5398dd..9bbceb086 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -108,7 +108,8 @@ const client = createPublicClient({ chain: base, transport: http() }) - [Resources for AI agents](https://docs.base.org/get-started/resources-for-ai-agents): Base-first resources for AI agents, including docs indexes, MCP access, skills, and recommended starting points ## Base Chain -- [Flashblocks Overview](https://docs.base.org/base-chain/flashblocks/overview): Understand the sequencer architecture, block building algorithm, and integration options for Flashblocks on Base. +- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +- [Base Change Proposals (BCPs)](https://docs.base.org/base-chain/specs/bcps/index): Index of Base Chain Proposals (BCPs) — design documents describing proposed changes to the Base Chain protocol. - [Overview](https://docs.base.org/base-chain/specs/overview): Technical specification of the Base Chain protocol, covering block derivation, execution, transaction propagation, and state verification. - [Specification](https://docs.base.org/base-chain/specs/protocol/consensus/index): Specification of the Base rollup node, describing its components and role in L2 block derivation and consensus. - [L2 Execution Engine](https://docs.base.org/base-chain/specs/protocol/execution/index): Specification of the L2 execution engine, detailing EIP-1559 parameters, fee vaults, Engine API usage, and execution layer behavior. @@ -145,11 +146,11 @@ const client = createPublicClient({ chain: base, transport: http() }) - [eth_getTransactionByBlockHashAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex): Returns a transaction by block hash and index position. - [eth_getTransactionByBlockNumberAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex): Returns a transaction by block number and index position. - [eth_getTransactionByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash): Returns a transaction by its hash. -- [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount): Returns the number of transactions sent from an address (the nonce). Use pending to get the pre-confirmed nonce. -- [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt): Returns the receipt for a mined transaction. Receipts are only available after a transaction is included in a block. +- [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount): Returns the number of transactions sent from an address (the nonce). Use pending on a Flashblocks endpoint to get the pre-confirmed nonce. +- [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt): Returns the receipt for a transaction. Flashblocks endpoints can return preconfirmed receipt data from cache before the block seals. - [eth_maxPriorityFeePerGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas): Returns the suggested EIP-1559 priority fee (tip) per gas. -- [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction): Submits a pre-signed transaction to the network. All Base endpoints are Flashblocks-enabled, providing 200ms pre-confirmation. -- [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe): Creates a real-time WebSocket subscription for new blocks, logs, and pending transactions. +- [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction): Submits a pre-signed transaction to the network. Use a Flashblocks preconf endpoint when you need faster pre-confirmation signals. +- [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe): Creates a real-time WebSocket subscription. Flashblocks endpoints add three extra subscription types and emit newHeads every ~200ms. - [eth_syncing](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing): Returns the sync status of the node. - [eth_unsubscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe): Cancels an active WebSocket subscription. - [net_version](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/net_version): Returns the current network ID as a string. @@ -160,28 +161,37 @@ const client = createPublicClient({ chain: base, transport: http() }) - [newFlashblocks](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblocks): Subscribe to receive full Flashblock payload stream as each pre-confirmed block is built. Only available on Flashblocks WebSocket endpoints. - [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions): Subscribe to receive each transaction as it is pre-confirmed into a Flashblock. Only available on Flashblocks WebSocket endpoints. - [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs): Subscribe to logs from pre-confirmed transactions matching an optional filter. Only available on Flashblocks WebSocket endpoints. -- [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): Complete reference for all JSON-RPC and Flashblocks methods available on Base nodes. -- [App Integration](https://docs.base.org/base-chain/flashblocks/app-integration): Integrate Flashblocks into your app for 200ms transaction confirmations using RPC APIs and popular libraries like Ethers, Wagmi and Viem. -- [Flashblocks Architecture](https://docs.base.org/base-chain/flashblocks/architecture): Understand the sequencer architecture and infrastructure components that power Flashblocks on Base. -- [Flashblocks FAQ](https://docs.base.org/base-chain/flashblocks/faq): Frequently asked questions about Flashblocks, including block building, WebSocket data, RPC usage, and node setup. +- [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): How to choose between Standard RPC, Flashblocks RPC, and API method families on Base. +- [Asset Security Checklist](https://docs.base.org/base-chain/asset-issuance/asset-security-checklist): TODO page for asset security guidance on Base. +- [Bridged and Native Assets](https://docs.base.org/base-chain/asset-issuance/bridged-and-native-assets): TODO page for canonical, bridged, and native asset representations on Base. +- [Issuing on Base](https://docs.base.org/base-chain/asset-issuance/issuing-on-base): TODO page for asset issuance guidance on Base. +- [Liquidity and Venues](https://docs.base.org/base-chain/asset-issuance/liquidity-and-venues): TODO page for liquidity and venue considerations for assets on Base. +- [Token Standards](https://docs.base.org/base-chain/asset-issuance/token-standards): TODO page for recommended and supported token standards on Base. - [Contract Addresses](https://docs.base.org/base-chain/network-information/base-contracts): A comprehensive list of L2 contract addresses for Base Mainnet and Base Testnet, including links to their respective blockchain explorers. +- [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences): Base-specific execution behavior to account for while building EVM-compatible applications. +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet - [Block Building](https://docs.base.org/base-chain/network-information/block-building): This page outlines how Base blocks are built. -- [Bridges](https://docs.base.org/base-chain/network-information/bridges): Documentation for bridging assets to Base. This page covers how to bridge assets between Ethereum, Solana, Bitcoin, and Base. +- [Bridging](https://docs.base.org/base-chain/network-information/bridges): How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. +- [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals): How assets and messages move between Base and other chains, including withdrawal lifecycle, timing, and finality dependencies. - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog): A log of configuration changes to the Base networks. - [Differences between Ethereum and Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base) +- [Flashblocks](https://docs.base.org/base-chain/network-information/flashblocks): What Flashblocks are, how they work on Base today, and where they appear in confirmation, API, and node operation flows. - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets): Documentation for Testnet Faucets on the Base network. - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees): Documentation about network fees on Base. This page covers details of the two-component cost system involving L2 execution fees and L1 security fees, and offers insights on fee variations and cost-saving strategies. +- [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints): Base Mainnet and Base Sepolia chain IDs, public RPC URLs, WebSocket URLs, Flashblocks endpoints, and explorers. +- [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers): Hosted RPC providers for Base, including supported networks and provider-specific capabilities. +- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy): How Base orders, includes, and preconfirms transactions. +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality): Detailed information about transaction finality on Base. +- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle): Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, builds blocks and Flashblocks, and applies active ordering constraints. - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions): Guide to diagnosing and resolving transaction issues on Base. - [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers): Documentation for Node Providers for the Base network. Including details on their services, supported networks, and pricing plans. - [Node Performance](https://docs.base.org/base-chain/node-operators/performance-tuning): Hardware specifications, storage requirements, client recommendations, and configuration settings for running a performant Base node. - [Run a Node](https://docs.base.org/base-chain/node-operators/run-a-base-node): A tutorial that teaches how to set up and run a Base Node. - [Node Snapshots](https://docs.base.org/base-chain/node-operators/snapshots): Download and restore Base node snapshots to significantly reduce initial sync time for both archive and pruned nodes. - [Node Troubleshooting](https://docs.base.org/base-chain/node-operators/troubleshooting): Solutions to common issues when setting up and running a Base node, covering sync problems, networking, snapshots, and performance. -- [Base-Solana Bridge](https://docs.base.org/base-chain/quickstart/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet - [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base): Documentation about Base Mainnet and Base Testnet. This page covers network information for the Base network, including network names, descriptions, RPC endpoints, chain IDs, currency symbols, and block explorers. -- [Deploy on Base](https://docs.base.org/base-chain/quickstart/deploy-on-base) -- [Why Base?](https://docs.base.org/base-chain/quickstart/why-base) - [How to avoid getting your app flagged as malicious](https://docs.base.org/base-chain/security/avoid-malicious-flags): The Base bug bounty program and procedures for reporting vulnerabilities. - [Bug Bounty](https://docs.base.org/base-chain/security/bug-bounty) - [Reporting Vulnerabilities](https://docs.base.org/base-chain/security/report-vulnerability): The Base procedures for reporting vulnerabilities. @@ -362,39 +372,25 @@ const client = createPublicClient({ chain: base, transport: http() }) - [SignInWithBaseButton](https://docs.base.org/base-account/reference/ui-elements/sign-in-with-base-button): Pre-built React component for user authentication with Base Account ## AI Agents -- [Guides](https://docs.base.org/ai-agents/guides/index): Step-by-step guides for common things to do with Base MCP -- [Base MCP](https://docs.base.org/ai-agents/index): Give your AI assistant a wallet. Base MCP connects any AI to your Base Account. Check balances, send funds, swap tokens, sign messages, and pay with x402. -- [Overview](https://docs.base.org/ai-agents/plugins/index): How the Base MCP Skill works and how plugins extend it -- [Overview](https://docs.base.org/ai-agents/plugins/native/index): Plugins authored by the Base team that ship with the Base MCP skill -- [Execute Contract Calls](https://docs.base.org/ai-agents/guides/batch-calls): Batch multiple contract interactions into a single user approval using send_calls and Base MCP -- [Check Balance & Portfolio](https://docs.base.org/ai-agents/guides/check-balance): View your token balances, portfolio value, and wallet details using Base MCP -- [Send Tokens](https://docs.base.org/ai-agents/guides/send-tokens): Send native tokens or ERC-20 tokens to an address, ENS name, basename, or cb.id using Base MCP -- [Sign Messages](https://docs.base.org/ai-agents/guides/sign-messages): Sign EIP-712 typed data and plain messages with your Base Account using Base MCP -- [Swap Tokens](https://docs.base.org/ai-agents/guides/swap-tokens): Swap between tokens on supported mainnet chains using Base MCP -- [View Transaction History](https://docs.base.org/ai-agents/guides/view-history): Browse past transactions, filter by asset, and paginate through your onchain history using Base MCP -- [Make x402 Payments](https://docs.base.org/ai-agents/guides/x402-payments): Pay for x402-enabled API requests with USDC using Base MCP -- [Custom Plugins](https://docs.base.org/ai-agents/plugins/custom-plugins): Build your own plugin that produces unsigned calldata and executes through Base MCP's send_calls -- [Aerodrome](https://docs.base.org/ai-agents/plugins/native/aerodrome): Token swaps and basic-pool liquidity on Aerodrome (the leading DEX on Base) via sugar-sdk + Base MCP. CLI-only. -- [Avantis](https://docs.base.org/ai-agents/plugins/native/avantis): Perpetual futures on Base via the Avantis tx-builder. Reads work on every surface; trade-building uses a CLI harness or the Avantis web UI. -- [Bankr](https://docs.base.org/ai-agents/plugins/native/bankr): Discover the latest token launches on Base via the Bankr API and buy them with Base MCP's swap tool. -- [Moonwell](https://docs.base.org/ai-agents/plugins/native/moonwell): Compound v2 lending on Base and Optimism via the Moonwell HTTP API -- [Morpho](https://docs.base.org/ai-agents/plugins/native/morpho): Lending and vaults on Base via Morpho CLI, with Morpho MCP fallback for chat-only surfaces. -- [Uniswap](https://docs.base.org/ai-agents/plugins/native/uniswap): Token swaps and V2/V3/V4 LP positions on Base via the Uniswap trade and liquidity APIs -- [Virtuals](https://docs.base.org/ai-agents/plugins/native/virtuals): Create and operate Virtuals (ACP) AI agents — payment cards, email identities, agent management — signed in via Base MCP. -- [Get Started with Base MCP](https://docs.base.org/ai-agents/quickstart): Connect Base MCP to your agent in under 5 minutes -- [Aerodrome Plugin](https://docs.base.org/ai-agents/skills/plugins/aerodrome): Skill plugin reference for building unsigned Aerodrome calldata with the Sugar SDK CLI and submitting it through Base MCP send_calls. -- [Avantis Plugin](https://docs.base.org/ai-agents/skills/plugins/avantis): Skill plugin reference for reading Avantis market data and positions on any surface, and building perpetual-futures transactions from CLI harnesses (with an Avantis UI fallback on chat-only surfaces). Aligned with the canonical Avantis-Labs/avantis-trading-skill spec. -- [Bankr Plugin](https://docs.base.org/ai-agents/skills/plugins/bankr): Skill plugin reference for discovering the latest token launches on Base via the Bankr API and buying them with Base MCP's swap tool. -- [Moonwell Plugin](https://docs.base.org/ai-agents/skills/plugins/moonwell): Skill plugin reference for lending on Moonwell through Base MCP. -- [Morpho Plugin](https://docs.base.org/ai-agents/skills/plugins/morpho): Skill plugin reference for lending on Morpho with Morpho CLI when available, or Morpho MCP on chat-only surfaces. -- [Uniswap Plugin](https://docs.base.org/ai-agents/skills/plugins/uniswap): Skill plugin reference for swapping and LPing on Uniswap through Base MCP. -- [Virtuals Plugin](https://docs.base.org/ai-agents/skills/plugins/virtuals): Skill plugin reference for creating and operating Virtuals (ACP) AI agents through the Virtuals MCP, signed in via Base MCP. -- [Approval Mode](https://docs.base.org/ai-agents/skills/references/approval-mode): Skill reference for how Base MCP returns approval URLs and request IDs for every write call. -- [Batched Contract Calls](https://docs.base.org/ai-agents/skills/references/batch-calls): Skill reference for Base MCP's EIP-5792 batched contract calls. -- [Custom Plugins and the web_request Allowlist](https://docs.base.org/ai-agents/skills/references/custom-plugins): Skill reference for how Base MCP routes plugin HTTP calls and which surfaces are allowlisted. -- [Installing Base MCP](https://docs.base.org/ai-agents/skills/references/install): Skill reference for installing the Base MCP server in Claude, ChatGPT, Cursor, Codex, and other surfaces. -- [Tone](https://docs.base.org/ai-agents/skills/references/tone): Skill reference for the language and tone rules an agent should follow when using Base MCP. -- [Base MCP Skill](https://docs.base.org/ai-agents/skills/SKILL): Base MCP — gives your AI assistant access to a Base Account via the Base MCP server (mcp.base.org). Wallet, portfolio, sending, swapping, signing, x402 payments, batched contract calls, and transaction history across supported chains. +- [AI Agents on Base](https://docs.base.org/ai-agents/index): Build AI agents that trade, earn, and transact autonomously on Base +- [Overview](https://docs.base.org/ai-agents/skills/index): Installable agent capabilities for wallets, payments, and trading on Base +- [Accepting Payments (x402)](https://docs.base.org/ai-agents/payments/accepting-payments): Gate your agent's endpoints with x402 to charge other agents per request +- [Pay for APIs & Services (x402)](https://docs.base.org/ai-agents/payments/pay-for-services-with-x402): How x402 works, how your agent makes payments, and which networks and tokens are supported +- [Get Started with Payments](https://docs.base.org/ai-agents/quickstart/payments): Build an agent that makes and accepts x402 payments on Base in under 10 minutes +- [Get Started with Trading](https://docs.base.org/ai-agents/quickstart/trading): Build an agent that fetches live market data and executes token swaps on Base +- [Builder Codes for Agents](https://docs.base.org/ai-agents/setup/agent-builder-codes): Register your agent in Base Dashboard and append a Builder Code to every transaction to measure onchain activity. +- [Agent Registration & Identity](https://docs.base.org/ai-agents/setup/agent-registration): Register your agent's identity onchain, get a Basename, and authenticate with services using Sign In With Agent (SIWA) +- [Wallet Setup for Agents](https://docs.base.org/ai-agents/setup/wallet-setup): Give your AI agent a dedicated wallet on Base to hold funds, send payments, sign messages, and interact with onchain protocols securely. +- [CDP Payment Skills](https://docs.base.org/ai-agents/skills/payments/cdp-payment-skills): Skills for discovering, paying for, and monetizing x402 API services via the CDP Agentic Wallet +- [Sponge x402](https://docs.base.org/ai-agents/skills/payments/sponge-x402): Skill for discovering and paying for x402 services automatically using Sponge Wallet's built-in proxy +- [Alchemy Agentic Gateway](https://docs.base.org/ai-agents/skills/trading/alchemy-agentic-gateway): Skill for accessing Alchemy's blockchain APIs — token balances, NFTs, portfolio data, and prices — via x402 SIWE auth +- [CoinGecko](https://docs.base.org/ai-agents/skills/trading/coingecko): Skill for fetching live crypto price feeds, market cap, and OHLCV data via x402 — no API key required +- [Swap Execution](https://docs.base.org/ai-agents/skills/trading/swap-execution): Skills for executing token swaps on Base using wallet-native tools across Bankr, CDP Agentic Wallet, and Sponge +- [Bankr](https://docs.base.org/ai-agents/skills/wallets/bankr): Skill that gives your AI agent a cross-chain wallet with built-in swaps, gas sponsorship, and token launching +- [CDP Agentic Wallet](https://docs.base.org/ai-agents/skills/wallets/cdp-agentic-wallet): Skill that gives your AI agent an email-authenticated wallet on Base with x402 payments built in +- [Sponge Wallet](https://docs.base.org/ai-agents/skills/wallets/sponge-wallet): Skill that gives your AI agent a multi-chain wallet with native x402 payments, swaps, bridges, and banking +- [Fetching Market Data](https://docs.base.org/ai-agents/trading/data-fetching): Use x402 to access live market data from CoinGecko, Alchemy, and other sources — no API key management required +- [Trade Execution on Base](https://docs.base.org/ai-agents/trading/trade-execution): Base-specific patterns, fee calibration, and onchain signals for trading agents ## Apps - [Build an app on Base](https://docs.base.org/apps/index): A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. @@ -403,8 +399,9 @@ const client = createPublicClient({ chain: base, transport: http() }) - [Base Builder Codes](https://docs.base.org/apps/builder-codes/builder-codes): Attribute onchain activity to your app, wallet or agent with Builder Codes. - [Builder Codes for Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers): Implement the dataSuffix capability in your wallet to enable Builder Code attribution. - [Rewards](https://docs.base.org/apps/growth/rewards): Earn financial incentives for building high-quality Apps that drive user engagement and onchain transactions -- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app): Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods, and registering on Base.dev. +- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app): Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods and registering in Base Dashboard. - [Build an app on Base](https://docs.base.org/apps/quickstart/build-app): A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. +- [Deploy on Base](https://docs.base.org/apps/quickstart/deploy-on-base): Deploy a smart contract to Base Sepolia with Foundry. - [Add notifications](https://docs.base.org/apps/technical-guides/base-notifications): Send in-app notifications to your app's users through the Base Dashboard REST API. ## Optional diff --git a/docs/llms.txt b/docs/llms.txt index 6b1102cde..38cacee90 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -20,7 +20,8 @@ - [Resources for AI agents](https://docs.base.org/get-started/resources-for-ai-agents): Base-first resources for AI agents, including docs indexes, MCP access, skills, and recommended starting points ## Base Chain -- [Flashblocks Overview](https://docs.base.org/base-chain/flashblocks/overview): Understand the sequencer architecture, block building algorithm, and integration options for Flashblocks on Base. +- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +- [Base Change Proposals (BCPs)](https://docs.base.org/base-chain/specs/bcps/index): Index of Base Chain Proposals (BCPs) — design documents describing proposed changes to the Base Chain protocol. - [Overview](https://docs.base.org/base-chain/specs/overview): Technical specification of the Base Chain protocol, covering block derivation, execution, transaction propagation, and state verification. - [Specification](https://docs.base.org/base-chain/specs/protocol/consensus/index): Specification of the Base rollup node, describing its components and role in L2 block derivation and consensus. - [L2 Execution Engine](https://docs.base.org/base-chain/specs/protocol/execution/index): Specification of the L2 execution engine, detailing EIP-1559 parameters, fee vaults, Engine API usage, and execution layer behavior. @@ -57,11 +58,11 @@ - [eth_getTransactionByBlockHashAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex): Returns a transaction by block hash and index position. - [eth_getTransactionByBlockNumberAndIndex](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex): Returns a transaction by block number and index position. - [eth_getTransactionByHash](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash): Returns a transaction by its hash. -- [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount): Returns the number of transactions sent from an address (the nonce). Use pending to get the pre-confirmed nonce. -- [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt): Returns the receipt for a mined transaction. Receipts are only available after a transaction is included in a block. +- [eth_getTransactionCount](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount): Returns the number of transactions sent from an address (the nonce). Use pending on a Flashblocks endpoint to get the pre-confirmed nonce. +- [eth_getTransactionReceipt](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt): Returns the receipt for a transaction. Flashblocks endpoints can return preconfirmed receipt data from cache before the block seals. - [eth_maxPriorityFeePerGas](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas): Returns the suggested EIP-1559 priority fee (tip) per gas. -- [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction): Submits a pre-signed transaction to the network. All Base endpoints are Flashblocks-enabled, providing 200ms pre-confirmation. -- [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe): Creates a real-time WebSocket subscription for new blocks, logs, and pending transactions. +- [eth_sendRawTransaction](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction): Submits a pre-signed transaction to the network. Use a Flashblocks preconf endpoint when you need faster pre-confirmation signals. +- [eth_subscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe): Creates a real-time WebSocket subscription. Flashblocks endpoints add three extra subscription types and emit newHeads every ~200ms. - [eth_syncing](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing): Returns the sync status of the node. - [eth_unsubscribe](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe): Cancels an active WebSocket subscription. - [net_version](https://docs.base.org/base-chain/api-reference/ethereum-json-rpc-api/net_version): Returns the current network ID as a string. @@ -72,28 +73,37 @@ - [newFlashblocks](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblocks): Subscribe to receive full Flashblock payload stream as each pre-confirmed block is built. Only available on Flashblocks WebSocket endpoints. - [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions): Subscribe to receive each transaction as it is pre-confirmed into a Flashblock. Only available on Flashblocks WebSocket endpoints. - [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs): Subscribe to logs from pre-confirmed transactions matching an optional filter. Only available on Flashblocks WebSocket endpoints. -- [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): Complete reference for all JSON-RPC and Flashblocks methods available on Base nodes. -- [App Integration](https://docs.base.org/base-chain/flashblocks/app-integration): Integrate Flashblocks into your app for 200ms transaction confirmations using RPC APIs and popular libraries like Ethers, Wagmi and Viem. -- [Flashblocks Architecture](https://docs.base.org/base-chain/flashblocks/architecture): Understand the sequencer architecture and infrastructure components that power Flashblocks on Base. -- [Flashblocks FAQ](https://docs.base.org/base-chain/flashblocks/faq): Frequently asked questions about Flashblocks, including block building, WebSocket data, RPC usage, and node setup. +- [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): How to choose between Standard RPC, Flashblocks RPC, and API method families on Base. +- [Asset Security Checklist](https://docs.base.org/base-chain/asset-issuance/asset-security-checklist): TODO page for asset security guidance on Base. +- [Bridged and Native Assets](https://docs.base.org/base-chain/asset-issuance/bridged-and-native-assets): TODO page for canonical, bridged, and native asset representations on Base. +- [Issuing on Base](https://docs.base.org/base-chain/asset-issuance/issuing-on-base): TODO page for asset issuance guidance on Base. +- [Liquidity and Venues](https://docs.base.org/base-chain/asset-issuance/liquidity-and-venues): TODO page for liquidity and venue considerations for assets on Base. +- [Token Standards](https://docs.base.org/base-chain/asset-issuance/token-standards): TODO page for recommended and supported token standards on Base. - [Contract Addresses](https://docs.base.org/base-chain/network-information/base-contracts): A comprehensive list of L2 contract addresses for Base Mainnet and Base Testnet, including links to their respective blockchain explorers. +- [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences): Base-specific execution behavior to account for while building EVM-compatible applications. +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet - [Block Building](https://docs.base.org/base-chain/network-information/block-building): This page outlines how Base blocks are built. -- [Bridges](https://docs.base.org/base-chain/network-information/bridges): Documentation for bridging assets to Base. This page covers how to bridge assets between Ethereum, Solana, Bitcoin, and Base. +- [Bridging](https://docs.base.org/base-chain/network-information/bridges): How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. +- [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals): How assets and messages move between Base and other chains, including withdrawal lifecycle, timing, and finality dependencies. - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog): A log of configuration changes to the Base networks. - [Differences between Ethereum and Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base) +- [Flashblocks](https://docs.base.org/base-chain/network-information/flashblocks): What Flashblocks are, how they work on Base today, and where they appear in confirmation, API, and node operation flows. - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets): Documentation for Testnet Faucets on the Base network. - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees): Documentation about network fees on Base. This page covers details of the two-component cost system involving L2 execution fees and L1 security fees, and offers insights on fee variations and cost-saving strategies. +- [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints): Base Mainnet and Base Sepolia chain IDs, public RPC URLs, WebSocket URLs, Flashblocks endpoints, and explorers. +- [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers): Hosted RPC providers for Base, including supported networks and provider-specific capabilities. +- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy): How Base orders, includes, and preconfirms transactions. +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality): Detailed information about transaction finality on Base. +- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle): Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, builds blocks and Flashblocks, and applies active ordering constraints. - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions): Guide to diagnosing and resolving transaction issues on Base. - [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers): Documentation for Node Providers for the Base network. Including details on their services, supported networks, and pricing plans. - [Node Performance](https://docs.base.org/base-chain/node-operators/performance-tuning): Hardware specifications, storage requirements, client recommendations, and configuration settings for running a performant Base node. - [Run a Node](https://docs.base.org/base-chain/node-operators/run-a-base-node): A tutorial that teaches how to set up and run a Base Node. - [Node Snapshots](https://docs.base.org/base-chain/node-operators/snapshots): Download and restore Base node snapshots to significantly reduce initial sync time for both archive and pruned nodes. - [Node Troubleshooting](https://docs.base.org/base-chain/node-operators/troubleshooting): Solutions to common issues when setting up and running a Base node, covering sync problems, networking, snapshots, and performance. -- [Base-Solana Bridge](https://docs.base.org/base-chain/quickstart/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet - [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base): Documentation about Base Mainnet and Base Testnet. This page covers network information for the Base network, including network names, descriptions, RPC endpoints, chain IDs, currency symbols, and block explorers. -- [Deploy on Base](https://docs.base.org/base-chain/quickstart/deploy-on-base) -- [Why Base?](https://docs.base.org/base-chain/quickstart/why-base) - [How to avoid getting your app flagged as malicious](https://docs.base.org/base-chain/security/avoid-malicious-flags): The Base bug bounty program and procedures for reporting vulnerabilities. - [Bug Bounty](https://docs.base.org/base-chain/security/bug-bounty) - [Reporting Vulnerabilities](https://docs.base.org/base-chain/security/report-vulnerability): The Base procedures for reporting vulnerabilities. @@ -274,39 +284,25 @@ - [SignInWithBaseButton](https://docs.base.org/base-account/reference/ui-elements/sign-in-with-base-button): Pre-built React component for user authentication with Base Account ## AI Agents -- [Guides](https://docs.base.org/ai-agents/guides/index): Step-by-step guides for common things to do with Base MCP -- [Base MCP](https://docs.base.org/ai-agents/index): Give your AI assistant a wallet. Base MCP connects any AI to your Base Account. Check balances, send funds, swap tokens, sign messages, and pay with x402. -- [Overview](https://docs.base.org/ai-agents/plugins/index): How the Base MCP Skill works and how plugins extend it -- [Overview](https://docs.base.org/ai-agents/plugins/native/index): Plugins authored by the Base team that ship with the Base MCP skill -- [Execute Contract Calls](https://docs.base.org/ai-agents/guides/batch-calls): Batch multiple contract interactions into a single user approval using send_calls and Base MCP -- [Check Balance & Portfolio](https://docs.base.org/ai-agents/guides/check-balance): View your token balances, portfolio value, and wallet details using Base MCP -- [Send Tokens](https://docs.base.org/ai-agents/guides/send-tokens): Send native tokens or ERC-20 tokens to an address, ENS name, basename, or cb.id using Base MCP -- [Sign Messages](https://docs.base.org/ai-agents/guides/sign-messages): Sign EIP-712 typed data and plain messages with your Base Account using Base MCP -- [Swap Tokens](https://docs.base.org/ai-agents/guides/swap-tokens): Swap between tokens on supported mainnet chains using Base MCP -- [View Transaction History](https://docs.base.org/ai-agents/guides/view-history): Browse past transactions, filter by asset, and paginate through your onchain history using Base MCP -- [Make x402 Payments](https://docs.base.org/ai-agents/guides/x402-payments): Pay for x402-enabled API requests with USDC using Base MCP -- [Custom Plugins](https://docs.base.org/ai-agents/plugins/custom-plugins): Build your own plugin that produces unsigned calldata and executes through Base MCP's send_calls -- [Aerodrome](https://docs.base.org/ai-agents/plugins/native/aerodrome): Token swaps and basic-pool liquidity on Aerodrome (the leading DEX on Base) via sugar-sdk + Base MCP. CLI-only. -- [Avantis](https://docs.base.org/ai-agents/plugins/native/avantis): Perpetual futures on Base via the Avantis tx-builder. Reads work on every surface; trade-building uses a CLI harness or the Avantis web UI. -- [Bankr](https://docs.base.org/ai-agents/plugins/native/bankr): Discover the latest token launches on Base via the Bankr API and buy them with Base MCP's swap tool. -- [Moonwell](https://docs.base.org/ai-agents/plugins/native/moonwell): Compound v2 lending on Base and Optimism via the Moonwell HTTP API -- [Morpho](https://docs.base.org/ai-agents/plugins/native/morpho): Lending and vaults on Base via Morpho CLI, with Morpho MCP fallback for chat-only surfaces. -- [Uniswap](https://docs.base.org/ai-agents/plugins/native/uniswap): Token swaps and V2/V3/V4 LP positions on Base via the Uniswap trade and liquidity APIs -- [Virtuals](https://docs.base.org/ai-agents/plugins/native/virtuals): Create and operate Virtuals (ACP) AI agents — payment cards, email identities, agent management — signed in via Base MCP. -- [Get Started with Base MCP](https://docs.base.org/ai-agents/quickstart): Connect Base MCP to your agent in under 5 minutes -- [Aerodrome Plugin](https://docs.base.org/ai-agents/skills/plugins/aerodrome): Skill plugin reference for building unsigned Aerodrome calldata with the Sugar SDK CLI and submitting it through Base MCP send_calls. -- [Avantis Plugin](https://docs.base.org/ai-agents/skills/plugins/avantis): Skill plugin reference for reading Avantis market data and positions on any surface, and building perpetual-futures transactions from CLI harnesses (with an Avantis UI fallback on chat-only surfaces). Aligned with the canonical Avantis-Labs/avantis-trading-skill spec. -- [Bankr Plugin](https://docs.base.org/ai-agents/skills/plugins/bankr): Skill plugin reference for discovering the latest token launches on Base via the Bankr API and buying them with Base MCP's swap tool. -- [Moonwell Plugin](https://docs.base.org/ai-agents/skills/plugins/moonwell): Skill plugin reference for lending on Moonwell through Base MCP. -- [Morpho Plugin](https://docs.base.org/ai-agents/skills/plugins/morpho): Skill plugin reference for lending on Morpho with Morpho CLI when available, or Morpho MCP on chat-only surfaces. -- [Uniswap Plugin](https://docs.base.org/ai-agents/skills/plugins/uniswap): Skill plugin reference for swapping and LPing on Uniswap through Base MCP. -- [Virtuals Plugin](https://docs.base.org/ai-agents/skills/plugins/virtuals): Skill plugin reference for creating and operating Virtuals (ACP) AI agents through the Virtuals MCP, signed in via Base MCP. -- [Approval Mode](https://docs.base.org/ai-agents/skills/references/approval-mode): Skill reference for how Base MCP returns approval URLs and request IDs for every write call. -- [Batched Contract Calls](https://docs.base.org/ai-agents/skills/references/batch-calls): Skill reference for Base MCP's EIP-5792 batched contract calls. -- [Custom Plugins and the web_request Allowlist](https://docs.base.org/ai-agents/skills/references/custom-plugins): Skill reference for how Base MCP routes plugin HTTP calls and which surfaces are allowlisted. -- [Installing Base MCP](https://docs.base.org/ai-agents/skills/references/install): Skill reference for installing the Base MCP server in Claude, ChatGPT, Cursor, Codex, and other surfaces. -- [Tone](https://docs.base.org/ai-agents/skills/references/tone): Skill reference for the language and tone rules an agent should follow when using Base MCP. -- [Base MCP Skill](https://docs.base.org/ai-agents/skills/SKILL): Base MCP — gives your AI assistant access to a Base Account via the Base MCP server (mcp.base.org). Wallet, portfolio, sending, swapping, signing, x402 payments, batched contract calls, and transaction history across supported chains. +- [AI Agents on Base](https://docs.base.org/ai-agents/index): Build AI agents that trade, earn, and transact autonomously on Base +- [Overview](https://docs.base.org/ai-agents/skills/index): Installable agent capabilities for wallets, payments, and trading on Base +- [Accepting Payments (x402)](https://docs.base.org/ai-agents/payments/accepting-payments): Gate your agent's endpoints with x402 to charge other agents per request +- [Pay for APIs & Services (x402)](https://docs.base.org/ai-agents/payments/pay-for-services-with-x402): How x402 works, how your agent makes payments, and which networks and tokens are supported +- [Get Started with Payments](https://docs.base.org/ai-agents/quickstart/payments): Build an agent that makes and accepts x402 payments on Base in under 10 minutes +- [Get Started with Trading](https://docs.base.org/ai-agents/quickstart/trading): Build an agent that fetches live market data and executes token swaps on Base +- [Builder Codes for Agents](https://docs.base.org/ai-agents/setup/agent-builder-codes): Register your agent in Base Dashboard and append a Builder Code to every transaction to measure onchain activity. +- [Agent Registration & Identity](https://docs.base.org/ai-agents/setup/agent-registration): Register your agent's identity onchain, get a Basename, and authenticate with services using Sign In With Agent (SIWA) +- [Wallet Setup for Agents](https://docs.base.org/ai-agents/setup/wallet-setup): Give your AI agent a dedicated wallet on Base to hold funds, send payments, sign messages, and interact with onchain protocols securely. +- [CDP Payment Skills](https://docs.base.org/ai-agents/skills/payments/cdp-payment-skills): Skills for discovering, paying for, and monetizing x402 API services via the CDP Agentic Wallet +- [Sponge x402](https://docs.base.org/ai-agents/skills/payments/sponge-x402): Skill for discovering and paying for x402 services automatically using Sponge Wallet's built-in proxy +- [Alchemy Agentic Gateway](https://docs.base.org/ai-agents/skills/trading/alchemy-agentic-gateway): Skill for accessing Alchemy's blockchain APIs — token balances, NFTs, portfolio data, and prices — via x402 SIWE auth +- [CoinGecko](https://docs.base.org/ai-agents/skills/trading/coingecko): Skill for fetching live crypto price feeds, market cap, and OHLCV data via x402 — no API key required +- [Swap Execution](https://docs.base.org/ai-agents/skills/trading/swap-execution): Skills for executing token swaps on Base using wallet-native tools across Bankr, CDP Agentic Wallet, and Sponge +- [Bankr](https://docs.base.org/ai-agents/skills/wallets/bankr): Skill that gives your AI agent a cross-chain wallet with built-in swaps, gas sponsorship, and token launching +- [CDP Agentic Wallet](https://docs.base.org/ai-agents/skills/wallets/cdp-agentic-wallet): Skill that gives your AI agent an email-authenticated wallet on Base with x402 payments built in +- [Sponge Wallet](https://docs.base.org/ai-agents/skills/wallets/sponge-wallet): Skill that gives your AI agent a multi-chain wallet with native x402 payments, swaps, bridges, and banking +- [Fetching Market Data](https://docs.base.org/ai-agents/trading/data-fetching): Use x402 to access live market data from CoinGecko, Alchemy, and other sources — no API key management required +- [Trade Execution on Base](https://docs.base.org/ai-agents/trading/trade-execution): Base-specific patterns, fee calibration, and onchain signals for trading agents ## Apps - [Build an app on Base](https://docs.base.org/apps/index): A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. @@ -315,8 +311,9 @@ - [Base Builder Codes](https://docs.base.org/apps/builder-codes/builder-codes): Attribute onchain activity to your app, wallet or agent with Builder Codes. - [Builder Codes for Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers): Implement the dataSuffix capability in your wallet to enable Builder Code attribution. - [Rewards](https://docs.base.org/apps/growth/rewards): Earn financial incentives for building high-quality Apps that drive user engagement and onchain transactions -- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app): Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods, and registering on Base.dev. +- [Migrate to a Standard Web App](https://docs.base.org/apps/guides/migrate-to-standard-web-app): Migrate your Farcaster mini-app to work in the Base App. Covers replacing deprecated SDK methods and registering in Base Dashboard. - [Build an app on Base](https://docs.base.org/apps/quickstart/build-app): A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. +- [Deploy on Base](https://docs.base.org/apps/quickstart/deploy-on-base): Deploy a smart contract to Base Sepolia with Foundry. - [Add notifications](https://docs.base.org/apps/technical-guides/base-notifications): Send in-app notifications to your app's users through the Base Dashboard REST API. ## Optional diff --git a/docs/snippets/base-networks.mdx b/docs/snippets/base-networks.mdx new file mode 100644 index 000000000..8ca901d6c --- /dev/null +++ b/docs/snippets/base-networks.mdx @@ -0,0 +1,8 @@ +| Network | Chain ID | Standard RPC | Standard WSS | Flashblocks RPC | Flashblocks WSS | Explorer | +| :--- | :--- | :--- | :--- | :--- | :--- | :--- | +| Base Mainnet | `8453` | `https://mainnet.base.org` | `wss://mainnet.base.org` | `https://mainnet-preconf.base.org` | `wss://mainnet-preconf.base.org` | [BaseScan](https://basescan.org) | +| Base Sepolia | `84532` | `https://sepolia.base.org` | `wss://sepolia.base.org` | `https://sepolia-preconf.base.org` | `wss://sepolia-preconf.base.org` | [BaseScan Sepolia](https://sepolia.basescan.org) | + + +Public RPC and Flashblocks RPC endpoints are rate-limited and are not suitable for production traffic. For production systems, use a [node provider](/base-chain/node-operators/node-providers) or [run your own Base node](/base-chain/node-operators/run-a-base-node). For more explorer options, see the [block explorer catalog](/get-started/block-explorers). + From 5237d4a04bed000b86d3ab4f0dbc4c7e894b4090 Mon Sep 17 00:00:00 2001 From: eric-brown Date: Thu, 21 May 2026 17:56:58 -0400 Subject: [PATCH 2/3] Refine Base Chain docs IA --- docs/agents.md | 8 +- .../debug-api/debug_traceBlockByHash.mdx | 8 +- .../debug-api/debug_traceBlockByNumber.mdx | 8 +- .../debug-api/debug_traceTransaction.mdx | 8 +- .../ethereum-json-rpc-api/eth_blockNumber.mdx | 6 +- .../ethereum-json-rpc-api/eth_chainId.mdx | 6 +- .../ethereum-json-rpc-api/eth_estimateGas.mdx | 6 +- .../ethereum-json-rpc-api/eth_feeHistory.mdx | 6 +- .../ethereum-json-rpc-api/eth_gasPrice.mdx | 6 +- .../ethereum-json-rpc-api/eth_getBalance.mdx | 6 +- .../eth_getBlockByHash.mdx | 6 +- .../eth_getBlockByNumber.mdx | 6 +- .../eth_getBlockReceipts.mdx | 6 +- .../eth_getBlockTransactionCountByHash.mdx | 6 +- .../eth_getBlockTransactionCountByNumber.mdx | 6 +- .../ethereum-json-rpc-api/eth_getCode.mdx | 6 +- .../ethereum-json-rpc-api/eth_getLogs.mdx | 6 +- .../eth_getStorageAt.mdx | 6 +- .../eth_getTransactionByBlockHashAndIndex.mdx | 8 +- ...th_getTransactionByBlockNumberAndIndex.mdx | 8 +- .../eth_getTransactionByHash.mdx | 8 +- .../eth_getTransactionCount.mdx | 6 +- .../eth_getTransactionReceipt.mdx | 8 +- .../eth_maxPriorityFeePerGas.mdx | 6 +- .../ethereum-json-rpc-api/eth_subscribe.mdx | 6 +- .../ethereum-json-rpc-api/eth_syncing.mdx | 6 +- .../ethereum-json-rpc-api/eth_unsubscribe.mdx | 6 +- .../ethereum-json-rpc-api/net_version.mdx | 6 +- .../web3_clientVersion.mdx | 6 +- .../base_transactionStatus.mdx | 6 +- .../newFlashblockTransactions.mdx | 55 +-------- .../flashblocks-api/newFlashblocks.mdx | 14 ++- .../flashblocks-api/pendingLogs.mdx | 6 +- .../base-chain/api-reference/rpc-overview.mdx | 2 +- .../asset-security-checklist.mdx | 13 ++ .../bridged-and-native-assets.mdx | 13 ++ .../asset-issuance/issuing-on-base.mdx | 15 +++ .../asset-issuance/liquidity-and-venues.mdx | 13 ++ .../asset-issuance/token-standards.mdx | 13 ++ docs/base-chain/llms-full.txt | 42 +++---- docs/base-chain/llms.txt | 28 ++--- .../base-execution-differences.mdx | 20 +++ .../network-information/block-building.mdx | 71 ----------- ...idges.mdx => bridging-and-withdrawals.mdx} | 6 +- .../configuration-changelog.mdx | 18 +-- .../diffs-ethereum-base.mdx | 18 --- .../networks-and-endpoints.mdx | 2 +- .../rpc-providers.mdx} | 9 +- .../network-information/sequencing-policy.mdx | 70 ----------- .../throughput-and-limits.mdx | 50 ++++++-- .../transaction-lifecycle.mdx | 71 ----------- .../transaction-ordering.mdx | 116 ++++++++++++++++++ .../troubleshooting-transactions.mdx | 2 +- .../node-operators/run-a-base-node.mdx | 6 +- docs/base-chain/overview.mdx | 38 ++---- .../quickstart/connecting-to-base.mdx | 2 +- docs/docs.json | 80 ++++++++---- docs/get-started/base.mdx | 2 +- docs/llms-full.txt | 27 ++-- docs/llms.txt | 19 +-- docs/snippets/base-networks.mdx | 2 +- scripts/agents.js | 2 + 62 files changed, 513 insertions(+), 528 deletions(-) create mode 100644 docs/base-chain/asset-issuance/asset-security-checklist.mdx create mode 100644 docs/base-chain/asset-issuance/bridged-and-native-assets.mdx create mode 100644 docs/base-chain/asset-issuance/issuing-on-base.mdx create mode 100644 docs/base-chain/asset-issuance/liquidity-and-venues.mdx create mode 100644 docs/base-chain/asset-issuance/token-standards.mdx create mode 100644 docs/base-chain/network-information/base-execution-differences.mdx delete mode 100644 docs/base-chain/network-information/block-building.mdx rename docs/base-chain/network-information/{bridges.mdx => bridging-and-withdrawals.mdx} (95%) delete mode 100644 docs/base-chain/network-information/diffs-ethereum-base.mdx rename docs/base-chain/{node-operators/node-providers.mdx => network-information/rpc-providers.mdx} (93%) delete mode 100644 docs/base-chain/network-information/sequencing-policy.mdx delete mode 100644 docs/base-chain/network-information/transaction-lifecycle.mdx create mode 100644 docs/base-chain/network-information/transaction-ordering.mdx diff --git a/docs/agents.md b/docs/agents.md index 4449425a1..a5c5b5440 100644 --- a/docs/agents.md +++ b/docs/agents.md @@ -11,7 +11,7 @@ description: Look up Base documentation with a compact directory-grouped index b - [AI Agents](./ai-agents/llms.txt) — Give your AI assistant a wallet. Base MCP connects any AI to your Base Account — check balances, send funds, swap tokens, sign messages, and pay x402 APIs. - [Apps](./apps/llms.txt) — A step-by-step guide to building a Next.js tally app on Base using wagmi and viem, with wallet connection, contract reads and writes, and batch transaction support. - [Base Account](./base-account/llms.txt) -- [Base Chain](./base-chain/llms.txt) — Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +- [Base Chain](./base-chain/llms.txt) — Start here for Base Chain docs, including concepts, network reference, node operation, APIs, and protocol specifications. - [Get Started](./get-started/llms.txt) - [Static](./static/llms.txt) @@ -50,7 +50,6 @@ npx skills add base/base-skills |apps/growth:rewards |apps/guides:migrate-to-standard-web-app |apps/quickstart:build-app,deploy-on-base -|apps/resources:design-resources,templates |apps/technical-guides:base-notifications |base-account/basenames:basename-transfer,basenames-faq |base-account/contribute:contribute-to-base-account-docs,security-and-bug-bounty @@ -78,9 +77,8 @@ npx skills add base/base-skills |base-chain/api-reference/debug-api:debug_traceBlockByHash,debug_traceBlockByNumber,debug_traceTransaction |base-chain/api-reference/ethereum-json-rpc-api:eth_blockNumber,eth_call,eth_chainId,eth_estimateGas,eth_feeHistory,eth_gasPrice,eth_getBalance,eth_getBlockByHash,eth_getBlockByNumber,eth_getBlockReceipts,eth_getBlockTransactionCountByHash,eth_getBlockTransactionCountByNumber,eth_getCode,eth_getLogs,eth_getStorageAt,eth_getTransactionByBlockHashAndIndex,eth_getTransactionByBlockNumberAndIndex,eth_getTransactionByHash,eth_getTransactionCount,eth_getTransactionReceipt,eth_maxPriorityFeePerGas,eth_sendRawTransaction,eth_subscribe,eth_syncing,eth_unsubscribe,net_version,web3_clientVersion |base-chain/api-reference/flashblocks-api:base_transactionStatus,eth_simulateV1,flashblocks-api-overview,newFlashblockTransactions,newFlashblocks,pendingLogs -|base-chain/asset-issuance:asset-security-checklist,bridged-and-native-assets,issuing-on-base,liquidity-and-venues,token-standards -|base-chain/network-information:base-contracts,base-execution-differences,base-solana-bridge,block-building,bridges,bridging-and-withdrawals,configuration-changelog,diffs-ethereum-base,flashblocks,network-faucets,network-fees,networks-and-endpoints,rpc-providers,sequencing-policy,throughput-and-limits,transaction-finality,transaction-lifecycle,transaction-ordering,troubleshooting-transactions -|base-chain/node-operators:base-v1-upgrade,node-providers,performance-tuning,run-a-base-node,snapshots,troubleshooting +|base-chain/network-information:base-contracts,base-execution-differences,base-solana-bridge,bridging-and-withdrawals,configuration-changelog,network-faucets,network-fees,networks-and-endpoints,rpc-providers,throughput-and-limits,transaction-finality,transaction-ordering,troubleshooting-transactions +|base-chain/node-operators:base-v1-upgrade,performance-tuning,run-a-base-node,snapshots,troubleshooting |base-chain/quickstart:connecting-to-base |base-chain/security:avoid-malicious-flags,bug-bounty,report-vulnerability,security-council |base-chain/specs:overview diff --git a/docs/base-chain/api-reference/debug-api/debug_traceBlockByHash.mdx b/docs/base-chain/api-reference/debug-api/debug_traceBlockByHash.mdx index 97af3a44a..79623a9bd 100644 --- a/docs/base-chain/api-reference/debug-api/debug_traceBlockByHash.mdx +++ b/docs/base-chain/api-reference/debug-api/debug_traceBlockByHash.mdx @@ -7,7 +7,7 @@ description: 'Returns EVM execution traces for all transactions in a block by bl Replays all transactions in a block identified by its hash and returns an execution trace for each. -Debug methods replay all transactions in the block and are computationally expensive. Availability varies by [node provider](/base-chain/node-operators/node-providers). +Debug methods replay all transactions in the block and are computationally expensive. Availability varies by [RPC provider](/base-chain/network-information/rpc-providers). ## Parameters @@ -33,7 +33,7 @@ Debug methods replay all transactions in the block and are computationally expen ## Example - + ```json Request { "jsonrpc": "2.0", @@ -45,7 +45,9 @@ Debug methods replay all transactions in the block and are computationally expen "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -68,4 +70,4 @@ Debug methods replay all transactions in the block and are computationally expen ] } ``` - + diff --git a/docs/base-chain/api-reference/debug-api/debug_traceBlockByNumber.mdx b/docs/base-chain/api-reference/debug-api/debug_traceBlockByNumber.mdx index ee02cf982..d81ebacb9 100644 --- a/docs/base-chain/api-reference/debug-api/debug_traceBlockByNumber.mdx +++ b/docs/base-chain/api-reference/debug-api/debug_traceBlockByNumber.mdx @@ -7,7 +7,7 @@ description: 'Returns EVM execution traces for all transactions in a block by bl Returns the EVM execution traces for all transactions in a block identified by its number. -Debug methods replay all transactions in the block and are computationally expensive. Availability varies by [node provider](/base-chain/node-operators/node-providers). +Debug methods replay all transactions in the block and are computationally expensive. Availability varies by [RPC provider](/base-chain/network-information/rpc-providers). ## Parameters @@ -28,7 +28,7 @@ Debug methods replay all transactions in the block and are computationally expen ## Example - + ```json Request { "jsonrpc": "2.0", @@ -37,7 +37,9 @@ Debug methods replay all transactions in the block and are computationally expen "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -52,4 +54,4 @@ Debug methods replay all transactions in the block and are computationally expen ] } ``` - + diff --git a/docs/base-chain/api-reference/debug-api/debug_traceTransaction.mdx b/docs/base-chain/api-reference/debug-api/debug_traceTransaction.mdx index c6b10ce97..85bca70db 100644 --- a/docs/base-chain/api-reference/debug-api/debug_traceTransaction.mdx +++ b/docs/base-chain/api-reference/debug-api/debug_traceTransaction.mdx @@ -7,7 +7,7 @@ description: 'Returns the full EVM execution trace for a transaction. Requires a Replays a transaction and returns its complete EVM execution trace, including every opcode executed, gas consumed at each step, stack contents, and storage changes. -Debug methods replay transactions and are computationally expensive. Availability and rate limits vary by [node provider](/base-chain/node-operators/node-providers). Avoid calling these in hot paths. +Debug methods replay transactions and are computationally expensive. Availability and rate limits vary by [RPC provider](/base-chain/network-information/rpc-providers). Avoid calling these in hot paths. ## Parameters @@ -82,7 +82,7 @@ Debug methods replay transactions and are computationally expensive. Availabilit ## Example - + ```json Request (default struct log) { "jsonrpc": "2.0", @@ -106,7 +106,9 @@ Debug methods replay transactions and are computationally expensive. Availabilit "id": 1 } ``` + + ```json Response (default) { "jsonrpc": "2.0", @@ -148,4 +150,4 @@ Debug methods replay transactions and are computationally expensive. Availabilit } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.mdx index 2e758a200..f423ea9b8 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_blockNumber.mdx @@ -18,7 +18,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -27,7 +27,9 @@ No parameters. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -35,4 +37,4 @@ No parameters. "result": "0x158a0e9" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.mdx index 22b0db7ad..67aafde28 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_chainId.mdx @@ -18,7 +18,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -27,7 +27,9 @@ No parameters. "id": 1 } ``` + + ```json Response (Base Mainnet) { "jsonrpc": "2.0", @@ -43,4 +45,4 @@ No parameters. "result": "0x14a34" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx index 49cb8f27f..eaa5fa668 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_estimateGas.mdx @@ -61,7 +61,7 @@ Returns an estimate of how much gas is required to execute a transaction. The es ## Example - + ```bash Standard curl https://mainnet.base.org \ -X POST \ @@ -93,7 +93,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -101,4 +103,4 @@ curl https://mainnet.base.org \ "result": "0x5208" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx index 9ab11eb35..340707929 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_feeHistory.mdx @@ -35,7 +35,7 @@ Returns historical gas information for a range of blocks, including base fees an ## Example - + ```json Request { "jsonrpc": "2.0", @@ -44,7 +44,9 @@ Returns historical gas information for a range of blocks, including base fees an "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -81,4 +83,4 @@ Returns historical gas information for a range of blocks, including base fees an } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx index 9b5dcdf71..d65edefab 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_gasPrice.mdx @@ -18,7 +18,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -27,7 +27,9 @@ No parameters. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -35,4 +37,4 @@ No parameters. "result": "0x5b8d80" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx index 1365bc3c8..072772985 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBalance.mdx @@ -28,7 +28,7 @@ Returns the ETH balance of an address at a given block. ## Example - + ```bash Standard (latest) curl https://mainnet.base.org \ -X POST \ @@ -52,7 +52,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -60,4 +62,4 @@ curl https://mainnet.base.org \ "result": "0x1a055690d9db80000" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx index 38e775f44..10ed92d55 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByHash.mdx @@ -24,7 +24,7 @@ Returns information about a block by its hash. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -33,7 +33,9 @@ Returns information about a block by its hash. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -71,4 +73,4 @@ Returns information about a block by its hash. } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx index ec386cadf..457368509 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockByNumber.mdx @@ -69,7 +69,7 @@ When querying `"pending"`, the response is a live snapshot of the block being bu ## Example - + ```bash Standard (latest sealed block) curl https://mainnet.base.org \ -X POST \ @@ -93,7 +93,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -131,4 +133,4 @@ curl https://mainnet.base.org \ } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx index c6dc3d2e7..7d866f271 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockReceipts.mdx @@ -28,7 +28,7 @@ This method returns HTTP 403 on the public Base RPC endpoints (`mainnet.base.org ## Example - + ```bash Standard (latest) curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ @@ -40,7 +40,9 @@ curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_getBlockReceipts","params":["pending"],"id":1}' ``` + + ```json Response { "jsonrpc": "2.0", @@ -56,4 +58,4 @@ curl https://mainnet.base.org \ ] } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx index 41191fc1f..ddc1982fa 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByHash.mdx @@ -20,7 +20,7 @@ Returns the number of transactions in a block matching the given block hash. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -29,7 +29,9 @@ Returns the number of transactions in a block matching the given block hash. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -37,4 +39,4 @@ Returns the number of transactions in a block matching the given block hash. "result": "0x1f" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx index ce6f542b4..8ae1b4bd0 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getBlockTransactionCountByNumber.mdx @@ -24,7 +24,7 @@ Returns the number of transactions in a block matching the given block number. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -33,7 +33,9 @@ Returns the number of transactions in a block matching the given block number. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -41,4 +43,4 @@ Returns the number of transactions in a block matching the given block number. "result": "0x1f" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx index a8c7b5c1c..9d04bf55f 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getCode.mdx @@ -28,7 +28,7 @@ Returns the compiled bytecode at a given address. Returns `"0x"` for externally ## Example - + ```bash Standard (latest) curl https://mainnet.base.org \ -X POST \ @@ -52,7 +52,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -60,4 +62,4 @@ curl https://mainnet.base.org \ "result": "0x608060405234801561001057600080fd5b50..." } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx index fca1c3b7a..21be7f900 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getLogs.mdx @@ -59,7 +59,7 @@ Queries spanning large block ranges or high-activity contracts can time out or b ## Example - + ```bash Standard (block range) curl https://mainnet.base.org \ -X POST \ @@ -93,7 +93,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -118,4 +120,4 @@ curl https://mainnet.base.org \ ] } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx index 826d189ae..53e8fb8cf 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getStorageAt.mdx @@ -32,7 +32,7 @@ Returns the value from a storage position at a given address. ## Example - + ```bash Standard (latest) curl https://mainnet.base.org \ -X POST \ @@ -56,7 +56,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -64,4 +66,4 @@ curl https://mainnet.base.org \ "result": "0x0000000000000000000000000000000000000000000000000000000000000001" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx index db7d54d05..9a804544a 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockHashAndIndex.mdx @@ -24,7 +24,7 @@ Returns information about a transaction given a block hash and the transaction's ## Example - + ```json Request { "jsonrpc": "2.0", @@ -33,8 +33,10 @@ Returns information about a transaction given a block hash and the transaction's "id": 1 } ``` + -```json Response (type 0x7e deposit, index 0x0) + +```json Response { "jsonrpc": "2.0", "id": 1, @@ -61,4 +63,4 @@ Returns information about a transaction given a block hash and the transaction's } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx index b0e19733b..25690bd14 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByBlockNumberAndIndex.mdx @@ -24,7 +24,7 @@ Returns information about a transaction given a block number and the transaction ## Example - + ```json Request { "jsonrpc": "2.0", @@ -33,8 +33,10 @@ Returns information about a transaction given a block number and the transaction "id": 1 } ``` + -```json Response (type 0x7e deposit, index 0x0) + +```json Response { "jsonrpc": "2.0", "id": 1, @@ -61,4 +63,4 @@ Returns information about a transaction given a block number and the transaction } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx index dfeb51f8d..bcff70a8a 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionByHash.mdx @@ -51,7 +51,7 @@ Returns information about a transaction given its hash. Returns `null` for unkno ## Example - + ```json Request { "jsonrpc": "2.0", @@ -60,8 +60,10 @@ Returns information about a transaction given its hash. Returns `null` for unkno "id": 1 } ``` + -```json Response (type 0x7e deposit) + +```json Response { "jsonrpc": "2.0", "id": 1, @@ -96,4 +98,4 @@ Returns information about a transaction given its hash. Returns `null` for unkno "result": null } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx index ec3f69d58..8b21b8542 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx @@ -28,7 +28,7 @@ Returns the number of transactions sent from an address. This value is the accou ## Example - + ```bash Standard (latest confirmed) curl https://mainnet.base.org \ -X POST \ @@ -52,7 +52,9 @@ curl https://mainnet.base.org \ "id": 1 }' ``` + + ```json Response { "jsonrpc": "2.0", @@ -60,4 +62,4 @@ curl https://mainnet.base.org \ "result": "0x4d2" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx index 23d800672..2cb3e5581 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt.mdx @@ -70,7 +70,7 @@ Before Azul, the Flashblocks infrastructure stream included pre-confirmed receip ## Example - + ```json Request { "jsonrpc": "2.0", @@ -79,8 +79,10 @@ Before Azul, the Flashblocks infrastructure stream included pre-confirmed receip "id": 1 } ``` + -```json Response (type 0x7e deposit) + +```json Response { "jsonrpc": "2.0", "id": 1, @@ -120,4 +122,4 @@ Before Azul, the Flashblocks infrastructure stream included pre-confirmed receip "result": null } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx index 943f0b649..4dfc5cd48 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_maxPriorityFeePerGas.mdx @@ -18,7 +18,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -27,7 +27,9 @@ No parameters. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -35,4 +37,4 @@ No parameters. "result": "0xf4240" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx index a0ed81281..43d2aca84 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_subscribe.mdx @@ -58,7 +58,7 @@ Event notifications arrive as unsolicited JSON-RPC messages: ## Example - + ```json Subscribe to newHeads {"jsonrpc": "2.0", "method": "eth_subscribe", "params": ["newHeads"], "id": 1} ``` @@ -77,7 +77,9 @@ Event notifications arrive as unsolicited JSON-RPC messages: ] } ``` + + ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"} ``` @@ -142,4 +144,4 @@ Event notifications arrive as unsolicited JSON-RPC messages: } } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.mdx index 06a670a83..02a3793c9 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_syncing.mdx @@ -24,7 +24,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -33,7 +33,9 @@ No parameters. "id": 1 } ``` + + ```json Response (synced) { "jsonrpc": "2.0", @@ -41,4 +43,4 @@ No parameters. "result": false } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.mdx index 10e3802ce..0ffa450fa 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_unsubscribe.mdx @@ -20,7 +20,7 @@ Cancels a subscription created with [`eth_subscribe`](/base-chain/api-reference/ ## Example - + ```json Request { "jsonrpc": "2.0", @@ -29,7 +29,9 @@ Cancels a subscription created with [`eth_subscribe`](/base-chain/api-reference/ "params": ["0x1887ec8b9589ccad00000000000532da"] } ``` + + ```json Response (success) { "jsonrpc": "2.0", @@ -45,4 +47,4 @@ Cancels a subscription created with [`eth_subscribe`](/base-chain/api-reference/ "result": false } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/net_version.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/net_version.mdx index 2f34ba15d..2bda485ae 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/net_version.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/net_version.mdx @@ -18,7 +18,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -27,7 +27,9 @@ No parameters. "id": 1 } ``` + + ```json Response (Base Mainnet) { "jsonrpc": "2.0", @@ -35,4 +37,4 @@ No parameters. "result": "8453" } ``` - + diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx index 0c13fbb5a..3ca8d358d 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/web3_clientVersion.mdx @@ -22,7 +22,7 @@ No parameters. ## Example - + ```json Request { "jsonrpc": "2.0", @@ -31,7 +31,9 @@ No parameters. "id": 1 } ``` + + ```json Response { "jsonrpc": "2.0", @@ -39,4 +41,4 @@ No parameters. "result": "reth/v1.11.3-2ac58a2/x86_64-unknown-linux-gnu/base/v0.9.0" } ``` - + diff --git a/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx b/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx index 89280c761..7597ce4b2 100644 --- a/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/base_transactionStatus.mdx @@ -34,13 +34,15 @@ Requires [base/base](https://github.com/base/base) minimum client version v0.3.0 ## Example - + ```bash cURL curl https://mainnet.base.org \ -X POST -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"base_transactionStatus","params":["0xabc123..."],"id":1}' ``` + + ```json Known {"jsonrpc": "2.0", "id": 1, "result": {"status": "Known"}} ``` @@ -48,4 +50,4 @@ curl https://mainnet.base.org \ ```json Unknown {"jsonrpc": "2.0", "id": 1, "result": {"status": "Unknown"}} ``` - + diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx index 0dac07d40..133a17e63 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblockTransactions.mdx @@ -79,7 +79,7 @@ Each notification is a standard `eth_subscription` message. The `params.result` ## Example - + ```json Subscribe {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions"]} ``` @@ -87,57 +87,10 @@ Each notification is a standard `eth_subscription` message. The `params.result` ```json Subscribe (full data) {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblockTransactions", true]} ``` + + ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x1887ec8b9589ccad00000000000532da"} ``` - -```json Notification (full: false) -{ - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "subscription": "0x1887ec8b9589ccad00000000000532da", - "result": "0xe26de91f9037e903eefe70b28f613019253da603e67e0dbfe2f656dce5444311" - } -} -``` - -```json Notification (full: true) -{ - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "subscription": "0x1887ec8b9589ccad00000000000532da", - "result": { - "type": "0x2", - "chainId": "0x2105", - "nonce": "0x34ed", - "gas": "0x7a1200", - "maxFeePerGas": "0x257ab3c", - "maxPriorityFeePerGas": "0x419c7c", - "to": "0x6211a3742cf9d3b6677ecc7fd9dd102ab101d8e2", - "value": "0x0", - "accessList": [], - "input": "0x...", - "r": "0xa7cd30d21c30d4d60d27073c8bbc3ef5778527cf98eae0433e9d1f18c929dd5d", - "s": "0x08c75921e6bb75e19112300f80998f88a2b0f1adc52df2c3597b171d8c8de68d", - "yParity": "0x1", - "v": "0x1", - "hash": "0x6a010a5ce041ff0ee5a926db65d1ef512836cae822d5f2d58b63981bfa40aa7f", - "blockHash": null, - "blockNumber": "0x2c679a1", - "transactionIndex": "0x83", - "from": "0x2ad149d3d3099532d7c25c47cce37db6c4677b3a", - "gasPrice": "0x8de7bc", - "gasUsed": "0x26132", - "status": "0x1", - "cumulativeGasUsed": "0x16cb406", - "contractAddress": null, - "logsBloom": "0x00...00", - "logs": [] - } - } -} -``` - + diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx index 1eea35ba8..e48c6bbbd 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx @@ -32,15 +32,11 @@ Each subscription emits **one Flashblock Object per WebSocket message**. Events ## Example - + ```json Subscribe {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newFlashblocks"]} ``` -```json Subscription ID Response -{"jsonrpc": "2.0", "id": 1, "result": "0x3b8cd9e5f4a7b2c1d0e3f4a5b6c7d8e9"} -``` - ```javascript JavaScript import WebSocket from 'ws'; @@ -64,4 +60,10 @@ ws.on('message', (data) => { } }); ``` - + + + +```json Subscription ID Response +{"jsonrpc": "2.0", "id": 1, "result": "0x3b8cd9e5f4a7b2c1d0e3f4a5b6c7d8e9"} +``` + diff --git a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx index b17e9c4a3..827257a87 100644 --- a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx @@ -45,7 +45,7 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx ## Example - + ```json Subscribe (with filter) { "jsonrpc": "2.0", @@ -60,8 +60,10 @@ Each subscription emits **one item per WebSocket message**. Events arrive approx ] } ``` + + ```json Subscription ID Response {"jsonrpc": "2.0", "id": 1, "result": "0x2a7bc8d4e3f5a6b1c2d3e4f5a6b7c8d9"} ``` - + diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index 8eb1bde3c..6dddd2507 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -114,7 +114,7 @@ Flashblocks methods provide preconfirmation-specific capabilities on Flashblocks ### Debug API -Debug methods replay transactions and blocks for development and incident analysis. They are computationally expensive, so availability and rate limits vary by [node provider](/base-chain/node-operators/node-providers). +Debug methods replay transactions and blocks for development and incident analysis. They are computationally expensive, so availability and rate limits vary by [RPC provider](/base-chain/network-information/rpc-providers). diff --git a/docs/base-chain/asset-issuance/asset-security-checklist.mdx b/docs/base-chain/asset-issuance/asset-security-checklist.mdx new file mode 100644 index 000000000..7539a35e7 --- /dev/null +++ b/docs/base-chain/asset-issuance/asset-security-checklist.mdx @@ -0,0 +1,13 @@ +--- +title: Asset Security Checklist +description: TODO page for asset security guidance on Base. +draft: true +--- + + +TODO: This net-new Asset Issuance page is earmarked for follow-up content. + + +## Scope + +This page should cover audits, contract permissions, upgradeability, monitoring, admin keys, and incident preparedness. diff --git a/docs/base-chain/asset-issuance/bridged-and-native-assets.mdx b/docs/base-chain/asset-issuance/bridged-and-native-assets.mdx new file mode 100644 index 000000000..d0dfe19cf --- /dev/null +++ b/docs/base-chain/asset-issuance/bridged-and-native-assets.mdx @@ -0,0 +1,13 @@ +--- +title: Bridged and Native Assets +description: TODO page for canonical, bridged, and native asset representations on Base. +draft: true +--- + + +TODO: This net-new Asset Issuance page is earmarked for follow-up content. + + +## Scope + +This page should cover canonical versus bridged representations, asset movement, integration considerations, and issuer expectations. diff --git a/docs/base-chain/asset-issuance/issuing-on-base.mdx b/docs/base-chain/asset-issuance/issuing-on-base.mdx new file mode 100644 index 000000000..2329b1b96 --- /dev/null +++ b/docs/base-chain/asset-issuance/issuing-on-base.mdx @@ -0,0 +1,15 @@ +--- +title: Issuing on Base +description: TODO page for asset issuance guidance on Base. +draft: true +--- + + +TODO: This net-new Asset Issuance page is earmarked for follow-up content. + + +## Scope + +This page should cover token deployment, launch considerations, liquidity planning, security review, and operational responsibilities for teams issuing assets on Base. + +For existing starter guidance, see [Launch a Token](/get-started/launch-token). diff --git a/docs/base-chain/asset-issuance/liquidity-and-venues.mdx b/docs/base-chain/asset-issuance/liquidity-and-venues.mdx new file mode 100644 index 000000000..2fa4cf449 --- /dev/null +++ b/docs/base-chain/asset-issuance/liquidity-and-venues.mdx @@ -0,0 +1,13 @@ +--- +title: Liquidity and Venues +description: TODO page for liquidity and venue considerations for assets on Base. +draft: true +--- + + +TODO: This net-new Asset Issuance page is earmarked for follow-up content. + + +## Scope + +This page should cover where liquidity lives on Base and what issuers should consider before launch, without turning the page into a market-maker-specific guide. diff --git a/docs/base-chain/asset-issuance/token-standards.mdx b/docs/base-chain/asset-issuance/token-standards.mdx new file mode 100644 index 000000000..e6ccc30a0 --- /dev/null +++ b/docs/base-chain/asset-issuance/token-standards.mdx @@ -0,0 +1,13 @@ +--- +title: Token Standards +description: TODO page for recommended and supported token standards on Base. +draft: true +--- + + +TODO: This net-new Asset Issuance page is earmarked for follow-up content. + + +## Scope + +This page should cover recommended token standards, supported standards, and Base-specific considerations for asset issuers. diff --git a/docs/base-chain/llms-full.txt b/docs/base-chain/llms-full.txt index e83399619..9b7679166 100644 --- a/docs/base-chain/llms-full.txt +++ b/docs/base-chain/llms-full.txt @@ -14,26 +14,25 @@ ## Navigation (with brief descriptions) -### Network Information +### Core Concepts - [Chain Overview](https://docs.base.org/base-chain/overview.md) — Entry point for Base Chain docs -- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle.md) — Transaction flow across fees, sequencing, preconfirmation, inclusion, and finality -- [Network Fees](https://docs.base.org/base-chain/network-information/network-fees.md) — Fee model -- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — Block production, Flashblocks, gas allocation, and per-transaction limits -- [Diffs vs Ethereum](https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md) — Differences from L1 -- [Bridging](https://docs.base.org/base-chain/network-information/bridges.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains -- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge assets and messages between Base and Solana +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering.md) — Transaction ordering, Flashblocks preconfirmation, and active inclusion constraints - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality.md) — Finality model -- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — Capacity, gas, fee, and endpoint limits -- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy.md) — Ordering, inclusion, and sequencing behavior +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — How capacity, gas, data availability, and endpoint limits constrain throughput +- [Network Fees](https://docs.base.org/base-chain/network-information/network-fees.md) — Fee model +- [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge tokens and messages between Base and Solana +- [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences.md) — Differences from L1 ### Network Reference - [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints.md) — Chain IDs, RPC URLs, Flashblocks endpoints, and explorers - [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — App connectivity and wallet network setup +- [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers.md) — Hosted RPC providers for Base - [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Canonical addresses - [Ecosystem Contracts](https://docs.base.org/base-chain/network-information/ecosystem-contracts.md) — Third-party addresses -- [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose common transaction issues -- [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Network config changes - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets.md) — Testnet ETH for Base Sepolia +- [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Network config changes +- [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose common transaction issues ### API Reference - [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Human overview of Standard and Flashblocks endpoints, request/response format, error codes, and block parameters @@ -47,16 +46,9 @@ - [Performance Tuning](https://docs.base.org/base-chain/node-operators/performance-tuning.md) — Optimization - [Snapshots](https://docs.base.org/base-chain/node-operators/snapshots.md) — Snapshot sync - [Troubleshooting](https://docs.base.org/base-chain/node-operators/troubleshooting.md) — Common fixes -- [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers.md) — RPC node providers for Base - -### Builder Codes -- [Builder Codes](https://docs.base.org/apps/builder-codes/builder-codes.md) — Overview of the Builder Codes program -- [App Developers](https://docs.base.org/apps/builder-codes/app-developers.md) — Builder Codes for app developers -- [Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers.md) — Builder Codes for wallet developers -- [Agent Developers](https://docs.base.org/apps/builder-codes/agent-developers.md) — Attribute AI agent transactions to your identity on Base ### Protocol Specs -- [Specification Index](https://docs.base.org/base-chain/specs/index.md) — Entry point for the full Base Chain protocol specification +- [Overview](https://docs.base.org/base-chain/specs/overview.md) — Entry point for the full Base Chain protocol specification - [Protocol Overview](https://docs.base.org/base-chain/specs/protocol/overview.md) — Architecture tour: sequencer, batcher, derivation, proofs, and bridge - [Batcher](https://docs.base.org/base-chain/specs/protocol/batcher.md) — How sequencer data is posted to L1 as channel frames and batches - [Derivation](https://docs.base.org/base-chain/specs/protocol/consensus/derivation.md) — Deterministic L2 block derivation from L1 data and sequencer batches @@ -170,7 +162,7 @@ const client = createPublicClient({ chain: base, transport: http() }) ## Key Concepts (excerpts) -Source: `https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md` +Source: `https://docs.base.org/base-chain/network-information/base-execution-differences.md` - OP Stack rollup: Base batches L2 transactions and posts data to Ethereum L1, inheriting L1 security. - Fees: Total includes L2 execution and L1 data costs. See fee breakdown and estimator. @@ -178,13 +170,13 @@ Source: `https://docs.base.org/base-chain/network-information/diffs-ethereum-bas - Canonical contracts: Use published address lists for bridges, system contracts, and registry. - Source: `https://docs.base.org/base-chain/network-information/base-contracts.md` - Bridging: How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. - - Source: `https://docs.base.org/base-chain/network-information/bridges.md` + - Source: `https://docs.base.org/base-chain/network-information/bridging-and-withdrawals.md` ## Infrastructure (pruned) -- Node Providers — RPC endpoints for Base and Base Sepolia - - Source: `https://docs.base.org/base-chain/node-operators/node-providers.md` +- RPC Providers — RPC endpoints for Base and Base Sepolia + - Source: `https://docs.base.org/base-chain/network-information/rpc-providers.md` - Faucets — Get test ETH for Base Sepolia - Source: `https://docs.base.org/base-chain/network-information/network-faucets.md` @@ -217,13 +209,13 @@ curl -s -X POST "$BASE_RPC" -H 'content-type: application/json' \ ## Flashblocks (where to read) Sources: -- `https://docs.base.org/base-chain/network-information/block-building.md` +- `https://docs.base.org/base-chain/network-information/transaction-ordering.md` - `https://docs.base.org/base-chain/network-information/transaction-finality.md` - `https://docs.base.org/base-chain/api-reference/rpc-overview.md` - `https://docs.base.org/base-chain/node-operators/run-a-base-node.md` - `https://docs.base.org/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.md` -- Block building: Read Block Building for Flashblocks sequencing, gas allocation, and per-transaction limits. +- Transaction ordering: Read Transaction Ordering for Flashblocks sequencing, gas allocation, and per-transaction limits. - Finality: Read Transaction Finality for preconfirmation, L2 block inclusion, L1 batching, and finality stages. - API behavior: Read Base RPC Overview for Standard RPC, Flashblocks RPC, by-hash cache behavior, and raw stream differences. - Node operation: Read Run a Base Node and Flashblocks API Overview for raw stream infrastructure and schema details. diff --git a/docs/base-chain/llms.txt b/docs/base-chain/llms.txt index f2c9a20ea..5081c1966 100644 --- a/docs/base-chain/llms.txt +++ b/docs/base-chain/llms.txt @@ -7,25 +7,24 @@ ## Introduction - [Chain Overview](https://docs.base.org/base-chain/overview.md) — Entry point for Base Chain docs and canonical destinations -## Network Information -- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle.md) — Transaction flow across fees, sequencing, preconfirmation, inclusion, and finality -- [Block Building](https://docs.base.org/base-chain/network-information/block-building.md) — Sequencing, Flashblocks, gas allocation, and per-transaction limits +## Core Concepts +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering.md) — Transaction ordering, Flashblocks preconfirmation, and active inclusion constraints - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality.md) — Preconfirmation, L2 block inclusion, L1 batching, and finality stages -- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — Entry point for capacity, gas, fee, and endpoint limits -- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy.md) — How Base orders, includes, and preconfirms transactions +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits.md) — How capacity, gas, data availability, and endpoint limits constrain throughput - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees.md) — L2 execution and L1 data costs on Base -- [Bridging](https://docs.base.org/base-chain/network-information/bridges.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains -- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge assets and messages between Base and Solana -- [Differences: Ethereum & Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md) — Behavioral differences between Base and Ethereum +- [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals.md) — How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains +- [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge.md) — Bridge tokens and messages between Base and Solana +- [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences.md) — Behavioral differences between Base and Ethereum ## Network Reference - [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints.md) — Chain IDs, RPC URLs, Flashblocks endpoints, and explorers - [Connecting to Base](https://docs.base.org/base-chain/quickstart/connecting-to-base.md) — Configure providers and clients to read/write on Base +- [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers.md) — Hosted RPC providers for Base - [Base Contracts](https://docs.base.org/base-chain/network-information/base-contracts.md) — Core contracts and addresses - [Ecosystem Contracts](https://docs.base.org/base-chain/network-information/ecosystem-contracts.md) — Common ecosystem contract addresses -- [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose and fix common transaction issues -- [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Log of network configuration changes - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets.md) — Obtain testnet ETH for Base Sepolia +- [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog.md) — Log of network configuration changes +- [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions.md) — Diagnose and fix common transaction issues ## API Reference - [Overview](https://docs.base.org/base-chain/api-reference/rpc-overview.md) — Human overview of endpoints, request/response format, errors, and block parameters @@ -48,10 +47,9 @@ - [Performance Tuning](https://docs.base.org/base-chain/node-operators/performance-tuning.md) — Optimize node performance - [Snapshots](https://docs.base.org/base-chain/node-operators/snapshots.md) — Snapshot sync to speed up initial node setup - [Troubleshooting](https://docs.base.org/base-chain/node-operators/troubleshooting.md) — Diagnose and fix common node issues -- [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers.md) — RPC node providers for Base ## Protocol Specs -- [Overview](https://docs.base.org/base-chain/specs/index.md) — Full Base Chain protocol specification index +- [Overview](https://docs.base.org/base-chain/specs/overview.md) — Full Base Chain protocol specification index - [Protocol Overview](https://docs.base.org/base-chain/specs/protocol/overview.md) — High-level tour of protocol components and user flows - [Derivation](https://docs.base.org/base-chain/specs/protocol/consensus/derivation.md) — How L2 blocks are deterministically derived from L1 data - [Execution Engine](https://docs.base.org/base-chain/specs/protocol/execution/index.md) — L2 execution engine configuration and Engine API usage @@ -79,9 +77,3 @@ - [Report a Vulnerability](https://docs.base.org/base-chain/security/report-vulnerability.md) — Security contact and disclosure - [Security Council](https://docs.base.org/base-chain/security/security-council.md) — Governance and process overview - [Avoid Malicious Flags](https://docs.base.org/base-chain/security/avoid-malicious-flags.md) — How to avoid app-blocklist flags - -## Builder Codes -- [Builder Codes](https://docs.base.org/apps/builder-codes/builder-codes.md) — Overview of the Builder Codes program -- [App Developers](https://docs.base.org/apps/builder-codes/app-developers.md) — Builder Codes for app developers -- [Wallet Developers](https://docs.base.org/apps/builder-codes/wallet-developers.md) — Builder Codes for wallet developers -- [Agent Developers](https://docs.base.org/apps/builder-codes/agent-developers.md) — Attribute AI agent transactions to your identity on Base diff --git a/docs/base-chain/network-information/base-execution-differences.mdx b/docs/base-chain/network-information/base-execution-differences.mdx new file mode 100644 index 000000000..5a16393e2 --- /dev/null +++ b/docs/base-chain/network-information/base-execution-differences.mdx @@ -0,0 +1,20 @@ +--- +title: "Base Execution Differences" +description: Base-specific execution behavior to account for while building EVM-compatible applications. +--- + +Base is built to be as compatible as possible with Ethereum, and there are very few differences when it comes to building on Base versus Ethereum. + +However, there are still some minor discrepancies between the behavior of Base and Ethereum that you should be aware of when building apps on top of Base. + +## Differences + +These minor differences include: + +- [Flashblocks ordering](/base-chain/network-information/transaction-ordering#flashblocks-ordering) +- [Minimum base fee](/base-chain/network-information/network-fees#minimum-base-fee) +- [Bridging and withdrawals](/base-chain/network-information/bridging-and-withdrawals) +- [Opcodes](https://docs.optimism.io/stack/differences#opcodes) +- [Address aliasing](https://docs.optimism.io/stack/differences#address-aliasing) +- [Transaction costs](https://docs.optimism.io/stack/differences#transaction-fees) +- [Transaction finality](/base-chain/network-information/transaction-finality) diff --git a/docs/base-chain/network-information/block-building.mdx b/docs/base-chain/network-information/block-building.mdx deleted file mode 100644 index c54363fb4..000000000 --- a/docs/base-chain/network-information/block-building.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Block Building -slug: /block-building -description: This page outlines how Base blocks are built. ---- - -## Overview -This section describes how blocks are ordered on the Base networks. The ordering is separate from the UX, -for example the sequencer could be building Flashblocks every 200ms, without these Flashblocks being exposed publicly. In this scenario, block ordering -would change but the user experience would remain consistent. - -The Base networks are currently configured in the following ways: - -| Network | Current Configuration | Upcoming Deployments | -|--------------|-----------------------------|------------------------| -| Base Mainnet | [Flashblocks](#flashblocks) + [Per-Transaction Gas Max](#per-transaction-gas-maximum) | | -| Base Sepolia | [Flashblocks](#flashblocks) + [Per-Transaction Gas Max](#per-transaction-gas-maximum) | | - -See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for a history of changes to block building and other network parameters. - -## Configurations - -### Flashblocks - -The Base sequencer produces Flashblocks every **200ms**, committing to transaction ordering incrementally while the next L2 block is being built. Flashblocks provide preconfirmation signals before the full L2 block seals. - - -For the protocol-level sequencer role, see the [Protocol Overview](/base-chain/specs/protocol/overview#sequencers). For how preconfirmed state is exposed to applications, see the [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix). For node operation, see [Run a Base Node](/base-chain/node-operators/run-a-base-node#enable-flashblocks). - - -*There are three key differences from vanilla ordering:* - -1. **Timing** — Flashblocks are built every 200ms, each ordering a portion of the block. Once built and broadcast, transaction ordering is locked. Later-arriving transactions with higher priority fees cannot be included in earlier Flashblocks. - -2. **Gas Allocation** — Each Flashblock has an incrementally increasing gas budget. Flashblock `j` can use up to `j/10` of the full block gas limit, minus gas already consumed by earlier Flashblocks in the same block. - - - **Current parameters, last verified 2026-05-08** - - | Network | Full block gas limit | Flashblock 1 cumulative budget | - |---------|----------------------|--------------------------------| - | Base Mainnet | 400M gas | 40M gas | - | Base Sepolia | 1.2B gas | 120M gas | - - Base Sepolia's block gas limit is scheduled to increase every 2 weeks. See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for network parameter history. - - - For example, on Base Mainnet, Flashblock 1 can use up to 40M gas, Flashblock 2 can use up to 80M gas minus gas already consumed by Flashblock 1, and Flashblock 10 can use up to the full 400M gas limit minus gas already consumed. - -3. **Incremental ordering** — Flashblocks commit to transaction ordering as the L2 block is being built. Do not assume the sequencer performs one global fee-ranked ordering pass over every transaction that arrives during the full 2 second L2 block interval. - - - Priority fees can affect transaction inclusion and ordering, but Flashblocks are not a formalized priority-fee auction mechanism. If ordering is critical for your workflow, account for transaction propagation, arrival timing, and fee settings. - - -### Per-Transaction Gas Maximum - -Base enforces a per-transaction gas maximum. Transactions that specify a gas limit above the active maximum are **rejected by the mempool before inclusion**. `eth_sendTransaction` or `eth_sendRawTransaction` will return a JSON-RPC error (for example: `exceeds maximum per-transaction gas limit`). This cap does **not** change the block gas limit or the block validity conditions. - -| Network | Active per-transaction gas maximum | -|---------|------------------------------------| -| Base Mainnet | 25,000,000 gas until Azul activates on May 21, 2026 at 18:00 UTC; 16,777,216 gas after activation | -| Base Sepolia | 16,777,216 gas, active since April 20, 2026 at 18:00 UTC | - -For the Azul protocol change that enforces the 16,777,216 gas cap, see the [Azul execution engine specification](/base-chain/specs/upgrades/azul/exec-engine#transaction-gas-limit-cap). - -Bundler operators for smart contract wallets must configure their systems to limit the bundle size to fit within this cap. - -### Client support - -Azul requires Base-native clients. For operator migration guidance and supported client combinations, see [Base Azul Upgrade](/base-chain/node-operators/base-v1-upgrade) and [Run a Base Node](/base-chain/node-operators/run-a-base-node#supported-client-combinations). diff --git a/docs/base-chain/network-information/bridges.mdx b/docs/base-chain/network-information/bridging-and-withdrawals.mdx similarity index 95% rename from docs/base-chain/network-information/bridges.mdx rename to docs/base-chain/network-information/bridging-and-withdrawals.mdx index 4edba81a4..117aeb1a0 100644 --- a/docs/base-chain/network-information/bridges.mdx +++ b/docs/base-chain/network-information/bridging-and-withdrawals.mdx @@ -1,6 +1,6 @@ --- -title: Bridging -description: How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. +title: Bridging and Withdrawals +description: How assets and messages move between Base and other chains, including withdrawal lifecycle, timing, and finality dependencies. --- Bridging moves assets or messages between Base and another chain. The user experience can look like a single transfer, but the underlying mechanism depends on the source chain, destination chain, asset, and bridge provider. @@ -37,6 +37,8 @@ Withdrawals start on Base and complete on Ethereum. The user initiates a withdra Only Base-to-Ethereum withdrawals through the native bridge use the 7 day finality period. Normal Base transactions do not wait 7 days. See [Transaction Finality](/base-chain/network-information/transaction-finality#finality-for-withdrawal-transactions).
+Partner and user-facing withdrawal expectations should be set around the native withdrawal lifecycle: initiate on Base, wait for the output root to be available on Ethereum, prove the withdrawal, wait through the fault proof challenge window, then finalize on Ethereum. + ### Bridge providers Several bridge interfaces support Ethereum ↔ Base transfers: diff --git a/docs/base-chain/network-information/configuration-changelog.mdx b/docs/base-chain/network-information/configuration-changelog.mdx index 4703e71e2..c5eeffcc6 100644 --- a/docs/base-chain/network-information/configuration-changelog.mdx +++ b/docs/base-chain/network-information/configuration-changelog.mdx @@ -4,7 +4,7 @@ slug: /configuration-changelog description: A log of configuration changes to the Base networks. --- -This page tracks historical configuration changes to the Base networks, including updates to block building, network fees, and other network parameters. For current fee behavior and active fee values, see [Network Fees](/base-chain/network-information/network-fees). +This page tracks historical configuration changes to the Base networks, including updates to transaction ordering, network fees, and other network parameters. For current fee behavior and active fee values, see [Network Fees](/base-chain/network-information/network-fees). ## Base Mainnet @@ -17,12 +17,12 @@ This page tracks historical configuration changes to the Base networks, includin | January 22, 2026 | Increased Minimum Base Fee to 1,000,000 wei | [Minimum Base Fee](/base-chain/network-information/network-fees#minimum-base-fee) | | December 18, 2025 | Increased Minimum Base Fee to 500,000 wei | [Minimum Base Fee](/base-chain/network-information/network-fees#minimum-base-fee) | | December 4, 2025 | Enabled Minimum Base Fee (200,000 wei) | [Minimum Base Fee](/base-chain/network-information/network-fees#minimum-base-fee) | -| September 17, 2025 | Enabled Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum) | -| September 11, 2025 | Ended testing Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum) | -| September 10, 2025 | Started testing Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum) | -| July 7, 2025 | Enabled Flashblocks | [Flashblocks](/base-chain/network-information/block-building#flashblocks) | -| May 15, 2025 | Ended testing Flashblocks | [Flashblocks](/base-chain/network-information/block-building#flashblocks) | -| May 15, 2025 | Started testing Flashblocks | [Flashblocks](/base-chain/network-information/block-building#flashblocks) | +| September 17, 2025 | Enabled Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum) | +| September 11, 2025 | Ended testing Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum) | +| September 10, 2025 | Started testing Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum) | +| July 7, 2025 | Enabled Flashblocks | [Transaction Ordering](/base-chain/network-information/transaction-ordering#flashblocks-ordering) | +| May 15, 2025 | Ended testing Flashblocks | [Transaction Ordering](/base-chain/network-information/transaction-ordering#flashblocks-ordering) | +| May 15, 2025 | Started testing Flashblocks | [Transaction Ordering](/base-chain/network-information/transaction-ordering#flashblocks-ordering) | ## Base Sepolia @@ -33,5 +33,5 @@ This page tracks historical configuration changes to the Base networks, includin | February 10, 2026 | Increased EIP-1559 Denominator to 125 | [EIP-1559 Fee Parameters](/base-chain/network-information/network-fees#eip-1559-fee-parameters) | | February 10, 2026 | Increased Minimum Base Fee to 2,000,000 wei | [Minimum Base Fee](/base-chain/network-information/network-fees#minimum-base-fee) | | November 20, 2025 | Enabled Minimum Base Fee (200,000 wei) | [Minimum Base Fee](/base-chain/network-information/network-fees#minimum-base-fee) | -| September 3, 2025 | Enabled Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum) | -| February 25, 2025 | Enabled Flashblocks | [Flashblocks](/base-chain/network-information/block-building#flashblocks) | +| September 3, 2025 | Enabled Per-Transaction Gas Maximum | [Per-Transaction Gas Maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum) | +| February 25, 2025 | Enabled Flashblocks | [Transaction Ordering](/base-chain/network-information/transaction-ordering#flashblocks-ordering) | diff --git a/docs/base-chain/network-information/diffs-ethereum-base.mdx b/docs/base-chain/network-information/diffs-ethereum-base.mdx deleted file mode 100644 index 4392d2f6f..000000000 --- a/docs/base-chain/network-information/diffs-ethereum-base.mdx +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Differences between Ethereum and Base" -sidebarTitle: 'Differences: Ethereum & Base' ---- - -Base is built to be as compatible as possible to Ethereum, and there are very few differences when it comes to building on Base versus Ethereum. - -However, there are still some minor discrepancies between the behavior of Base and Ethereum that you should be aware of when building apps on top of Base. - -These minor differences include: - -- [Flashblocks](/base-chain/network-information/block-building#flashblocks) -- [Minimum base fee](/base-chain/network-information/network-fees#minimum-base-fee) -- [Bridging](https://docs.optimism.io/stack/differences#bridging) -- [Opcodes](https://docs.optimism.io/stack/differences#opcodes) -- [Address aliasing](https://docs.optimism.io/stack/differences#address-aliasing) -- [Transaction costs](https://docs.optimism.io/stack/differences#transaction-fees) -- [Chain Finality](https://docs.optimism.io/stack/differences#chain-finality) diff --git a/docs/base-chain/network-information/networks-and-endpoints.mdx b/docs/base-chain/network-information/networks-and-endpoints.mdx index ac52fbfe7..f3d7cdd4a 100644 --- a/docs/base-chain/network-information/networks-and-endpoints.mdx +++ b/docs/base-chain/network-information/networks-and-endpoints.mdx @@ -14,7 +14,7 @@ Use this page to find public Base network connection details. For app and wallet ## Related references - [Base RPC Overview](/base-chain/api-reference/rpc-overview) explains API behavior across Standard and Flashblocks endpoints. -- [Node Providers](/base-chain/node-operators/node-providers) lists production infrastructure providers. +- [RPC Providers](/base-chain/network-information/rpc-providers) lists production infrastructure providers. - [Run a Base Node](/base-chain/node-operators/run-a-base-node) explains how to operate your own Base node. - [Network Faucets](/base-chain/network-information/network-faucets) lists testnet faucets. - [Contract Addresses](/base-chain/network-information/base-contracts) lists L1 and L2 protocol contract deployments. diff --git a/docs/base-chain/node-operators/node-providers.mdx b/docs/base-chain/network-information/rpc-providers.mdx similarity index 93% rename from docs/base-chain/node-operators/node-providers.mdx rename to docs/base-chain/network-information/rpc-providers.mdx index 3640fed2d..bdc98a56d 100644 --- a/docs/base-chain/node-operators/node-providers.mdx +++ b/docs/base-chain/network-information/rpc-providers.mdx @@ -1,6 +1,6 @@ --- -title: 'Node Providers' -description: Documentation for Node Providers for the Base network. Including details on their services, supported networks, and pricing plans. +title: 'RPC Providers' +description: Hosted RPC providers for Base, including supported networks and provider-specific capabilities. --- import {HeaderNoToc} from "/snippets/headerNoToc.mdx"; @@ -51,7 +51,7 @@ import {HeaderNoToc} from "/snippets/headerNoToc.mdx"; ## Blast -[Blast](https://blastapi.io/public-api/base) provides fast and reliable decentralized blockchain APIs by partnering with third-party Node Providers. Blast offers users the ability to generate their own [dedicated RPC endpoint for Base](https://blastapi.io/login). +[Blast](https://blastapi.io/public-api/base) provides fast and reliable decentralized blockchain APIs by partnering with third-party RPC providers. Blast offers users the ability to generate their own [dedicated RPC endpoint for Base](https://blastapi.io/login). @@ -190,9 +190,8 @@ import {HeaderNoToc} from "/snippets/headerNoToc.mdx"; ## Validation Cloud -[Validation Cloud](https://app.validationcloud.io/) is the world’s fastest node provider according to Compare Nodes. With 50 million compute units available for use without a credit card and a scale tier that never has rate limits, Validation Cloud is built to support your most rigorous and low-latency workloads. +[Validation Cloud](https://app.validationcloud.io/) is the world’s fastest RPC provider according to Compare Nodes. With 50 million compute units available for use without a credit card and a scale tier that never has rate limits, Validation Cloud is built to support your most rigorous and low-latency workloads. - Base Mainnet - diff --git a/docs/base-chain/network-information/sequencing-policy.mdx b/docs/base-chain/network-information/sequencing-policy.mdx deleted file mode 100644 index 0e987cccf..000000000 --- a/docs/base-chain/network-information/sequencing-policy.mdx +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Sequencing Policy -description: How Base orders, includes, and preconfirms transactions. ---- - -Base transactions are ordered by the Base sequencer before they become sealed L2 blocks. This page explains the practical sequencing model app developers, traders, market makers, and infrastructure operators should account for when they submit or monitor transactions. - -## What the sequencer does - -The sequencer receives signed transactions, validates them against current account state and network rules, chooses which valid transactions to include, and produces ordered L2 blocks. Validators can independently derive and verify the resulting L2 chain from data posted to Ethereum. - -Sequencing is separate from finality. A transaction can be: - -- **Received** by an RPC endpoint or mempool. -- **Preconfirmed** in a Flashblock before the full L2 block seals. -- **Included** in a sealed L2 block. -- **Batched** to Ethereum. -- **Finalized** once the Ethereum batch reaches L1 finality. - -For the timing and guarantees of those stages, see [Transaction Lifecycle](/base-chain/network-information/transaction-lifecycle) and [Transaction Finality](/base-chain/network-information/transaction-finality). - -## How transactions are selected - -Base uses Flashblocks for block production. The block-in-progress is divided into roughly 200ms Flashblocks. Each Flashblock orders a portion of the next full L2 block. - -Transaction selection is affected by: - -- **Validity:** invalid nonce, insufficient balance, gas-limit violations, or reverted execution can prevent inclusion. -- **Priority fee:** higher-priority transactions are more likely to be selected earlier, but Flashblocks are not a formalized priority-fee auction mechanism. -- **Arrival timing:** a transaction that arrives after an earlier Flashblock has already been produced should not be assumed to reorder that earlier Flashblock, even if it pays a higher fee. -- **Gas budget:** each Flashblock has an incrementally increasing gas budget within the full L2 block gas limit. -- **Per-transaction gas maximum:** transactions above the active per-transaction gas cap are rejected before inclusion. - - -Flashblocks improve inclusion latency, but they do not create a single global fee-ranked ordering pass over every transaction that arrives during the full 2 second block window. For latency-sensitive workflows, arrival timing and propagation path matter alongside fee settings. - - -## What preconfirmation means - -When a transaction appears in Flashblocks data, it has been sequencer-ordered into the current block-in-progress. This is a strong preconfirmation signal, not the same thing as L2 block inclusion. - -Applications can use Flashblocks-aware RPC endpoints and subscriptions to display faster state updates, pending logs, transaction status, or preconfirmed receipts. They should still reconcile against sealed L2 block data before treating the transaction as fully included. - -## Practical guidance - -For apps and wallets: - -- Submit transactions with realistic fee settings and handle RPC rejection errors clearly. -- Track transactions by hash until a sealed receipt is available. -- If using preconfirmed state, label optimistic UI states and reconcile after L2 inclusion. - -For market makers and latency-sensitive systems: - -- Account for transaction propagation and arrival time, not only priority fee. -- Monitor both preconfirmation signals and sealed block receipts. -- Avoid assuming that a later high-fee transaction can reorder already-built Flashblocks. - -For infrastructure providers: - -- Expose Standard and Flashblocks endpoint behavior clearly to users. -- Document whether by-hash lookups can return preconfirmed cache data. -- Keep raw Flashblocks stream dependencies separate from application-facing RPC behavior. - -## Related references - -- [Block Building](/base-chain/network-information/block-building) documents Flashblocks timing, gas allocation, and active gas limits. -- [Base RPC Overview](/base-chain/api-reference/rpc-overview) explains how sequencing and preconfirmed state are exposed over RPC. -- [eth_sendRawTransaction](/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction) documents transaction submission behavior. -- [eth_getTransactionReceipt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) documents sealed and preconfirmed receipt lookups. -- [Protocol Overview](/base-chain/specs/protocol/overview) describes sequencer and validator roles at the specification layer. diff --git a/docs/base-chain/network-information/throughput-and-limits.mdx b/docs/base-chain/network-information/throughput-and-limits.mdx index bdb19ed96..bdb3ca443 100644 --- a/docs/base-chain/network-information/throughput-and-limits.mdx +++ b/docs/base-chain/network-information/throughput-and-limits.mdx @@ -1,24 +1,48 @@ --- title: Throughput and Limits -description: Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. +description: How Base capacity, gas limits, fee limits, data availability, and endpoint limits constrain transaction throughput. --- -This page collects the current destinations for Base throughput and limit topics. Keep live values on the canonical reference pages below. +Throughput on Base is constrained by several limits at once. There is no single transactions-per-second value that applies to every workload, because transactions consume different amounts of gas, write different amounts of data, and interact with different RPC and infrastructure paths. -## Capacity and gas limits +## Capacity model -- [Block Building](/base-chain/network-information/block-building) documents block building mode, Flashblocks gas allocation, and the active per-transaction gas maximum. -- [Network Fees](/base-chain/network-information/network-fees) documents L2 execution fees, L1 security fees, minimum base fee, and EIP-1559 parameters. -- [Configuration Changelog](/base-chain/network-information/configuration-changelog) tracks changes to block building, fees, and other network parameters. +Base capacity is primarily bounded by: + +- **L2 block gas limit:** the total gas that can fit in a sealed L2 block. +- **Flashblock gas budget:** the portion of the next L2 block that can be used by each Flashblock while the block is being built. +- **Per-transaction gas maximum:** the maximum gas limit a single transaction can request before it is rejected by the mempool. +- **L1 data availability cost:** the cost and throughput of posting Base transaction data to Ethereum. +- **RPC and provider limits:** rate limits, method availability, and backend capacity on public or hosted endpoints. + +Gas-heavy transactions reduce the number of transactions that fit in a block. Data-heavy transactions can also be constrained by L1 data availability costs even when L2 execution gas is available. + +## Gas limits + +Exact active gas parameters live in [Transaction Ordering](/base-chain/network-information/transaction-ordering). Use that page for the current full block gas limit, Flashblock gas budget, and per-transaction gas maximum. + +This page uses those limits to explain throughput planning. When active parameters change, the practical questions stay the same: how much gas each transaction consumes, how much data it posts to L1, and whether the RPC path can handle the requested method volume. + +## Fee limits under load + +When demand approaches available capacity, fees become the mechanism that controls inclusion. Base transactions pay both an L2 execution fee and an L1 data fee. The L2 base fee adjusts with demand, and Base also uses a minimum base fee that prevents the L2 base fee from dropping below the configured floor. + +Current fee parameters, including minimum base fee and EIP-1559 settings, are documented in [Network Fees](/base-chain/network-information/network-fees). The important throughput implication is that low fees can delay inclusion when demand is high, while realistic priority fees can improve inclusion chances without guaranteeing a specific ordering outcome. ## API and endpoint limits -- [Networks and Endpoints](/base-chain/network-information/networks-and-endpoints) lists public Standard and Flashblocks endpoints. -- [Base RPC Overview](/base-chain/api-reference/rpc-overview) documents method behavior across Standard and Flashblocks endpoints. -- [Node Providers](/base-chain/node-operators/node-providers) lists infrastructure providers for production traffic. -- [Run a Base Node](/base-chain/node-operators/run-a-base-node) explains how to operate your own RPC infrastructure. +Public endpoints are rate-limited and are not designed for production traffic. Hosted RPC providers may apply request-per-second limits, compute-unit limits, method restrictions, archive-data limits, or WebSocket subscription limits. Those endpoint limits do not change Base protocol capacity, but they can become the practical bottleneck for apps, wallets, indexers, and monitoring systems. + +Production systems should use a hosted [RPC Provider](/base-chain/network-information/rpc-providers) or [run a Base node](/base-chain/node-operators/run-a-base-node), then size traffic for the methods they call most often. Heavy methods such as debug traces, large log ranges, and archive reads usually need separate capacity planning from ordinary reads and transaction submission. + +## Practical implications + +- Split large operations into transactions that fit under the active per-transaction gas maximum. +- Do not estimate throughput by transaction count alone; estimate by gas, data footprint, and RPC method mix. +- Treat Flashblock preconfirmation as lower-latency feedback, not additional final capacity beyond the sealed L2 block. +- Plan separate capacity for user-facing transaction submission, read-heavy app traffic, indexing, and operational monitoring. +- Use [Transaction Ordering](/base-chain/network-information/transaction-ordering) for the exact Flashblock and per-transaction gas mechanics. -## Troubleshooting +## Technical details -- [Troubleshooting Transactions](/base-chain/network-information/troubleshooting-transactions) covers transaction inclusion, rejection, nonce, and confirmation issues. -- [Node Troubleshooting](/base-chain/node-operators/troubleshooting) covers node setup, sync, snapshot, and performance issues. +For protocol-level capacity rules, see the [Execution specification](/base-chain/specs/protocol/execution/index), the [Batcher specification](/base-chain/specs/protocol/batcher), and the current [upgrade specifications](/base-chain/specs/upgrades/azul/overview) where relevant. diff --git a/docs/base-chain/network-information/transaction-lifecycle.mdx b/docs/base-chain/network-information/transaction-lifecycle.mdx deleted file mode 100644 index 495b43b0c..000000000 --- a/docs/base-chain/network-information/transaction-lifecycle.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: Transaction Lifecycle -description: Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. ---- - -Most transactions on Base follow the same high-level path: a wallet signs a transaction, an RPC endpoint accepts it, the sequencer orders it, Base exposes the result through preconfirmed and sealed block data, and the batcher posts the transaction data to Ethereum. - -For normal L2 activity, such as transfers, swaps, mints, contract calls, and app interactions, this process completes quickly. The 7 day waiting period only applies to withdrawals from Base back to Ethereum. - - -Only Base-to-Ethereum withdrawals use the 7 day fault proof window. Regular transactions on Base do not wait 7 days before apps can treat them as complete. - - -## Lifecycle at a glance - -| Stage | Typical timing | What happens | What apps can do | -| --- | --- | --- | --- | -| Submit and price | Immediate | The wallet signs a transaction and sends it to an RPC endpoint. The transaction must pay the required L2 execution fee and L1 data fee. | Surface wallet or RPC errors, show the transaction as submitted, and keep tracking by hash. | -| Sequence | Sub-second | The sequencer admits valid transactions, orders them, and begins building the next L2 block. | Treat the transaction as pending until it appears in preconfirmed or sealed block data. | -| Flashblock preconfirmation | About 200 ms | Flashblocks-aware infrastructure can expose preconfirmed transaction and state updates before the full L2 block is sealed. | Use Flashblocks endpoints for faster UI updates when your product can tolerate preconfirmation semantics. | -| L2 block inclusion | About 2 seconds | The transaction is included in a sealed L2 block distributed to Base nodes. | Show the transaction as included on Base and read its receipt through standard JSON-RPC. | -| L1 batch inclusion | About 2 minutes | The batcher posts Base transaction data to Ethereum. | Treat the transaction as having stronger settlement guarantees because the data has been posted to L1. | -| L1 finality | About 20 minutes | The Ethereum block containing the batch reaches Ethereum finality. | Treat the transaction as finalized for normal L2 app and accounting workflows. | -| Withdrawal finality | 7 days | For Base-to-Ethereum withdrawals only, the withdrawal must pass the fault proof challenge window before funds can be released on L1. | Keep withdrawal-specific UX separate from normal L2 transaction confirmation. | - -## Submission and fees - -A Base transaction starts the same way as an Ethereum transaction: a wallet signs calldata, gas parameters, nonce, chain ID, and value. The transaction is then sent to a Base RPC endpoint with `eth_sendRawTransaction`. - -Before a transaction can be included, it must be valid for the current account state and fee market. Common reasons for rejection or delay include an underpriced fee, an incorrect nonce, insufficient funds for gas, reverted execution, or endpoint rate limits. Base fees include L2 execution costs and the L1 data cost of eventually posting transaction data to Ethereum. - -## Sequencing and preconfirmation - -The Base sequencer orders admitted transactions and builds L2 blocks. With Flashblocks, the sequencer also emits preconfirmation data before the full L2 block is sealed. This gives apps a faster signal that a transaction is likely to land. - -Preconfirmed state is useful for low-latency UX, but it is not the same as L2 block inclusion. Apps should label or handle preconfirmed state separately when the distinction matters. For example, an app can optimistically update an order, mint, or transfer view from Flashblocks data, then reconcile the final receipt after L2 block inclusion. - -## L2 inclusion and receipts - -Once a transaction is included in a sealed L2 block, standard JSON-RPC methods such as `eth_getTransactionReceipt`, `eth_getTransactionByHash`, and `eth_getBlockByNumber` can return the canonical L2 result. This is the main confirmation point most apps use for normal Base activity. - -At this point, the receipt tells you whether execution succeeded, which logs were emitted, how much gas was used, and which block included the transaction. If a transaction is missing, still pending, or replaced by another transaction with the same nonce, handle that as a transaction tracking problem rather than a finality problem. - -## L1 batching and finality - -After L2 inclusion, Base batches transaction data and posts it to Ethereum. L1 batch inclusion gives the transaction stronger guarantees because the data needed to derive the L2 chain has been published to Ethereum. - -When the Ethereum block containing the batch reaches finality, the transaction has reached the strongest finality stage relevant to normal L2 app workflows. This is separate from withdrawal finality, which protects cross-chain withdrawals through the fault proof system. - -## Withdrawals are different - -Deposits from Ethereum to Base and normal transactions on Base do not use the 7 day withdrawal period. The 7 day window applies when a user withdraws from Base to Ethereum through the native bridge. - -During a withdrawal, the user initiates the withdrawal on Base, a proposer submits an output root to Ethereum, and the withdrawal can be finalized after the fault proof challenge window if the output root remains valid. If a challenge invalidates an output root, the L2 chain itself does not reorg, but withdrawals proven against that invalid output need to be proven again against a valid output. - -## Related docs - - - - Understand L2 execution fees, L1 data fees, and minimum base fee settings. - - - Learn how Base sequences transactions, builds Flashblocks, and enforces gas limits. - - - Compare Standard and Flashblocks endpoint behavior by method. - - - Compare preconfirmation, L2 inclusion, L1 batching, L1 finality, and withdrawal finality. - - diff --git a/docs/base-chain/network-information/transaction-ordering.mdx b/docs/base-chain/network-information/transaction-ordering.mdx new file mode 100644 index 000000000..830672812 --- /dev/null +++ b/docs/base-chain/network-information/transaction-ordering.mdx @@ -0,0 +1,116 @@ +--- +title: Transaction Ordering +description: How Base orders transactions, preconfirms transactions with Flashblocks, and applies active inclusion constraints. +--- + +Transaction ordering describes how a valid transaction moves from submission to an ordered Base L2 block. On Base, the sequencer validates transactions, incrementally orders them into Flashblocks while building the next L2 block, then seals the full L2 block. + +Ordering is separate from finality. A transaction can be preconfirmed before the full L2 block seals, included in a sealed L2 block, batched to Ethereum, and then finalized after the Ethereum batch reaches L1 finality. For the guarantees at each stage, see [Transaction Finality](/base-chain/network-information/transaction-finality). + +## Active ordering configuration + +| Network | Current Configuration | Upcoming Deployments | +|--------------|-----------------------------|------------------------| +| Base Mainnet | [Flashblocks](#flashblocks-ordering) + [Per-Transaction Gas Max](#per-transaction-gas-maximum) | | +| Base Sepolia | [Flashblocks](#flashblocks-ordering) + [Per-Transaction Gas Max](#per-transaction-gas-maximum) | | + +See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for a history of changes to transaction ordering and other network parameters. + +## Sequencer role + +The sequencer receives signed transactions, validates them against current account state and network rules, chooses which valid transactions to include, and produces ordered L2 blocks. Validators can independently derive and verify the resulting L2 chain from data posted to Ethereum. + +## Flashblocks ordering + +The Base sequencer produces Flashblocks every **200ms**, committing to transaction ordering incrementally while the next L2 block is being built. Flashblocks provide preconfirmation signals before the full L2 block seals. + + +For how preconfirmed state is exposed to applications, see the [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix). For the protocol-level sequencer role, see the [Protocol Overview](/base-chain/specs/protocol/overview#sequencers). + + +There are three important ordering mechanics: + +1. **Timing** — Flashblocks are built every 200ms, each ordering a portion of the block. Once built and broadcast, transaction ordering is locked. Later-arriving transactions with higher priority fees cannot be included in earlier Flashblocks. + +2. **Gas Allocation** — Each Flashblock has an incrementally increasing gas budget. Flashblock `j` can use up to `j/10` of the full block gas limit, minus gas already consumed by earlier Flashblocks in the same block. + + + **Current parameters, last verified 2026-05-08** + + | Network | Full block gas limit | Flashblock 1 cumulative budget | + |---------|----------------------|--------------------------------| + | Base Mainnet | 400M gas | 40M gas | + | Base Sepolia | 1.2B gas | 120M gas | + + Base Sepolia's block gas limit is scheduled to increase every 2 weeks. See the [Configuration Changelog](/base-chain/network-information/configuration-changelog) for network parameter history. + + + For example, on Base Mainnet, Flashblock 1 can use up to 40M gas, Flashblock 2 can use up to 80M gas minus gas already consumed by Flashblock 1, and Flashblock 10 can use up to the full 400M gas limit minus gas already consumed. + +3. **Incremental ordering** — Flashblocks commit to transaction ordering as the L2 block is being built. Do not assume the sequencer performs one global fee-ranked ordering pass over every transaction that arrives during the full 2 second L2 block interval. + +## Inclusion constraints + +Transaction inclusion is affected by several constraints: + +- **Transaction validity:** invalid nonce, insufficient balance, gas-limit violations, or reverted execution can prevent inclusion. +- **Fee settings:** transactions must satisfy the active fee market. Priority fees can affect inclusion and relative ordering. +- **Arrival timing:** once a Flashblock has been produced, later-arriving transactions should not be assumed to reorder that earlier Flashblock, even if they pay a higher priority fee. +- **Block and Flashblock capacity:** each block and each Flashblock has a finite gas budget. +- **Per-transaction gas maximum:** transactions above the active per-transaction gas cap are rejected before inclusion. + + +Priority fees can affect transaction inclusion and ordering, but Flashblocks are not a formalized priority-fee auction mechanism. For latency-sensitive workflows, arrival timing and propagation path matter alongside fee settings. + + +## What preconfirmation means + +When a transaction appears in Flashblocks data, it has been sequencer-ordered into the current block-in-progress. This is a strong preconfirmation signal, not the same thing as sealed L2 block inclusion or finality. + +Applications can use Flashblocks-aware RPC endpoints and subscriptions to display faster state updates, pending logs, transaction status, or preconfirmed receipts. They should still reconcile against sealed L2 block data before treating the transaction as fully included. + +## Per-transaction gas maximum + +Base enforces a per-transaction gas maximum. Transactions that specify a gas limit above the active maximum are **rejected by the mempool before inclusion**. `eth_sendTransaction` or `eth_sendRawTransaction` will return a JSON-RPC error (for example: `exceeds maximum per-transaction gas limit`). This cap does **not** change the block gas limit or the block validity conditions. + +| Network | Active per-transaction gas maximum | +|---------|------------------------------------| +| Base Mainnet | 25,000,000 gas until Azul activates on May 28, 2026 at 18:00 UTC; 16,777,216 gas after activation | +| Base Sepolia | 16,777,216 gas, active since April 20, 2026 at 18:00 UTC | + +For the Azul protocol change that enforces the 16,777,216 gas cap, see the [Azul execution engine specification](/base-chain/specs/upgrades/azul/exec-engine#transaction-gas-limit-cap). + +Bundler operators for smart contract wallets must configure their systems to limit the bundle size to fit within this cap. + +## Practical guidance + +Apps and wallets should: + +- Submit transactions with realistic fee settings and handle RPC rejection errors clearly. +- Track transactions by hash until a sealed receipt is available. +- If using preconfirmed state, label optimistic UI states and reconcile after L2 inclusion. + +Market makers and latency-sensitive systems should: + +- Account for transaction propagation and arrival time, not only priority fee. +- Monitor both preconfirmation signals and sealed block receipts. +- Avoid assuming that a later high-fee transaction can reorder already-built Flashblocks. + +Infrastructure providers should: + +- Expose Standard and Flashblocks endpoint behavior clearly to users. +- Document whether by-hash lookups can return preconfirmed cache data. +- Keep raw Flashblocks stream dependencies separate from application-facing RPC behavior. + +## Client support + +Azul requires Base-native clients. For operator migration guidance and supported client combinations, see [Base Azul Upgrade](/base-chain/node-operators/base-v1-upgrade) and [Run a Base Node](/base-chain/node-operators/run-a-base-node#supported-client-combinations). + +## Related references + +- [Transaction Finality](/base-chain/network-information/transaction-finality) explains preconfirmation, L2 inclusion, L1 batching, and finality. +- [Throughput and Limits](/base-chain/network-information/throughput-and-limits) explains how capacity limits affect inclusion under load. +- [Base RPC Overview](/base-chain/api-reference/rpc-overview) explains how preconfirmed state is exposed over RPC. +- [eth_sendRawTransaction](/base-chain/api-reference/ethereum-json-rpc-api/eth_sendRawTransaction) documents transaction submission behavior. +- [eth_getTransactionReceipt](/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionReceipt) documents sealed and preconfirmed receipt lookups. +- [Protocol Overview](/base-chain/specs/protocol/overview) describes sequencer and validator roles at the specification layer. diff --git a/docs/base-chain/network-information/troubleshooting-transactions.mdx b/docs/base-chain/network-information/troubleshooting-transactions.mdx index 5e67a6c71..17f964e2f 100644 --- a/docs/base-chain/network-information/troubleshooting-transactions.mdx +++ b/docs/base-chain/network-information/troubleshooting-transactions.mdx @@ -50,7 +50,7 @@ If you submit a transaction with a nonce that has already been used, it will be ### Gas Limit Exceeds Maximum -Base enforces a [per-transaction gas maximum](/base-chain/network-information/block-building#per-transaction-gas-maximum). The active cap is network- and activation-dependent: Base Sepolia uses 16,777,216 gas, while Base Mainnet uses 25,000,000 gas until Azul activates on May 21, 2026 at 18:00 UTC and 16,777,216 gas after activation. Transactions specifying a higher gas limit are rejected by the mempool before inclusion. +Base enforces a [per-transaction gas maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum). The active cap is network- and activation-dependent: Base Sepolia uses 16,777,216 gas, while Base Mainnet uses 25,000,000 gas until Azul activates on May 28, 2026 at 18:00 UTC and 16,777,216 gas after activation. Transactions specifying a higher gas limit are rejected by the mempool before inclusion. **Error**: `exceeds maximum per-transaction gas limit` diff --git a/docs/base-chain/node-operators/run-a-base-node.mdx b/docs/base-chain/node-operators/run-a-base-node.mdx index ac19d001e..c576d8eb0 100644 --- a/docs/base-chain/node-operators/run-a-base-node.mdx +++ b/docs/base-chain/node-operators/run-a-base-node.mdx @@ -21,7 +21,7 @@ Running a node is time consuming, resource expensive, and potentially costly. If If you're just getting started and need an RPC URL, you can use the public endpoints listed below. These endpoints are rate-limited and are not suitable for production apps. -If you're looking to harden your app and avoid rate-limiting for your users, please consider using an endpoint from one of our [partners](/base-chain/node-operators/node-providers). +If you're looking to harden your app and avoid rate-limiting for your users, please consider using an endpoint from one of our [partners](/base-chain/network-information/rpc-providers). @@ -61,13 +61,13 @@ This tutorial assumes you are familiar with [Docker](https://www.docker.com/) an ### L1 RPC URL -You'll need your own L1 RPC URL. This can be one that you run yourself, or via a third-party provider, such as our [partners](/base-chain/node-operators/node-providers). +You'll need your own L1 RPC URL. This can be one that you run yourself, or via a third-party provider, such as our [partners](/base-chain/network-information/rpc-providers). ### Supported Client Combinations | Network | Activation status | Supported execution client | Supported consensus client | Env-var family | Sync RPC | |---------|-------------------|----------------------------|----------------------------|----------------|----------| -| Base Mainnet | Azul activates May 21, 2026 18:00 UTC | `base-reth-node` v0.8.0+ after activation | `base-consensus` v0.8.0+ after activation | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | +| Base Mainnet | Azul activates May 28, 2026 18:00 UTC | `base-reth-node` v0.8.0+ after activation | `base-consensus` v0.8.0+ after activation | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | | Base Sepolia | Azul activated April 20, 2026 18:00 UTC | `base-reth-node` v0.8.0+ | `base-consensus` v0.8.0+ | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | diff --git a/docs/base-chain/overview.mdx b/docs/base-chain/overview.mdx index ae8552e24..e807d964f 100644 --- a/docs/base-chain/overview.mdx +++ b/docs/base-chain/overview.mdx @@ -1,45 +1,25 @@ --- title: Chain Overview -description: Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +description: Start here for Base Chain docs, including concepts, network reference, node operation, APIs, and protocol specifications. --- -Base is an Ethereum L2. These docs explain how transactions move through Base, how blocks are built, how assets move across chains, and where to find the lower-level references for integration and operations. +Base Chain docs are organized around the core concepts, references, and operating guides teams need to build on and integrate with Base. ## Start here - - Follow a transaction from submission through preconfirmation, L2 inclusion, L1 batching, and finality. + + Understand transaction ordering, finality, throughput, fees, bridging, and Base-specific execution behavior. - - Learn how Base orders transactions, builds Flashblocks, and enforces network limits. + + Look up chain IDs, RPC endpoints, connection guidance, providers, contract addresses, faucets, configuration changes, and transaction troubleshooting. - - Understand how assets move between Base, Ethereum, Solana, Bitcoin, and other chains. - - - Learn where batch transactions, sponsored gas, spend permissions, and smart account UX live in the Base docs. - - + Operate Base infrastructure, including Flashblocks-aware RPC nodes. Use Base JSON-RPC, Flashblocks API methods, subscriptions, and debug APIs. - - -## Reference areas - - - - Learn how Base blocks are built, how transactions are ordered, and how network limits are configured. - - - Look up RPC endpoints, chain IDs, contract addresses, faucets, and configuration history. - - - Build account abstraction UX on Base, including batching, paymasters, spend permissions, and sub-accounts. - Read the cohesive Base Chain protocol specification, upgrades, BCPs, and protocol reference. @@ -47,9 +27,9 @@ Base is an Ethereum L2. These docs explain how transactions move through Base, h ## Where Flashblocks content lives -Flashblocks is part of Base block production, transaction confirmation, RPC behavior, and node operation. Start with: +Flashblocks are part of Base block production, transaction confirmation, RPC behavior, and node operation. Start with: -- [Block Building](/base-chain/network-information/block-building#flashblocks) for sequencing and gas allocation. +- [Transaction Ordering](/base-chain/network-information/transaction-ordering) for sequencing and gas allocation. - [Transaction Finality](/base-chain/network-information/transaction-finality) for preconfirmation and finality stages. - [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix) for API behavior. - [Run a Base Node](/base-chain/node-operators/run-a-base-node#enable-flashblocks) for node operation. diff --git a/docs/base-chain/quickstart/connecting-to-base.mdx b/docs/base-chain/quickstart/connecting-to-base.mdx index f9af19daa..c33cfb1ba 100644 --- a/docs/base-chain/quickstart/connecting-to-base.mdx +++ b/docs/base-chain/quickstart/connecting-to-base.mdx @@ -15,7 +15,7 @@ L1 & L2 protocol and network-related smart contract deployments can be found on -For production systems, we recommend using a node from one of our [node partners](/base-chain/node-operators/node-providers), or [running your own Base node](/base-chain/node-operators/run-a-base-node). +For production systems, we recommend using a hosted endpoint from one of the [RPC providers](/base-chain/network-information/rpc-providers), or [running your own Base node](/base-chain/node-operators/run-a-base-node). # Using Base with your wallet diff --git a/docs/docs.json b/docs/docs.json index 0b55c1bcd..3da808bad 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -82,7 +82,7 @@ }, { "anchor": "Bridge", - "href": "https://docs.base.org/base-chain/network-information/bridges", + "href": "https://docs.base.org/base-chain/network-information/bridging-and-withdrawals", "icon": "coin" }, { @@ -110,22 +110,14 @@ ] }, { - "group": "Concepts", + "group": "Core Concepts", "pages": [ - "base-chain/network-information/transaction-lifecycle", - "base-chain/network-information/block-building", - "base-chain/network-information/sequencing-policy", + "base-chain/network-information/transaction-ordering", "base-chain/network-information/transaction-finality", "base-chain/network-information/throughput-and-limits", "base-chain/network-information/network-fees", - { - "group": "Bridging", - "pages": [ - "base-chain/network-information/bridges", - "base-chain/network-information/base-solana-bridge" - ] - }, - "base-chain/network-information/diffs-ethereum-base" + "base-chain/network-information/bridging-and-withdrawals", + "base-chain/network-information/base-execution-differences" ] }, { @@ -133,8 +125,15 @@ "pages": [ "base-chain/network-information/networks-and-endpoints", "base-chain/quickstart/connecting-to-base", + "base-chain/network-information/rpc-providers", "base-chain/network-information/base-contracts", "base-chain/network-information/ecosystem-contracts", + { + "group": "Bridges", + "pages": [ + "base-chain/network-information/base-solana-bridge" + ] + }, "base-chain/network-information/network-faucets", "base-chain/network-information/configuration-changelog", "base-chain/network-information/troubleshooting-transactions" @@ -147,7 +146,6 @@ "base-chain/node-operators/base-v1-upgrade", "base-chain/node-operators/performance-tuning", "base-chain/node-operators/snapshots", - "base-chain/node-operators/node-providers", "base-chain/node-operators/troubleshooting" ] }, @@ -841,6 +839,38 @@ "source": "/base-chain/quickstart/base-solana-bridge", "destination": "/base-chain/network-information/base-solana-bridge" }, + { + "source": "/base-chain/network-information/block-building", + "destination": "/base-chain/network-information/transaction-ordering" + }, + { + "source": "/base-chain/network-information/sequencing-policy", + "destination": "/base-chain/network-information/transaction-ordering" + }, + { + "source": "/base-chain/network-information/transaction-lifecycle", + "destination": "/base-chain/network-information/transaction-ordering" + }, + { + "source": "/base-chain/network-information/flashblocks", + "destination": "/base-chain/network-information/transaction-ordering" + }, + { + "source": "/block-building", + "destination": "/base-chain/network-information/transaction-ordering" + }, + { + "source": "/base-chain/network-information/bridges", + "destination": "/base-chain/network-information/bridging-and-withdrawals" + }, + { + "source": "/base-chain/network-information/diffs-ethereum-base", + "destination": "/base-chain/network-information/base-execution-differences" + }, + { + "source": "/base-chain/node-operators/node-providers", + "destination": "/base-chain/network-information/rpc-providers" + }, { "source": "/base-chain/quickstart/deploy-on-base", "destination": "/apps/quickstart/deploy-on-base" @@ -875,7 +905,7 @@ }, { "source": "/base-chain/flashblocks/overview", - "destination": "/base-chain/network-information/block-building#flashblocks" + "destination": "/base-chain/network-information/transaction-ordering" }, { "source": "/base-chain/flashblocks/app-integration", @@ -887,7 +917,7 @@ }, { "source": "/base-chain/flashblocks/faq", - "destination": "/base-chain/network-information/transaction-lifecycle" + "destination": "/base-chain/network-information/transaction-ordering" }, { "source": "/ai-agents/reference/contracts", @@ -1719,7 +1749,7 @@ }, { "source": "/base-chain/tools/cross-chain", - "destination": "/base-chain/network-information/bridges" + "destination": "/base-chain/network-information/bridging-and-withdrawals" }, { "source": "/base-chain/tools/account-abstraction", @@ -1747,7 +1777,7 @@ }, { "source": "/base-chain/tools/node-providers", - "destination": "/base-chain/node-operators/node-providers" + "destination": "/base-chain/network-information/rpc-providers" }, { "source": "/base-chain/flashblocks/node-providers", @@ -1771,7 +1801,7 @@ }, { "source": "/base-chain/quickstart/bridge-token", - "destination": "/base-chain/network-information/bridges" + "destination": "/base-chain/network-information/bridging-and-withdrawals" }, { "source": "/apps/builder-codes/builder-codes-faq", @@ -1803,7 +1833,7 @@ }, { "source": "/base-chain/network-information/bridges-mainnet", - "destination": "/base-chain/network-information/bridges" + "destination": "/base-chain/network-information/bridging-and-withdrawals" }, { "source": "/base-app/introduction/beta-faq", @@ -2079,11 +2109,11 @@ }, { "source": "/chain/bridge-an-l1-token-to-base", - "destination": "/base-chain/network-information/bridges" + "destination": "/base-chain/network-information/bridging-and-withdrawals" }, { "source": "/chain/bridges-mainnet", - "destination": "/base-chain/network-information/bridges" + "destination": "/base-chain/network-information/bridging-and-withdrawals" }, { "source": "/chain/builder-anniversary-nft", @@ -2111,7 +2141,7 @@ }, { "source": "/chain/differences-between-ethereum-and-base", - "destination": "/base-chain/network-information/diffs-ethereum-base" + "destination": "/base-chain/network-information/base-execution-differences" }, { "source": "/chain/fees", @@ -2119,7 +2149,7 @@ }, { "source": "/chain/flashblocks", - "destination": "/base-chain/network-information/block-building#flashblocks" + "destination": "/base-chain/network-information/transaction-ordering" }, { "source": "/chain/flashblocks/apps", @@ -2147,7 +2177,7 @@ }, { "source": "/chain/node-providers", - "destination": "/base-chain/node-operators/node-providers" + "destination": "/base-chain/network-information/rpc-providers" }, { "source": "/chain/node-snapshots", diff --git a/docs/get-started/base.mdx b/docs/get-started/base.mdx index d1c29fb65..eb8ba9002 100644 --- a/docs/get-started/base.mdx +++ b/docs/get-started/base.mdx @@ -21,7 +21,7 @@ mode: "wide" ### Tokens [Launch a Token](/get-started/launch-token) [Bridge from Solana](/base-chain/network-information/base-solana-bridge) - [Bridge from Ethereum](/base-chain/network-information/bridges) + [Bridge from Ethereum](/base-chain/network-information/bridging-and-withdrawals) diff --git a/docs/llms-full.txt b/docs/llms-full.txt index 9bbceb086..c34d01881 100644 --- a/docs/llms-full.txt +++ b/docs/llms-full.txt @@ -13,10 +13,10 @@ ### Networks and environments Sources: - `https://docs.base.org/base-chain/quickstart/connecting-to-base.md` -- `https://docs.base.org/base-chain/network-information/diffs-ethereum-base.md` -- `https://docs.base.org/base-chain/node-operators/node-providers.md` +- `https://docs.base.org/base-chain/network-information/base-execution-differences.md` +- `https://docs.base.org/base-chain/network-information/rpc-providers.md` -> Base runs on Ethereum L2 with mainnet and Base Sepolia testnet. Use official RPCs from trusted node providers. Typical chain IDs: Base mainnet (8453), Base Sepolia (84532). Prefer HTTPS RPCs behind TLS, pin to provider domains, and handle occasional reorgs. For clients (e.g., Viem), configure the chain and transport explicitly; avoid relying on window-injected providers in server contexts. +> Base runs on Ethereum L2 with mainnet and Base Sepolia testnet. Use official RPCs from trusted RPC providers. Typical chain IDs: Base mainnet (8453), Base Sepolia (84532). Prefer HTTPS RPCs behind TLS, pin to provider domains, and handle occasional reorgs. For clients (e.g., Viem), configure the chain and transport explicitly; avoid relying on window-injected providers in server contexts. ### Authentication and API usage Sources: @@ -39,7 +39,7 @@ Sources: ### Rate limits Sources: -- `https://docs.base.org/base-chain/node-operators/node-providers.md` +- `https://docs.base.org/base-chain/network-information/rpc-providers.md` > Rate limits vary by provider and endpoint. Batch reads when possible, cache static metadata, and use conditional requests. On 429, back off and retry after the indicated window. Avoid concurrent duplicate builds/quotes; fan out only when necessary. @@ -108,7 +108,7 @@ const client = createPublicClient({ chain: base, transport: http() }) - [Resources for AI agents](https://docs.base.org/get-started/resources-for-ai-agents): Base-first resources for AI agents, including docs indexes, MCP access, skills, and recommended starting points ## Base Chain -- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including concepts, network reference, node operation, APIs, and protocol specifications. - [Base Change Proposals (BCPs)](https://docs.base.org/base-chain/specs/bcps/index): Index of Base Chain Proposals (BCPs) — design documents describing proposed changes to the Base Chain protocol. - [Overview](https://docs.base.org/base-chain/specs/overview): Technical specification of the Base Chain protocol, covering block derivation, execution, transaction propagation, and state verification. - [Specification](https://docs.base.org/base-chain/specs/protocol/consensus/index): Specification of the Base rollup node, describing its components and role in L2 block derivation and consensus. @@ -162,31 +162,20 @@ const client = createPublicClient({ chain: base, transport: http() }) - [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions): Subscribe to receive each transaction as it is pre-confirmed into a Flashblock. Only available on Flashblocks WebSocket endpoints. - [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs): Subscribe to logs from pre-confirmed transactions matching an optional filter. Only available on Flashblocks WebSocket endpoints. - [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): How to choose between Standard RPC, Flashblocks RPC, and API method families on Base. -- [Asset Security Checklist](https://docs.base.org/base-chain/asset-issuance/asset-security-checklist): TODO page for asset security guidance on Base. -- [Bridged and Native Assets](https://docs.base.org/base-chain/asset-issuance/bridged-and-native-assets): TODO page for canonical, bridged, and native asset representations on Base. -- [Issuing on Base](https://docs.base.org/base-chain/asset-issuance/issuing-on-base): TODO page for asset issuance guidance on Base. -- [Liquidity and Venues](https://docs.base.org/base-chain/asset-issuance/liquidity-and-venues): TODO page for liquidity and venue considerations for assets on Base. -- [Token Standards](https://docs.base.org/base-chain/asset-issuance/token-standards): TODO page for recommended and supported token standards on Base. - [Contract Addresses](https://docs.base.org/base-chain/network-information/base-contracts): A comprehensive list of L2 contract addresses for Base Mainnet and Base Testnet, including links to their respective blockchain explorers. - [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences): Base-specific execution behavior to account for while building EVM-compatible applications. - [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet -- [Block Building](https://docs.base.org/base-chain/network-information/block-building): This page outlines how Base blocks are built. -- [Bridging](https://docs.base.org/base-chain/network-information/bridges): How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. - [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals): How assets and messages move between Base and other chains, including withdrawal lifecycle, timing, and finality dependencies. - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog): A log of configuration changes to the Base networks. -- [Differences between Ethereum and Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base) -- [Flashblocks](https://docs.base.org/base-chain/network-information/flashblocks): What Flashblocks are, how they work on Base today, and where they appear in confirmation, API, and node operation flows. - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets): Documentation for Testnet Faucets on the Base network. - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees): Documentation about network fees on Base. This page covers details of the two-component cost system involving L2 execution fees and L1 security fees, and offers insights on fee variations and cost-saving strategies. - [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints): Base Mainnet and Base Sepolia chain IDs, public RPC URLs, WebSocket URLs, Flashblocks endpoints, and explorers. - [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers): Hosted RPC providers for Base, including supported networks and provider-specific capabilities. -- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy): How Base orders, includes, and preconfirms transactions. -- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): How Base capacity, gas limits, fee limits, data availability, and endpoint limits constrain transaction throughput. - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality): Detailed information about transaction finality on Base. -- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle): Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. -- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, builds blocks and Flashblocks, and applies active ordering constraints. +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, preconfirms transactions with Flashblocks, and applies active inclusion constraints. - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions): Guide to diagnosing and resolving transaction issues on Base. -- [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers): Documentation for Node Providers for the Base network. Including details on their services, supported networks, and pricing plans. +- [Base Azul Upgrade](https://docs.base.org/base-chain/node-operators/base-v1-upgrade): Migrate your Base node to base-reth-node and base-consensus for Azul. - [Node Performance](https://docs.base.org/base-chain/node-operators/performance-tuning): Hardware specifications, storage requirements, client recommendations, and configuration settings for running a performant Base node. - [Run a Node](https://docs.base.org/base-chain/node-operators/run-a-base-node): A tutorial that teaches how to set up and run a Base Node. - [Node Snapshots](https://docs.base.org/base-chain/node-operators/snapshots): Download and restore Base node snapshots to significantly reduce initial sync time for both archive and pruned nodes. diff --git a/docs/llms.txt b/docs/llms.txt index 38cacee90..c3a9f0437 100644 --- a/docs/llms.txt +++ b/docs/llms.txt @@ -20,7 +20,7 @@ - [Resources for AI agents](https://docs.base.org/get-started/resources-for-ai-agents): Base-first resources for AI agents, including docs indexes, MCP access, skills, and recommended starting points ## Base Chain -- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including network configuration, transaction lifecycle, APIs, protocol specifications, and node operations. +- [Chain Overview](https://docs.base.org/base-chain/overview): Start here for Base Chain docs, including concepts, network reference, node operation, APIs, and protocol specifications. - [Base Change Proposals (BCPs)](https://docs.base.org/base-chain/specs/bcps/index): Index of Base Chain Proposals (BCPs) — design documents describing proposed changes to the Base Chain protocol. - [Overview](https://docs.base.org/base-chain/specs/overview): Technical specification of the Base Chain protocol, covering block derivation, execution, transaction propagation, and state verification. - [Specification](https://docs.base.org/base-chain/specs/protocol/consensus/index): Specification of the Base rollup node, describing its components and role in L2 block derivation and consensus. @@ -74,31 +74,20 @@ - [newFlashblockTransactions](https://docs.base.org/base-chain/api-reference/flashblocks-api/newFlashblockTransactions): Subscribe to receive each transaction as it is pre-confirmed into a Flashblock. Only available on Flashblocks WebSocket endpoints. - [pendingLogs](https://docs.base.org/base-chain/api-reference/flashblocks-api/pendingLogs): Subscribe to logs from pre-confirmed transactions matching an optional filter. Only available on Flashblocks WebSocket endpoints. - [Base RPC Overview](https://docs.base.org/base-chain/api-reference/rpc-overview): How to choose between Standard RPC, Flashblocks RPC, and API method families on Base. -- [Asset Security Checklist](https://docs.base.org/base-chain/asset-issuance/asset-security-checklist): TODO page for asset security guidance on Base. -- [Bridged and Native Assets](https://docs.base.org/base-chain/asset-issuance/bridged-and-native-assets): TODO page for canonical, bridged, and native asset representations on Base. -- [Issuing on Base](https://docs.base.org/base-chain/asset-issuance/issuing-on-base): TODO page for asset issuance guidance on Base. -- [Liquidity and Venues](https://docs.base.org/base-chain/asset-issuance/liquidity-and-venues): TODO page for liquidity and venue considerations for assets on Base. -- [Token Standards](https://docs.base.org/base-chain/asset-issuance/token-standards): TODO page for recommended and supported token standards on Base. - [Contract Addresses](https://docs.base.org/base-chain/network-information/base-contracts): A comprehensive list of L2 contract addresses for Base Mainnet and Base Testnet, including links to their respective blockchain explorers. - [Base Execution Differences](https://docs.base.org/base-chain/network-information/base-execution-differences): Base-specific execution behavior to account for while building EVM-compatible applications. - [Base-Solana Bridge](https://docs.base.org/base-chain/network-information/base-solana-bridge): Bridge tokens and messages between Base and Solana Mainnet -- [Block Building](https://docs.base.org/base-chain/network-information/block-building): This page outlines how Base blocks are built. -- [Bridging](https://docs.base.org/base-chain/network-information/bridges): How assets and messages move between Base, Ethereum, Solana, Bitcoin, and other chains. - [Bridging and Withdrawals](https://docs.base.org/base-chain/network-information/bridging-and-withdrawals): How assets and messages move between Base and other chains, including withdrawal lifecycle, timing, and finality dependencies. - [Configuration Changelog](https://docs.base.org/base-chain/network-information/configuration-changelog): A log of configuration changes to the Base networks. -- [Differences between Ethereum and Base](https://docs.base.org/base-chain/network-information/diffs-ethereum-base) -- [Flashblocks](https://docs.base.org/base-chain/network-information/flashblocks): What Flashblocks are, how they work on Base today, and where they appear in confirmation, API, and node operation flows. - [Network Faucets](https://docs.base.org/base-chain/network-information/network-faucets): Documentation for Testnet Faucets on the Base network. - [Network Fees](https://docs.base.org/base-chain/network-information/network-fees): Documentation about network fees on Base. This page covers details of the two-component cost system involving L2 execution fees and L1 security fees, and offers insights on fee variations and cost-saving strategies. - [Networks and Endpoints](https://docs.base.org/base-chain/network-information/networks-and-endpoints): Base Mainnet and Base Sepolia chain IDs, public RPC URLs, WebSocket URLs, Flashblocks endpoints, and explorers. - [RPC Providers](https://docs.base.org/base-chain/network-information/rpc-providers): Hosted RPC providers for Base, including supported networks and provider-specific capabilities. -- [Sequencing Policy](https://docs.base.org/base-chain/network-information/sequencing-policy): How Base orders, includes, and preconfirms transactions. -- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): Entry point for Base block capacity, per-transaction gas limits, fee limits, endpoint rate limits, and related configuration. +- [Throughput and Limits](https://docs.base.org/base-chain/network-information/throughput-and-limits): How Base capacity, gas limits, fee limits, data availability, and endpoint limits constrain transaction throughput. - [Transaction Finality](https://docs.base.org/base-chain/network-information/transaction-finality): Detailed information about transaction finality on Base. -- [Transaction Lifecycle](https://docs.base.org/base-chain/network-information/transaction-lifecycle): Follow a Base transaction from submission through sequencing, preconfirmation, L2 inclusion, L1 batching, and finality. -- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, builds blocks and Flashblocks, and applies active ordering constraints. +- [Transaction Ordering](https://docs.base.org/base-chain/network-information/transaction-ordering): How Base orders transactions, preconfirms transactions with Flashblocks, and applies active inclusion constraints. - [Troubleshooting Transactions](https://docs.base.org/base-chain/network-information/troubleshooting-transactions): Guide to diagnosing and resolving transaction issues on Base. -- [Node Providers](https://docs.base.org/base-chain/node-operators/node-providers): Documentation for Node Providers for the Base network. Including details on their services, supported networks, and pricing plans. +- [Base Azul Upgrade](https://docs.base.org/base-chain/node-operators/base-v1-upgrade): Migrate your Base node to base-reth-node and base-consensus for Azul. - [Node Performance](https://docs.base.org/base-chain/node-operators/performance-tuning): Hardware specifications, storage requirements, client recommendations, and configuration settings for running a performant Base node. - [Run a Node](https://docs.base.org/base-chain/node-operators/run-a-base-node): A tutorial that teaches how to set up and run a Base Node. - [Node Snapshots](https://docs.base.org/base-chain/node-operators/snapshots): Download and restore Base node snapshots to significantly reduce initial sync time for both archive and pruned nodes. diff --git a/docs/snippets/base-networks.mdx b/docs/snippets/base-networks.mdx index 8ca901d6c..065d7b909 100644 --- a/docs/snippets/base-networks.mdx +++ b/docs/snippets/base-networks.mdx @@ -4,5 +4,5 @@ | Base Sepolia | `84532` | `https://sepolia.base.org` | `wss://sepolia.base.org` | `https://sepolia-preconf.base.org` | `wss://sepolia-preconf.base.org` | [BaseScan Sepolia](https://sepolia.basescan.org) | -Public RPC and Flashblocks RPC endpoints are rate-limited and are not suitable for production traffic. For production systems, use a [node provider](/base-chain/node-operators/node-providers) or [run your own Base node](/base-chain/node-operators/run-a-base-node). For more explorer options, see the [block explorer catalog](/get-started/block-explorers). +Public RPC and Flashblocks RPC endpoints are rate-limited and are not suitable for production traffic. For production systems, use an [RPC provider](/base-chain/network-information/rpc-providers) or [run your own Base node](/base-chain/node-operators/run-a-base-node). For more explorer options, see the [block explorer catalog](/get-started/block-explorers). diff --git a/scripts/agents.js b/scripts/agents.js index 566e3139c..355392c2a 100755 --- a/scripts/agents.js +++ b/scripts/agents.js @@ -89,6 +89,8 @@ function scanDocs(dir, basePath = '', ignored) { if (CONSTANTS.skipFilePatterns.some(p => p.test(baseName))) continue; if (ignored.bareFiles.has(baseName)) continue; if (ignored.files.has(basePath ? `${basePath}/${baseName}` : baseName)) continue; + const { frontmatter } = parseFrontmatter(fs.readFileSync(fullPath, 'utf8')); + if (frontmatter.hidden === true || frontmatter.draft === true) continue; files.push(baseName); } } From 5c11197b0a9c39256c9e727e0b00e032febdf4e9 Mon Sep 17 00:00:00 2001 From: roethke Date: Fri, 12 Jun 2026 16:09:37 -0700 Subject: [PATCH 3/3] refine IA: fix preconf URLs, restore ecosystem contracts, improve RPC overview, reistate flashblocks FAQs --- .../eth_getTransactionCount.mdx | 2 +- .../flashblocks-api-overview.mdx | 58 ++++++++++++++ .../flashblocks-api/newFlashblocks.mdx | 8 +- .../flashblocks-api/pendingLogs.mdx | 4 +- .../base-chain/api-reference/rpc-overview.mdx | 74 ++++++++---------- .../ecosystem-contracts.mdx | 78 +++++++++++++++++++ .../throughput-and-limits.mdx | 2 +- .../transaction-ordering.mdx | 58 +++++++++++++- .../troubleshooting-transactions.mdx | 10 ++- .../node-operators/run-a-base-node.mdx | 11 --- docs/base-chain/specs/overview.mdx | 2 +- docs/base-chain/specs/protocol/overview.mdx | 3 +- docs/docs.json | 1 - docs/snippets/base-networks.mdx | 8 +- 14 files changed, 247 insertions(+), 72 deletions(-) create mode 100644 docs/base-chain/network-information/ecosystem-contracts.mdx diff --git a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx index 8b21b8542..644c2f01f 100644 --- a/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx +++ b/docs/base-chain/api-reference/ethereum-json-rpc-api/eth_getTransactionCount.mdx @@ -1,7 +1,7 @@ --- title: 'eth_getTransactionCount' sidebarTitle: 'eth_getTransactionCount' -description: 'Returns the number of transactions sent from an address (the nonce). Use pending to get the pre-confirmed nonce.' +description: 'Returns the number of transactions sent from an address. Use pending to get the pre-confirmed nonce.' --- Returns the number of transactions sent from an address. This value is the account's current nonce — the value to use as `nonce` when constructing the next transaction. diff --git a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx index 9103df71a..8da94b583 100644 --- a/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/flashblocks-api-overview.mdx @@ -27,6 +27,64 @@ On a Flashblocks WSS endpoint, `eth_subscribe` with `newHeads` emits a new event | [pendingLogs](/base-chain/api-reference/flashblocks-api/pendingLogs) | Stream filtered event logs from pre-confirmed transactions | | [newFlashblocks](/base-chain/api-reference/flashblocks-api/newFlashblocks) | Stream full Flashblock payload objects from the sequencer | +## Library Examples + +Use a Flashblocks-aware RPC endpoint from a [node provider](/base-chain/network-information/rpc-providers) to consume Flashblocks data in your app. + +### Wagmi + +```tsx config.ts +import { createConfig, http } from "wagmi"; +import { baseSepoliaPreconf } from "wagmi/chains"; +import { baseAccount } from "wagmi/connectors"; + +export const config = createConfig({ + chains: [baseSepoliaPreconf], + connectors: [baseAccount()], + transports: { + [baseSepoliaPreconf.id]: http(), + }, +}); +``` + +### Viem + +```ts +import { createWalletClient, http, parseEther, publicActions } from "viem"; +import { privateKeyToAccount } from "viem/accounts"; +import { baseSepoliaPreconf } from "viem/chains"; + +const account = privateKeyToAccount(`0x${process.env.PRIVATE_KEY}`); +const client = createWalletClient({ + account, + chain: baseSepoliaPreconf, + transport: http(), +}).extend(publicActions); + +const hash = await client.sendTransaction({ to: "0x...", value: parseEther("0.0001") }); +const receipt = await client.waitForTransactionReceipt({ hash }); +``` + +### Ethers + +```ts +const provider = new ethers.JsonRpcProvider("https://sepolia.base.org"); +const wallet = new ethers.Wallet(process.env.PRIVATE_KEY, provider); + +const tx = await wallet.sendTransaction({ to: "0x...", value: ethers.parseEther("0.0001") }); +await tx.wait(0); // pass 0 confirmations to resolve on preconfirmation +``` + +## FAQ + + +Transaction data in the `diff.transactions` array is [Recursive Length Prefix (RLP)](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp/) encoded. + + + +The infrastructure stream has a maximum connection limit and is intended for node operators only. For production use, run your own [Flashblocks-aware RPC node](/base-chain/node-operators/run-a-base-node#enable-flashblocks) or use a third-party node provider with Flashblocks support. + + ## Infrastructure Stream The raw Flashblocks infrastructure stream is the upstream WebSocket feed consumed by Flashblocks-aware RPC nodes. It emits a new message approximately every 200ms as the sequencer pre-confirms transactions. diff --git a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx index e48c6bbbd..1fe003af5 100644 --- a/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/newFlashblocks.mdx @@ -1,13 +1,13 @@ --- title: 'newFlashblocks' sidebarTitle: 'newFlashblocks' -description: 'Subscribe to receive full Flashblock payload stream as each pre-confirmed block is built. Only available on Flashblocks WebSocket endpoints.' +description: 'Subscribe to receive full Flashblock payload stream as each pre-confirmed block is built. Requires a Flashblocks-aware WebSocket RPC endpoint.' --- Subscribe via `eth_subscribe` to receive full block state updates as each Flashblock is built. Each message contains the accumulated pre-confirmed state for the block in progress. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` and `wss://sepolia-preconf.base.org`. +Requires a WebSocket-enabled RPC endpoint with Flashblocks support. Use a [node provider](/base-chain/network-information/rpc-providers) such as Alchemy or QuickNode that offers WebSocket support for Base. @@ -40,8 +40,8 @@ Each subscription emits **one Flashblock Object per WebSocket message**. Events ```javascript JavaScript import WebSocket from 'ws'; -// Use a Flashblocks-enabled provider WSS endpoint in production -const ws = new WebSocket('wss://mainnet-preconf.base.org'); +// Use a Flashblocks-enabled provider WSS endpoint (e.g. from Alchemy or QuickNode) +const ws = new WebSocket('wss://'); ws.on('open', () => { ws.send(JSON.stringify({ diff --git a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx index 827257a87..a2323ced0 100644 --- a/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx +++ b/docs/base-chain/api-reference/flashblocks-api/pendingLogs.mdx @@ -1,13 +1,13 @@ --- title: 'pendingLogs' sidebarTitle: 'pendingLogs' -description: 'Subscribe to logs from pre-confirmed transactions matching an optional filter. Only available on Flashblocks WebSocket endpoints.' +description: 'Subscribe to logs from pre-confirmed transactions matching an optional filter. Requires a Flashblocks-aware WebSocket RPC endpoint.' --- Subscribe via `eth_subscribe` to receive logs from pre-confirmed transactions matching an optional filter. Useful for monitoring contract events with sub-block latency. -Only available on Flashblocks WebSocket endpoints: `wss://mainnet-preconf.base.org` / `wss://sepolia-preconf.base.org`. +Requires a WebSocket-enabled RPC endpoint with Flashblocks support. Use a [node provider](/base-chain/network-information/rpc-providers) such as Alchemy or QuickNode that offers WebSocket support for Base. diff --git a/docs/base-chain/api-reference/rpc-overview.mdx b/docs/base-chain/api-reference/rpc-overview.mdx index 6dddd2507..1d763b4dc 100644 --- a/docs/base-chain/api-reference/rpc-overview.mdx +++ b/docs/base-chain/api-reference/rpc-overview.mdx @@ -11,7 +11,7 @@ Base exposes an EVM-compatible JSON-RPC API through two RPC tiers: - **Standard RPC** for normal Ethereum-compatible reads, writes, logs, and debugging against sealed blocks and standard pending state. - **Flashblocks RPC** for apps that need preconfirmed state and transaction signals before the next L2 block seals. -Most apps should start with Standard RPC. Use Flashblocks RPC when faster state reads, transaction feedback, or realtime subscriptions materially improve the user experience. +Most apps should start with Standard RPC. Use Flashblocks RPC when faster state reads, transaction feedback, or realtime subscriptions materially improve the user experience. For endpoint URLs and chain IDs, see [Connecting to Base](/base-chain/quickstart/connecting-to-base). ## Choose an RPC Tier @@ -44,34 +44,26 @@ Preconfirmed responses are reorg-able until the full L2 block seals. For finalit ## Common Tasks - - Use `eth_call`, `eth_getBalance`, `eth_getStorageAt`, `eth_getCode`, and `eth_getTransactionCount`. Add `"pending"` on Flashblocks RPC to read preconfirmed state. + + Query balances, storage, bytecode, and nonces. Use `"pending"` on Flashblocks RPC for preconfirmed state. - - Broadcast signed transactions with `eth_sendRawTransaction`, then choose Standard or Flashblocks reads depending on the confirmation signal your app needs. + + Broadcast signed transactions to the network. - - Use transaction and receipt lookups for sealed data. On Flashblocks RPC, by-hash lookups can also return preconfirmed cache data before the L2 block seals. + + Poll for receipts on sealed blocks, or get preconfirmed data on Flashblocks RPC. - - Use WebSocket subscriptions such as `eth_subscribe`, `newFlashblockTransactions`, `pendingLogs`, and `newFlashblocks` when polling is too slow. + + WebSocket subscriptions for new blocks, logs, and preconfirmed transaction data. - - Use `eth_simulateV1` to simulate bundles against preconfirmed state on Flashblocks endpoints. + + Run transaction bundles against preconfirmed state before they land on-chain. - - Use debug methods for local development, transaction traces, and block replay. Availability and rate limits vary by provider. + + Full EVM traces and block replay. Availability varies by provider. -## Endpoint URLs - -Most readers can use their provider's Base endpoint directly. Expand this section when you need the public Base RPC URLs, chain IDs, explorers, or Flashblocks endpoint URLs. - - - - - ## API Surfaces ### Ethereum JSON-RPC API @@ -79,17 +71,17 @@ Most readers can use their provider's Base endpoint directly. Expand this sectio Core Ethereum protocol methods for account queries, contract calls, block and transaction data, gas estimation, log filtering, transaction submission, and WebSocket subscriptions. These methods work on both Standard and Flashblocks endpoints. - - `eth_call`, `eth_getBalance`, `eth_getStorageAt`, `eth_getCode`, `eth_getTransactionCount` + + Account balances, storage slots, bytecode, nonces, and contract simulation. - - `eth_getBlockByNumber`, `eth_getBlockByHash`, transaction count methods, transaction lookups, receipts + + Block data, transaction lookups, and receipts by hash, number, or index. - - `eth_estimateGas`, `eth_gasPrice`, `eth_maxPriorityFeePerGas`, `eth_feeHistory` + + Gas estimation, current gas price, priority fee, and fee history. - - `eth_getLogs`, `eth_subscribe`, `eth_unsubscribe` + + Filter and query event logs, or subscribe to events over WebSocket. @@ -98,17 +90,17 @@ Core Ethereum protocol methods for account queries, contract calls, block and tr Flashblocks methods provide preconfirmation-specific capabilities on Flashblocks endpoints. Use them when your app needs sub-second transaction status, filtered pending logs, preconfirmed transaction streams, or bundle simulation. - - Check whether a transaction has reached the mempool before it is sealed into an L2 block. + + Check if a transaction has reached the mempool before it seals into an L2 block. - - Subscribe to filtered logs from preconfirmed transactions. + + Subscribe to filtered event logs from preconfirmed transactions. - - Subscribe to individual preconfirmed transactions. + + Subscribe to individual transactions as they are preconfirmed. - - Subscribe to Flashblock payloads. Most apps should prefer higher-level RPC methods unless they need the raw payload shape. + + Subscribe to full Flashblock payloads for apps that need the raw block shape. @@ -117,11 +109,11 @@ Flashblocks methods provide preconfirmation-specific capabilities on Flashblocks Debug methods replay transactions and blocks for development and incident analysis. They are computationally expensive, so availability and rate limits vary by [RPC provider](/base-chain/network-information/rpc-providers). - - Inspect full EVM execution for a transaction. + + Full EVM execution trace for a single transaction. - - Replay all transactions in a block by number or hash. + + Replay and trace all transactions in a block by number or hash. diff --git a/docs/base-chain/network-information/ecosystem-contracts.mdx b/docs/base-chain/network-information/ecosystem-contracts.mdx new file mode 100644 index 000000000..b01df452c --- /dev/null +++ b/docs/base-chain/network-information/ecosystem-contracts.mdx @@ -0,0 +1,78 @@ +--- +title: 'Ecosystem Contracts' +--- + +This page lists contract addresses for onchain apps that we have deployed. + +## Base Mainnet + +### Multicall3 + +| Contract | Address | +| :--------- | :-------------------------------------------------------------------------------------------------------------------- | +| Multicall3 | [0xcA11bde05977b3631167028862bE2a173976CA11](https://basescan.org/address/0xcA11bde05977b3631167028862bE2a173976CA11) | + +### Uniswap v3 + +| Contract | Address | +| :----------------------------------- | :-------------------------------------------------------------------------------------------------------------------- | +| `Permit2` | [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://basescan.org/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) | +| `universal router` | [0x198EF79F1F515F02dFE9e3115eD9fC07183f02fC](https://basescan.org/address/0x198EF79F1F515F02dFE9e3115eD9fC07183f02fC) | +| `v3CoreFactory` | [0x33128a8fC17869897dcE68Ed026d694621f6FDfD](https://basescan.org/address/0x33128a8fC17869897dcE68Ed026d694621f6FDfD) | +| `multicall` | [0x091e99cb1C49331a94dD62755D168E941AbD0693](https://basescan.org/address/0x091e99cb1C49331a94dD62755D168E941AbD0693) | +| `proxyAdmin` | [0x3334d83e224aF5ef9C2E7DDA7c7C98Efd9621fA9](https://basescan.org/address/0x3334d83e224aF5ef9C2E7DDA7c7C98Efd9621fA9) | +| `tickLens` | [0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d](https://basescan.org/address/0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d) | +| `nftDescriptor` | [0xF9d1077fd35670d4ACbD27af82652a8d84577d9F](https://basescan.org/address/0xF9d1077fd35670d4ACbD27af82652a8d84577d9F) | +| `nonfungibleTokenPositionDescriptor` | [0x4f225937EDc33EFD6109c4ceF7b560B2D6401009](https://basescan.org/address/0x4f225937EDc33EFD6109c4ceF7b560B2D6401009) | +| `descriptorProxy` | [0x4615C383F85D0a2BbED973d83ccecf5CB7121463](https://basescan.org/address/0x4615C383F85D0a2BbED973d83ccecf5CB7121463) | +| `nonfungibleTokenPositionManager` | [0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1](https://basescan.org/address/0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1) | +| `v3Migrator` | [0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7](https://basescan.org/address/0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7) | +| `v3Staker` | [0x42bE4D6527829FeFA1493e1fb9F3676d2425C3C1](https://basescan.org/address/0x42bE4D6527829FeFA1493e1fb9F3676d2425C3C1) | +| `quoterV2` | [0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a](https://basescan.org/address/0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a) | +| `swapRouter` | [0x2626664c2603336E57B271c5C0b26F421741e481](https://basescan.org/address/0x2626664c2603336E57B271c5C0b26F421741e481) | + +### Uniswap v2 + +| Contract | Address | +| :-------- | :-------------------------------------------------------------------------------------------------------------------- | +| `Factory` | [0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6](https://basescan.org/address/0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6) | +| `Router` | [0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24](https://basescan.org/address/0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24) | + +## Base Testnet (Sepolia) + +### Multicall3 + +| Contract | Address | +| :--------- | :---------------------------------------------------------------------------------------------------------------------------- | +| Multicall3 | [0xcA11bde05977b3631167028862bE2a173976CA11](https://sepolia.basescan.org/address/0xcA11bde05977b3631167028862bE2a173976CA11) | + +### Uniswap v3 + +| Contract | Address | +| :----------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | +| `Permit2` | [0x000000000022d473030f116ddee9f6b43ac78ba3](https://sepolia.basescan.org/address/0x000000000022d473030f116ddee9f6b43ac78ba3) | +| `universal router` | [0x050E797f3625EC8785265e1d9BDd4799b97528A1](https://sepolia.basescan.org/address/0x050E797f3625EC8785265e1d9BDd4799b97528A1) | +| `v3CoreFactory` | [0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24](https://sepolia.basescan.org/address/0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24) | +| `multicall` | [0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1](https://sepolia.basescan.org/address/0xd867e273eAbD6c853fCd0Ca0bFB6a3aE6491d2C1) | +| `proxyAdmin` | [0xD7303474Baca835743B54D73799688990f24a79D](https://sepolia.basescan.org/address/0xD7303474Baca835743B54D73799688990f24a79D) | +| `tickLens` | [0xedf6066a2b290C185783862C7F4776A2C8077AD1](https://sepolia.basescan.org/address/0xedf6066a2b290C185783862C7F4776A2C8077AD1) | +| `nftDescriptor` | [0x4e0caFF1Df1cCd7CF782FDdeD77f020699B57f1a](https://sepolia.basescan.org/address/0x4e0caFF1Df1cCd7CF782FDdeD77f020699B57f1a) | +| `nonfungibleTokenPositionDescriptor` | [0xd7c6e867591608D32Fe476d0DbDc95d0cf584c8F](https://sepolia.basescan.org/address/0xd7c6e867591608D32Fe476d0DbDc95d0cf584c8F) | +| `nonfungibleTokenPositionManager` | [0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2](https://sepolia.basescan.org/address/0x27F971cb582BF9E50F397e4d29a5C7A34f11faA2) | +| `v3Migrator` | [0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10](https://sepolia.basescan.org/address/0xCbf8b7f80800bd4888Fbc7bf1713B80FE4E23E10) | +| `v3Staker` | [0x62725F55f50bdE240aCa3e740D47298CAc8d57D5](https://sepolia.basescan.org/address/0x62725F55f50bdE240aCa3e740D47298CAc8d57D5) | +| `quoterV2` | [0xC5290058841028F1614F3A6F0F5816cAd0df5E27](https://sepolia.basescan.org/address/0xC5290058841028F1614F3A6F0F5816cAd0df5E27) | +| `swapRouter` | [0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4](https://sepolia.basescan.org/address/0x94cC0AaC535CCDB3C01d6787D6413C739ae12bc4) | + +#### Testnet interfaces + + +Two community projects, [BaseX](https://basex-test.vercel.app/swap?currencyA=ETH¤cyB=0x036CbD53842c5426634e7929541eC2318f3dCF7e&focus=source) and [DapDap](https://testnet.base.dapdap.net/uniswap/swap), provide testnet interfaces for Uniswap contracts if you prefer to interact in the browser instead of with the contracts directly. + + +### Uniswap v2 + +| Contract | Address | +| :-------- | :---------------------------------------------------------------------------------------------------------------------------- | +| `Factory` | [0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e](https://sepolia.basescan.org/address/0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e) | +| `Router` | [0x1689E7B1F10000AE47eBfE339a4f69dECd19F602](https://sepolia.basescan.org/address/0x1689E7B1F10000AE47eBfE339a4f69dECd19F602) | diff --git a/docs/base-chain/network-information/throughput-and-limits.mdx b/docs/base-chain/network-information/throughput-and-limits.mdx index bdb3ca443..b87bada7a 100644 --- a/docs/base-chain/network-information/throughput-and-limits.mdx +++ b/docs/base-chain/network-information/throughput-and-limits.mdx @@ -45,4 +45,4 @@ Production systems should use a hosted [RPC Provider](/base-chain/network-inform ## Technical details -For protocol-level capacity rules, see the [Execution specification](/base-chain/specs/protocol/execution/index), the [Batcher specification](/base-chain/specs/protocol/batcher), and the current [upgrade specifications](/base-chain/specs/upgrades/azul/overview) where relevant. +For protocol-level capacity rules, see the [Execution specification](/base-chain/specs/protocol/execution/index), the [Batcher specification](/base-chain/specs/protocol/batcher), and the current [upgrade specifications](/base-chain/specs/upgrades/beryl/overview) where relevant. diff --git a/docs/base-chain/network-information/transaction-ordering.mdx b/docs/base-chain/network-information/transaction-ordering.mdx index 830672812..d37110a15 100644 --- a/docs/base-chain/network-information/transaction-ordering.mdx +++ b/docs/base-chain/network-information/transaction-ordering.mdx @@ -24,6 +24,20 @@ The sequencer receives signed transactions, validates them against current accou The Base sequencer produces Flashblocks every **200ms**, committing to transaction ordering incrementally while the next L2 block is being built. Flashblocks provide preconfirmation signals before the full L2 block seals. +| Term | Definition | +|------|------------| +| **Flashblock** | A 200ms sub-block containing a portion of the full block's transactions | +| **Preconfirmation** | A strong signal that a transaction will be included, before the full L2 block seals | +| **Full Block** | Ten Flashblocks combined to form the complete 2-second L2 block | + +| Metric | Value | +|--------|-------| +| Flashblock cadence | ~200ms | +| Flashblock build time (P50) | ~10ms | +| Full block time | 2 seconds | +| Flashblocks per block | 10 | +| Reorg rate | < 0.1% | + For how preconfirmed state is exposed to applications, see the [Base RPC Overview](/base-chain/api-reference/rpc-overview#flashblocks-behavior-matrix). For the protocol-level sequencer role, see the [Protocol Overview](/base-chain/specs/protocol/overview#sequencers). @@ -75,8 +89,8 @@ Base enforces a per-transaction gas maximum. Transactions that specify a gas lim | Network | Active per-transaction gas maximum | |---------|------------------------------------| -| Base Mainnet | 25,000,000 gas until Azul activates on May 28, 2026 at 18:00 UTC; 16,777,216 gas after activation | -| Base Sepolia | 16,777,216 gas, active since April 20, 2026 at 18:00 UTC | +| Base Mainnet | 16,777,216 gas (2^24), active since Azul (May 28, 2026 at 18:00 UTC) | +| Base Sepolia | 16,777,216 gas (2^24), active since Azul (April 20, 2026 at 18:00 UTC) | For the Azul protocol change that enforces the 16,777,216 gas cap, see the [Azul execution engine specification](/base-chain/specs/upgrades/azul/exec-engine#transaction-gas-limit-cap). @@ -104,7 +118,45 @@ Infrastructure providers should: ## Client support -Azul requires Base-native clients. For operator migration guidance and supported client combinations, see [Base Azul Upgrade](/base-chain/node-operators/base-v1-upgrade) and [Run a Base Node](/base-chain/node-operators/run-a-base-node#supported-client-combinations). +Base uses `base-reth-node` (EL) and `base-consensus` (CL). For setup instructions, see [Run a Base Node](/base-chain/node-operators/run-a-base-node). + +## FAQ + + +All Base blocks are built by the Flashblocks builder — Flashblocks are always live. Apps may choose not to rely on preconfirmations and can continue using standard RPCs without any Flashblocks integration. + + + +The sequencer will not stop publishing Flashblocks unless an extreme circumstance makes running them unsafe. If this happens, preconfirmations are disabled network-wide and confirmations fall back to standard 2-second blocks. The sequencer continues operating normally. + + + +The builder uses an incremental mempool that continuously accepts new transactions while building each Flashblock. Transactions are ordered by fee *at the time they are selected*, not globally across all transactions that arrive during the full 2-second block interval. A later-arriving high-fee transaction may appear after an already-committed lower-fee transaction. This is a deliberate tradeoff — faster inclusion at the cost of occasionally breaking strict priority-gas-auction ordering within a Flashblock. + + + +Base targets a reorg rate of less than 0.1%. A reorg means a transaction appeared in a Flashblock preconfirmation but was not included in the final sealed block. While rare, applications should implement fallback logic for critical operations. Current metrics are available at [base.org/stats](https://base.org/stats). + + + +Flashblock 1 can only use 1/10 of the block gas limit. Transactions with large gas limits must wait for a later Flashblock where enough cumulative capacity exists. To maximize chances of early inclusion, keep individual transaction gas limits under 1/10 of the block gas limit. + + + +No significant differences — both order transactions by fee. The main difference is timing: Flashblocks occur every 200ms instead of every 2 seconds. + + + +Index 0 contains only system transactions and does not use any gas limit. Indexes 1–10 are the actual Flashblocks that pull pending transactions from the mempool. + + + +This is expected. When the previous block takes longer to build, the system compensates by allocating less time to the next block, resulting in fewer Flashblocks. + + + +No, it is not a bug. Seeing indices of 11 or higher is expected behavior caused by sequencer timing drift or slight delays in block finalization. Do not hardcode 10 as the final index — use `payloadId` changes or standard RPC block confirmation as the signal that the block has advanced. + ## Related references diff --git a/docs/base-chain/network-information/troubleshooting-transactions.mdx b/docs/base-chain/network-information/troubleshooting-transactions.mdx index 17f964e2f..0477c2cd2 100644 --- a/docs/base-chain/network-information/troubleshooting-transactions.mdx +++ b/docs/base-chain/network-information/troubleshooting-transactions.mdx @@ -50,7 +50,7 @@ If you submit a transaction with a nonce that has already been used, it will be ### Gas Limit Exceeds Maximum -Base enforces a [per-transaction gas maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum). The active cap is network- and activation-dependent: Base Sepolia uses 16,777,216 gas, while Base Mainnet uses 25,000,000 gas until Azul activates on May 28, 2026 at 18:00 UTC and 16,777,216 gas after activation. Transactions specifying a higher gas limit are rejected by the mempool before inclusion. +Base enforces a [per-transaction gas maximum](/base-chain/network-information/transaction-ordering#per-transaction-gas-maximum) of **16,777,216 gas (2^24)** on both Mainnet and Sepolia. Transactions specifying a higher gas limit are rejected by the mempool before inclusion. **Error**: `exceeds maximum per-transaction gas limit` @@ -91,6 +91,14 @@ These endpoints return transaction receipts as soon as a transaction is included If a transaction appears on a Flashblocks-aware endpoint but not yet on a standard RPC endpoint, continue polling the standard endpoint before treating it as a regular L2 block inclusion. If neither endpoint returns a receipt, continue with the fee, nonce, and gas-limit checks above. +### eth_call with `pending` reports a block number behind tip + +This is expected behavior. Flashblocks-aware nodes store up to 5 historical blocks worth of Flashblocks state to prevent race conditions. When `eth_call "pending"` is called, it operates on top of that historical base, so `block.number` may appear several blocks behind the current chain tip. The call result is correct — it reflects all received Flashblocks state applied on top — but contracts that rely on `block.number`, `block.timestamp`, or `block.basefee` should account for this offset. + +### Preconfirmation Reorgs + +A Flashblock reorg means a transaction appeared in a preconfirmation but was not included in the final sealed block. This is rare (Base targets less than 0.1%) but can happen. If your app displayed optimistic state based on a preconfirmation that was then reorged, reconcile against the sealed block and update accordingly. Treat preconfirmations as strong signals, not guarantees. + ## Debugging Tools - **[Basescan](https://basescan.org)**: View transaction status, logs, and revert reasons diff --git a/docs/base-chain/node-operators/run-a-base-node.mdx b/docs/base-chain/node-operators/run-a-base-node.mdx index c576d8eb0..b8be490de 100644 --- a/docs/base-chain/node-operators/run-a-base-node.mdx +++ b/docs/base-chain/node-operators/run-a-base-node.mdx @@ -63,17 +63,6 @@ This tutorial assumes you are familiar with [Docker](https://www.docker.com/) an You'll need your own L1 RPC URL. This can be one that you run yourself, or via a third-party provider, such as our [partners](/base-chain/network-information/rpc-providers). -### Supported Client Combinations - -| Network | Activation status | Supported execution client | Supported consensus client | Env-var family | Sync RPC | -|---------|-------------------|----------------------------|----------------------------|----------------|----------| -| Base Mainnet | Azul activates May 28, 2026 18:00 UTC | `base-reth-node` v0.8.0+ after activation | `base-consensus` v0.8.0+ after activation | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | -| Base Sepolia | Azul activated April 20, 2026 18:00 UTC | `base-reth-node` v0.8.0+ | `base-consensus` v0.8.0+ | `BASE_NODE_*` | `optimism_syncStatus` on `BASE_NODE_RPC_PORT` | - - -Use supported Base-native client combinations for Azul. The `CLIENT=geth` + `BASE_CONSENSUS=true` combination crash-loops in v0.15.5 and should not be used. - - ## Running a Node 1. Clone the [repo](https://github.com/base/node). diff --git a/docs/base-chain/specs/overview.mdx b/docs/base-chain/specs/overview.mdx index 6d4b55f61..af94ac9ca 100644 --- a/docs/base-chain/specs/overview.mdx +++ b/docs/base-chain/specs/overview.mdx @@ -24,4 +24,4 @@ Our aim is to design a protocol specification that is: ## Lineage Base Chain inherits Ethereum's EVM semantics, transaction rules, and L1-anchored security. It was -originally built on the [OP Stack](https://specs.optimism.io). After the Jovian Hardfork, Base Chain follows this specification. +originally built on the [OP Stack](https://specs.optimism.io). After the [Azul hardfork](/base-chain/specs/upgrades/azul/overview), Base Chain runs on the Base Stack and follows this specification. diff --git a/docs/base-chain/specs/protocol/overview.mdx b/docs/base-chain/specs/protocol/overview.mdx index 34320c3d4..8e744cbce 100644 --- a/docs/base-chain/specs/protocol/overview.mdx +++ b/docs/base-chain/specs/protocol/overview.mdx @@ -9,8 +9,7 @@ protocol components and the core user flows. Some implementation names in the protocol specifications, such as `op-node`, `op-geth`, and `op-program`, are inherited OP Stack protocol or reference terminology. Current Base operator guidance -uses `base-consensus` and `base-reth-node`; see [Run a Node](/base-chain/node-operators/run-a-base-node) -and the [Azul upgrade guide](/base-chain/node-operators/base-v1-upgrade). +uses `base-consensus` and `base-reth-node`; see [Run a Node](/base-chain/node-operators/run-a-base-node). ## Network Participants diff --git a/docs/docs.json b/docs/docs.json index 3da808bad..6d5359b2b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -143,7 +143,6 @@ "group": "Node Operators", "pages": [ "base-chain/node-operators/run-a-base-node", - "base-chain/node-operators/base-v1-upgrade", "base-chain/node-operators/performance-tuning", "base-chain/node-operators/snapshots", "base-chain/node-operators/troubleshooting" diff --git a/docs/snippets/base-networks.mdx b/docs/snippets/base-networks.mdx index 065d7b909..f186f7b25 100644 --- a/docs/snippets/base-networks.mdx +++ b/docs/snippets/base-networks.mdx @@ -1,7 +1,7 @@ -| Network | Chain ID | Standard RPC | Standard WSS | Flashblocks RPC | Flashblocks WSS | Explorer | -| :--- | :--- | :--- | :--- | :--- | :--- | :--- | -| Base Mainnet | `8453` | `https://mainnet.base.org` | `wss://mainnet.base.org` | `https://mainnet-preconf.base.org` | `wss://mainnet-preconf.base.org` | [BaseScan](https://basescan.org) | -| Base Sepolia | `84532` | `https://sepolia.base.org` | `wss://sepolia.base.org` | `https://sepolia-preconf.base.org` | `wss://sepolia-preconf.base.org` | [BaseScan Sepolia](https://sepolia.basescan.org) | +| Network | Chain ID | RPC | Explorer | +| :--- | :--- | :--- | :--- | +| Base Mainnet | `8453` | `https://mainnet.base.org` | [BaseScan](https://basescan.org) | +| Base Sepolia | `84532` | `https://sepolia.base.org` | [BaseScan Sepolia](https://sepolia.basescan.org) | Public RPC and Flashblocks RPC endpoints are rate-limited and are not suitable for production traffic. For production systems, use an [RPC provider](/base-chain/network-information/rpc-providers) or [run your own Base node](/base-chain/node-operators/run-a-base-node). For more explorer options, see the [block explorer catalog](/get-started/block-explorers).