diff --git a/cspell.json b/cspell.json index 61daf8c..e1c4ca7 100644 --- a/cspell.json +++ b/cspell.json @@ -47,6 +47,8 @@ "ethersproject", "fdir", "fintech", + "FLASHBLOCKS", + "Flashblocks", "gatekept", "getenv", "gigagas", diff --git a/world-chain/developers/deploy.mdx b/world-chain/developers/deploy.mdx index 2cded5c..3302836 100644 --- a/world-chain/developers/deploy.mdx +++ b/world-chain/developers/deploy.mdx @@ -172,11 +172,12 @@ Now that you have a wallet and you funded it with World Chain Sepolia ETH, you c ```bash Deploy the contract forge create src/HelloWorldChain.sol:HelloWorldChain \ --rpc-url https://worldchain-sepolia.g.alchemy.com/public \ - --private-key 0xcc1b30a6af68ea9a9917f1dda20c927704c5cdb2bbe0076901a8a0e40bf997c5 + --private-key 0xcc1b30a6af68ea9a9917f1dda20c927704c5cdb2bbe0076901a8a0e40bf997c5 \ + --broadcast ``` Here, we are using the `:` format to specify the contract. This tells Foundry where to find the contract file (`src/HelloWorldChain.sol`) and which contract within the file (HelloWorldChain) to deploy. -We also use the `--rpc-url` flag to specify the RPC URL of the World Chain Sepolia network and the `--private-key` flag to specify the private key of the wallet we generated earlier. +We also use the `--rpc-url` flag to specify the RPC URL of the World Chain Sepolia network and the `--private-key` flag to specify the private key of the wallet we generated earlier. The `--broadcast` flag is required because current versions of Foundry default `forge create` to a dry run. On top of this we can also provide other flags like `-vvvvv` to get more verbose output from the deployment process, `--verify` to verify the contract on [Worldscan](https://worldscan.org) or [Blockscout](https://worldchain-sepolia.explorer.alchemy.com/) (alongside with an `--etherscan-api-key` flag) and several other flags to toggle different features that you can find more about in the [Foundry documentation](https://book.getfoundry.sh/). diff --git a/world-chain/developers/evm-equivalence.mdx b/world-chain/developers/evm-equivalence.mdx index 2b24a4f..43f6c16 100644 --- a/world-chain/developers/evm-equivalence.mdx +++ b/world-chain/developers/evm-equivalence.mdx @@ -17,6 +17,8 @@ ensuring a flexible yet consistent environment for developers and users alike. Though the EVM remains unchanged across OP Stack (Superchain) chains compared to the Ethereum layer 1, there are some configurations of the execution clients that do differ. +Values below were checked on September 22, 2026 and can change. For current OP Stack parameters, read the latest block's `gasLimit` and decode its `extraData` using the [block header specification](https://specs.optimism.io/protocol/jovian/exec-engine.html). The Superchain Registry records genesis and fork settings, which may differ from the current configuration. + @@ -35,45 +37,47 @@ do differ. - - - + + + - - - + + + - - + + - + - - + + - - + +
Block gas limit30,000,00030,000,00030,000,000280,000,00040,000,000~60,000,000
Block gas target10,000,0005,000,00015,000,00012,727,272 (280,000,000 / 22, rounded down)20,000,000~30,000,000
EIP-1559 elasticity multiplier66222 2
EIP-1559 denominator250100 250 8
- Maximum base fee increase (per block) + Nominal maximum base fee increase (per block) 0.8%2%~21%~0.4% 12.5%
- Maximum base fee decrease (per block) + Nominal maximum base fee decrease (per block) 0.4%0.4%~1%~0.4% 12.5%
+Fee changes are subject to integer rounding and the configured minimum base fee. World Chain's current minimum is 500,000 wei; the base fee cannot decrease below it. + For more information check out the [OP Stack docs](https://docs.optimism.io/stack/getting-started). diff --git a/world-chain/developers/fees.mdx b/world-chain/developers/fees.mdx index 6669ea9..91bd919 100644 --- a/world-chain/developers/fees.mdx +++ b/world-chain/developers/fees.mdx @@ -5,9 +5,9 @@ description: "Understand World Chain fees: L2 execution vs L1 security costs, va "twitter:image": "https://raw.githubusercontent.com/worldcoin/developer-docs/main/images/docs/docs-meta.png" --- -Every World Chain transaction consists of two costs: an L2 (execution) fee and an L1 (security) fee. The L2 fee is the cost to execute your transaction on the L2, while the L1 fee covers the estimated cost of publishing the transaction on the L1. Typically, the L1 security fee is higher than the L2 execution fee. +Every World Chain transaction consists of two costs: an L2 (execution) fee and an L1 (security) fee. The L2 fee is the cost to execute your transaction on the L2, while the L1 fee covers the estimated cost of publishing the transaction on the L1. The relative size of each fee shifts over time with L1 data-posting costs and L2 usage; on World Chain, the L2 execution fee is typically the larger of the two because the L2 base fee has a [configured minimum](/world-chain/developers/evm-equivalence). -The L1 fee fluctuates depending on the volume of transactions on the L1. If your transaction timing is flexible, you can save on costs by submitting during periods of lower gas fees on the L1 (for example, weekends) or using products like [GasHawk](https://gashawk.io/) which schedule transactions during periods of low demand. +The L1 fee fluctuates depending on the volume of transactions on the L1. If your transaction timing is flexible, you can save on costs by submitting during periods of lower gas fees on the L1 (for example, weekends) or using transaction-scheduling products which submit during periods of low demand. Similarly, the L2 fee can vary based on the number of transactions submitted to the L2. This dynamic adjustment works similarly to the L1; you can learn more about it [here](https://blog.thirdweb.com/eip-1559-ethereum-gas-fees/). diff --git a/world-chain/developers/grants.mdx b/world-chain/developers/grants.mdx index 47c4325..db7b030 100644 --- a/world-chain/developers/grants.mdx +++ b/world-chain/developers/grants.mdx @@ -13,8 +13,8 @@ you can read the [Continuous Grants program announcement blogpost](https://world ## Areas of interest for applications - Rustification of the [OP Stack](https://docs.optimism.io/stack/getting-started) -- Furthering [the gigagas roadmap](https://www.google.com/url?q=https://www.paradigm.xyz/2024/04/reth-perf&sa=D&source=editors&ust=1726507097184499&usg=AOvVaw34fUyrLcoigheJlrfbIDM2) -- ZK-ifying the OP Stack (efforts like [OP Succinct](https://blog.succinct.xyz/op-succinct/), [Zeth from Risc0](https://risczero.com/blog/zeth-release) and [Mina's ZK fault proof RFP]()) +- Furthering [the gigagas roadmap](https://www.paradigm.xyz/writing/reth-perf) +- ZK-ifying the OP Stack (efforts like [OP Succinct](https://blog.succinct.xyz/op-succinct/), Zeth from Risc0 and Mina's ZK fault proof RFP) - Scalability research and engineering (can be Ethereum core as well) - Embedding priority blockspace for humans into the OP Stack derivation pipeline + fault proof program (open R&D) - Separate eip1559 fee market for humans on OP Stack diff --git a/world-chain/developers/template.mdx b/world-chain/developers/template.mdx index b0be356..3d59505 100644 --- a/world-chain/developers/template.mdx +++ b/world-chain/developers/template.mdx @@ -16,7 +16,7 @@ Before we start, make sure you have the following tools installed: - [Git](https://git-scm.com/) (usually pre-installed on most systems) - [Node.js](https://nodejs.org/en/) -- [pnpm](https://yarnpkg.com/) (or equivalent like npm, yarn or bun) +- [pnpm](https://pnpm.io/) (or equivalent like npm, yarn or bun) - [Foundry CLI](https://book.getfoundry.sh/) ## Clone template @@ -168,15 +168,15 @@ We also need to set three important environment variables that are required for - `NEXT_PUBLIC_APP_ID`: The app ID that was generated in the [Developer Portal](https://developer.worldcoin.org/login) - `NEXT_PUBLIC_ACTION`: The action ID as configured in the [Developer Portal](https://developer.worldcoin.org/login) -Once the fork is running, you can deploy the World ID template app to the World Chain Sepolia network using the Foundry CLI: +Once the fork is running, you can deploy the World ID template app to your local World Chain Sepolia fork using the Foundry CLI: ```bash # cd into the contracts directory cd contracts -forge create --rpc-url http://localhost:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 src/Contract.sol:Contract --constructor-args $WORLD_ID_ROUTER $NEXT_PUBLIC_APP_ID $NEXT_PUBLIC_ACTION +forge create --rpc-url http://localhost:8545 --private-key 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --broadcast src/Contract.sol:Contract --constructor-args $WORLD_ID_ROUTER $NEXT_PUBLIC_APP_ID $NEXT_PUBLIC_ACTION ``` -This command will deploy the `Contract` contract to the World Chain Sepolia network using the provided RPC URL and private key. +This command will deploy the `Contract` contract to your local World Chain Sepolia fork using the provided RPC URL and private key. The `--broadcast` flag is required because current versions of Foundry default `forge create` to a dry run. ## Local Web Setup diff --git a/world-chain/developers/world-chain-contracts.mdx b/world-chain/developers/world-chain-contracts.mdx index 281ec09..82772c9 100644 --- a/world-chain/developers/world-chain-contracts.mdx +++ b/world-chain/developers/world-chain-contracts.mdx @@ -63,7 +63,7 @@ title: "World Chain Contracts" [`0x420000000000000000000000000000000000001A`](https://worldscan.org/address/0x420000000000000000000000000000000000001A) - GovernanceToken + GovernanceToken (unused OP Stack predeploy, not WLD governance; despite its `OP` symbol, tokens at this address are not OP or WLD) [`0x4200000000000000000000000000000000000042`](https://worldscan.org/address/0x4200000000000000000000000000000000000042) @@ -230,7 +230,7 @@ title: "World Chain Contracts" [`0x420000000000000000000000000000000000001A`](https://worldchain-sepolia.explorer.alchemy.com/address/0x420000000000000000000000000000000000001A) - GovernanceToken + GovernanceToken (unused OP Stack predeploy, not WLD governance; despite its `OP` symbol, tokens at this address are not OP or WLD) [`0x4200000000000000000000000000000000000042`](https://worldchain-sepolia.explorer.alchemy.com/address/0x4200000000000000000000000000000000000042) diff --git a/world-chain/providers/bridges.mdx b/world-chain/providers/bridges.mdx index 9d3231d..7ac2c88 100644 --- a/world-chain/providers/bridges.mdx +++ b/world-chain/providers/bridges.mdx @@ -37,7 +37,7 @@ The next best method is to use the native Superchain bridge for which both Alche ### Synapse -[Synapse](https://synapseprotocol.com/) is a cross-chain communication protocol that enables seamless asset transfers and messaging across different blockchain networks. It provides a secure and efficient infrastructure for interoperability, allowing users to move tokens and data between various chains without the need for centralized intermediaries. +[Synapse](https://hypercall.xyz/synapse) is a cross-chain communication protocol that enables seamless asset transfers and messaging across different blockchain networks. It provides a secure and efficient infrastructure for interoperability, allowing users to move tokens and data between various chains without the need for centralized intermediaries. ### Hyperlane @@ -58,9 +58,3 @@ You can see World Chain-specific documentation for CCIP [here](https://docs.chai ### Thirdweb Universal Bridge Thirdweb's [Universal Bridge](https://portal.thirdweb.com/connect/pay/overview) is a comprehensive Web3 payment solution that allows your users to onramp, bridge, and swap on any EVM chain — with any EVM token or fiat — thanks to its automatic cross-chain routing. - -## Liquidity Layers - -### Cortex Protocol - -[Cortex Protocol](https://cortexprotocol.com/) is a decentralized, non-custodial liquidity protocol built on Ethereum that enables users to lend and borrow crypto assets. The protocol is designed to provide a secure and efficient platform for decentralized finance (DeFi) activities. \ No newline at end of file diff --git a/world-chain/providers/data.mdx b/world-chain/providers/data.mdx index 64078e7..e99788b 100644 --- a/world-chain/providers/data.mdx +++ b/world-chain/providers/data.mdx @@ -53,11 +53,11 @@ For more data on [World](https://world.org/) and [World Chain](https://world.org - World Chain -## GoldSky Subgraphs +## [GoldSky](https://goldsky.com/) Subgraphs GoldSky Subgraphs is a data indexing service designed to simplify querying blockchain data. It provides developers with scalable, customizable subgraphs for efficiently indexing and retrieving on-chain data from various blockchain networks. GoldSky streamlines data access for decentralized applications (dApps), - offering a user-friendly interface and advanced APIs that help developers query blockchain data faster and more accurately. + offering a user-friendly interface and advanced APIs that help developers query blockchain data faster and more accurately. See the [GoldSky docs](https://docs.goldsky.com/) for more information. ### Supported networks diff --git a/world-chain/providers/developer-tooling.mdx b/world-chain/providers/developer-tooling.mdx index 2bbe2a8..393f3c7 100644 --- a/world-chain/providers/developer-tooling.mdx +++ b/world-chain/providers/developer-tooling.mdx @@ -18,14 +18,6 @@ Alchemy provides a suite of data tools to make it easy to build on World Chain: - World Chain - World Chain Sepolia -## Blocknative - -[Blocknative's Gas Price API](https://docs.blocknative.com/gas-prediction/gas-platform) predicts next-block gas prices. - -### Supported networks - -- World Chain - ## QuickNode Access comprehensive developer tools built for World Chain: diff --git a/world-chain/providers/explorers.mdx b/world-chain/providers/explorers.mdx index 0cfc4d7..84d2a1c 100644 --- a/world-chain/providers/explorers.mdx +++ b/world-chain/providers/explorers.mdx @@ -12,13 +12,6 @@ Blockscout is a comprehensive, open-source blockchain explorer designed for insp A testnet explorer is also available for [World Chain Sepolia](https://worldchain-sepolia.explorer.alchemy.com/). -## Dora - -[Dora](https://www.ondora.xyz/network/worldchain/interactions) is an advanced multi-chain block explorer and unified search engine designed for the evolving blockchain ecosystem. -It offers users the ability to search and interact with data across more than 10 different networks, including World Chain. - -It is an innovative blockchain explorer and search engine designed for the multichain and multi-VM world. - ## Worldscan (Etherscan) [Worldscan](https://worldscan.org) (provided by [Etherscan](https://etherscan.io)) is a comprehensive blockchain explorer and analytics platform specifically designed for the World Chain network. diff --git a/world-chain/providers/oracles.mdx b/world-chain/providers/oracles.mdx index a4442ee..f71cc51 100644 --- a/world-chain/providers/oracles.mdx +++ b/world-chain/providers/oracles.mdx @@ -20,7 +20,7 @@ You can enable any of Api3's data feeds on World Chain using the [Api3 Market](h [Chainlink Data Streams](https://chain.link/) delivers low-latency market data offchain, which you can verify onchain. -You can find documentation for Chainlink Data Streams Direct [here](https://docs.chain.link/data-streams/streams-direct). +You can find documentation for Chainlink Data Streams [here](https://docs.chain.link/data-streams). ### Supported networks diff --git a/world-chain/quick-start/info.mdx b/world-chain/quick-start/info.mdx index b050b00..be22376 100644 --- a/world-chain/quick-start/info.mdx +++ b/world-chain/quick-start/info.mdx @@ -45,11 +45,11 @@ description: "World Chain network configuration and technical details" Gas Limit - 80M + 280M Gas Target - 40M + 12,727,272 (280M / 22, rounded down) Block Time @@ -131,6 +131,24 @@ description: "World Chain network configuration and technical details" 1738238400 (Thu 30 Jan 2025 12:00:00 UTC) + + Isthmus + + 1764072000 (Tue 25 Nov 2025 12:00:00 UTC) + + + + Jovian + + 1777593600 (Fri 1 May 2026 00:00:00 UTC) + + + + Karst + + 1789992000 (Mon 21 Sep 2026 12:00:00 UTC) + + @@ -174,11 +192,11 @@ description: "World Chain network configuration and technical details" Gas Limit - 30M + 480M Gas Target - 15M + 48M Block Time @@ -270,5 +288,23 @@ description: "World Chain network configuration and technical details" 1742486400 (Thu 20 Mar 2025 16:00:00 UTC) + + Isthmus + + 1761825600 (Thu 30 Oct 2025 12:00:00 UTC) + + + + Jovian + + 1777161600 (Sun 26 Apr 2026 00:00:00 UTC) + + + + Karst + + 1788868800 (Tue 8 Sep 2026 12:00:00 UTC) + + diff --git a/world-chain/reference/node-setup.mdx b/world-chain/reference/node-setup.mdx index d63c8aa..877dcba 100644 --- a/world-chain/reference/node-setup.mdx +++ b/world-chain/reference/node-setup.mdx @@ -16,11 +16,7 @@ World Chain mainnet and testnet run on the OP Stack as part of the Superchain. W ## Using `simple-worldchain-node` -`simple-worldchain-node` supports World Chain Mainnet and Sepolia, full nodes and archive nodes, and two execution clients: [op-geth](https://github.com/ethereum-optimism/op-geth) and [op-reth](https://github.com/paradigmxyz/reth). - - - World Chain archive node snapshots for `op-geth` are available from Bware Labs [here](https://bwarelabs.com/snapshots/worldchain). - +`simple-worldchain-node` supports World Chain Mainnet and Sepolia, and archive, full, and minimal node types, running the `world-chain` client (a customized extension of [op-reth](https://github.com/paradigmxyz/reth)). ### Installation @@ -46,12 +42,8 @@ Open your `.env` file in an editor of your choice. The following values must be Used to select which network the node connects to, either `worldchain-mainnet` or `worldchain-sepolia`. - - Used to select your execution client, either `geth` (default) or `reth` (recommended for archive nodes). - - - - When using `op-geth`, determines which type of node to run. Either `full` (less storage, but only recent history) or `archive` (more storage, all history). + + Determines which type of node to run: `archive` (more storage, all history), `full` (less storage, only recent history), or `minimal` (smallest storage footprint). @@ -63,15 +55,15 @@ Open your `.env` file in an editor of your choice. The following values must be - Selects which RPC provider is set in `OP_NODE__RPC_ENDPOINT`. This allows for more efficient syncing given different RPC capabilities. Choose from `alchemy`, `quicknode`, `erigon`, or `basic` for other RPC providers. + Selects which RPC provider is set in `L1_RPC_ENDPOINT`. This allows for more efficient syncing given different RPC capabilities. Choose from `alchemy`, `quicknode`, `erigon`, or `basic` for other RPC providers. - - Selects whether `op-geth` will use snap sync or full sync. Defaults to `snap` for non-archival nodes and `full` for archive nodes. + + Enables Flashblocks support for faster block propagation. Defaults to `true`. - - Selects whether `op-geth` uses hash-based or path-based storage. As of `op-geth` v1.101602.0, path-based storage is supported for archive nodes and is enabled by default, leading to lower disk usage. The `eth_getProof` RPC method is not supported when using path-based storage. + + Downloads a snapshot to speed up initial sync when the data directory is empty. Defaults to `true`; set to `false` to sync from genesis instead (not recommended). For details on additional settings, see the `simple-worldchain-node` [README](https://github.com/worldcoin-foundation/simple-worldchain-node?tab=readme-ov-file#optional-configurations). @@ -98,14 +90,11 @@ docker compose down ### Monitoring your node -A Grafana dashboard is included to monitor your node. Access it by visiting http://localhost:3000 and logging in with these credentials: - -- Username: `admin` -- Password: `worldchain` +A Grafana dashboard is included to monitor your node. Access it by visiting http://localhost:3000 — anonymous access is enabled by default, so no login is required. ### Upgrading your Node -When new versions of `op-geth`, `op-reth`, or `op-node` are released, we will update the `simple-worldchain-node` repository to use these new versions. You can then update your node to use these versions with the following commands: +When new versions of `world-chain` or `op-node` are released, we will update the `simple-worldchain-node` repository to use these new versions. You can then update your node to use these versions with the following commands: ```bash git pull diff --git a/world-chain/reference/useful-contracts.mdx b/world-chain/reference/useful-contracts.mdx index 0a84d62..3685498 100644 --- a/world-chain/reference/useful-contracts.mdx +++ b/world-chain/reference/useful-contracts.mdx @@ -59,7 +59,7 @@ title: "Useful Contract Deployments" ## World ID -You can find the World ID Address Book for all chains [here](https://docs.world.org/world-id/reference/address-book). +See the [World ID on-chain verification guide](/world-id/idkit/onchain-verification) for deployments across supported chains, and the [Address Book reference](/mini-apps/reference/address-book) for `WorldIDAddressBook`. @@ -176,12 +176,6 @@ You can find the World ID Address Book for all chains [here](https://docs.world. [`0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226`](https://worldscan.org/address/0x75cf11467937ce3F2f357CE24ffc3DBF8fD5c226) - - - -
AddModules Helper - [`0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67`](https://worldscan.org/address/0x4e1DCf7AD4e460CfD30791CCC4F9c8a4f820ec67) -
@@ -210,7 +204,7 @@ You can find the World ID Address Book for all chains [here](https://docs.world. - AddModules Helper + SwapRouter02 [`0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6`](https://worldscan.org/address/0x091AD9e2e6e5eD44c1c66dB50e49A601F9f36cF6) diff --git a/world-chain/tokens/superchain-token.mdx b/world-chain/tokens/superchain-token.mdx index 2dbee21..b8fe425 100644 --- a/world-chain/tokens/superchain-token.mdx +++ b/world-chain/tokens/superchain-token.mdx @@ -10,12 +10,12 @@ title: "Superchain Token Bridging (Coming Soon)" The [Superchain token bridging standard](https://github.com/ethereum-optimism/specs/blob/main/specs/interop/token-bridging.md) (`SuperchainERC20`) is a set of properties and an interface designed to enable ERC20 tokens -to be fungible across the Superchain using the official `SuperchainERC20Bridge`. This standard builds -upon the existing [ERC20 token standard](https://docs.openzeppelin.com/contracts/4.x/erc20) and implements the `ICrosschainERC20` interface, which includes -two key properties: only allowing the `SuperchainERC20Bridge` to call `crosschainMint` and `crosschainBurn` functions, +to be fungible across the Superchain using the official `SuperchainTokenBridge`. This standard builds +upon the existing [ERC20 token standard](https://docs.openzeppelin.com/contracts/4.x/erc20) and implements the `IERC7802` interface, which includes +two key properties: allowing the `SuperchainTokenBridge` to call `crosschainMint` and `crosschainBurn` functions (other callers may also be allowed), and ensuring the token is deployed at the same address on every chain in the Superchain. -The `SuperchainERC20Bridge` is a predeploy that works as an abstraction on top of the `L2ToL2CrossDomainMessenger` for token bridging. +The `SuperchainTokenBridge` is a predeploy that works as an abstraction on top of the `L2ToL2CrossDomainMessenger` for token bridging. It includes two main functions: `sendERC20`, which initiates a cross-chain transfer by burning tokens locally and sending a message to the target chain, and `relayERC20`, which processes incoming messages and mints the corresponding amount of tokens on the destination chain. This bridge utilizes the `L2ToL2CrossDomainMessenger` for replay protection, domain binding, and access to additional message information.