@@ -46,9 +48,9 @@ const anchorHash = anchor.replace(/\s+/g, "-")
border-radius: 27px;
border: 1px solid #dadada;
overflow: hidden;
- color: var(--color-text-primary);
font-weight: 600;
padding-left: 0.3rem;
+ @apply text-black dark:text-white border-primary dark:border-dark-primary;
}
details:hover {
@@ -89,7 +91,6 @@ const anchorHash = anchor.replace(/\s+/g, "-")
}
summary::before {
- content: "";
display: inline-block;
font-size: 0.75em;
transform: rotate(-90deg);
@@ -97,8 +98,9 @@ const anchorHash = anchor.replace(/\s+/g, "-")
margin-right: 1rem;
height: 10px;
width: 10px;
- background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEwIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGlkPSJWZWN0b3IiIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNC45OTk3NiA2QzQuNzY4MSA2IDQuNTUwMjkgNS45MDc3NCA0LjM4NjQ0IDUuNzQwMTlMMC4yNTM0NTEgMS41MTM4N0MtMC4wODQ0ODM2IDEuMTY4MDIgLTAuMDg0NDgzNiAwLjYwNTY2IDAuMjUzNDUxIDAuMjU5ODExQzAuNDE3Mjk4IDAuMDkyMjY0MiAwLjYzNTExNSAwIDAuODY2NzcgMEMxLjA5ODQzIDAgMS4zMTYyNCAwLjA5MjI2NDIgMS40ODAwOSAwLjI1OTgxMUw1LjAwMDAzIDMuODU5MjVMOC41MTk3IDAuMjU5ODExQzguNjgzNTUgMC4wOTIyNjQyIDguOTAxMzcgMCA5LjEzMzAyIDBDOS4zNjQ2OCAwIDkuNTgyNDkgMC4wOTIyNjQyIDkuNzQ2MzQgMC4yNTk4MTFDMTAuMDg0NiAwLjYwNTY2IDEwLjA4NDYgMS4xNjgzIDkuNzQ2MzQgMS41MTM4N0w1LjYxMzM1IDUuNzQwMTlDNS40NDk1MSA1LjkwNzc0IDUuMjMxNjkgNiA1LjAwMDAzIDZINC45OTk3NloiIGZpbGw9ImJsYWNrIi8+Cjwvc3ZnPgo=)
- center / contain no-repeat;
+ background-position: center;
+ background-size: contain;
+ background-repeat: no-repeat;
}
details[open] summary::before {
transform: rotate(0deg);
diff --git a/src/config/sidebar.ts b/src/config/sidebar.ts
index dff7ea04d..87984c775 100644
--- a/src/config/sidebar.ts
+++ b/src/config/sidebar.ts
@@ -40,9 +40,19 @@ export const getSidebar = () => {
},
{
title: t("sidebar.gettingStarted.scrollSepoliaBlockExplorer"),
- url: "https://sepolia-blockscout.scroll.io/",
+ url: "https://sepolia.scrollscan.com/",
},
{ title: t("sidebar.gettingStarted.sepoliaBlockExplorer"), url: "https://sepolia.etherscan.io/" },
+ { title: t("sidebar.gettingStarted.rollupExplorer"), url: "https://sepolia.scroll.io/rollupscan" },
+ ],
+ },
+ {
+ section: t("sidebar.gettingStarted.scrollMainnet"),
+ contents: [
+ {
+ title: t("sidebar.gettingStarted.scrollscan"),
+ url: "https://scrollscan.com/",
+ },
{ title: t("sidebar.gettingStarted.rollupExplorer"), url: "https://scroll.io/rollupscan" },
],
},
@@ -154,11 +164,17 @@ export const getSidebar = () => {
],
},
{
- section: t("sidebar.developers.resources"),
+ section: t("sidebar.developers.mainnetResources"),
contents: [
{ title: t("sidebar.developers.rollupExplorer"), url: "https://scroll.io/rollupscan" },
- { title: t("sidebar.developers.scrollSepoliaBlockExplorer"), url: "https://sepolia-blockscout.scroll.io/" },
- { title: t("sidebar.developers.sepoliaBlockExplorer"), url: "https://sepolia.etherscan.io/" },
+ { title: t("sidebar.developers.scrollBlockExplorer"), url: "https://scrollscan.com/" },
+ ],
+ },
+ {
+ section: t("sidebar.developers.sepoliaResources"),
+ contents: [
+ { title: t("sidebar.developers.sepoliaRollupExplorer"), url: "https://sepolia.scroll.io/rollupscan" },
+ { title: t("sidebar.developers.scrollSepoliaBlockExplorer"), url: "https://sepolia.scrollscan.dev/" },
],
},
],
@@ -252,6 +268,23 @@ export const getSidebar = () => {
},
],
},
+ {
+ section: t("sidebar.technology.security"),
+ contents: [
+ {
+ title: t("sidebar.technology.auditsAndBugBounty"),
+ url: formatUrl("technology/security/audits-and-bug-bounty"),
+ },
+ // {
+ // title: t("sidebar.technology.risks"),
+ // url: formatUrl("technology/security/risks"),
+ // },
+ // {
+ // title: t("sidebar.technology.l2BeatAssessment"),
+ // url: "https://l2beat.com/scaling/projects/scroll",
+ // },
+ ],
+ },
],
learn: [
{
diff --git a/src/content/docs/en/developers/developer-quickstart.mdx b/src/content/docs/en/developers/developer-quickstart.mdx
index fc6b3f563..302f4f214 100644
--- a/src/content/docs/en/developers/developer-quickstart.mdx
+++ b/src/content/docs/en/developers/developer-quickstart.mdx
@@ -12,29 +12,69 @@ import Aside from "../../../../components/Aside.astro"
import ClickToZoom from "../../../../components/ClickToZoom.astro"
import networkSelection from "./_images/mmNetworkSelection.png"
import injectedProviderMM from "./_images/injectedProviderMM.png"
+import ToggleElement from "../../../../components/ToggleElement.astro"
With Scroll, your favorite tools for building and testing smart contracts just work.
-Since Scroll is bytecode equivalent with the EVM, you’ll just need to point your favorite builder tools at a Scroll Sepolia Testnet RPC Provider.
+Since Scroll is bytecode equivalent with the EVM, you’ll just need to point your favorite builder tools at a Scroll RPC Provider.
If you run into any issues, please reach out in [our Discord](https://discord.gg/scroll).
-## Acquiring Testnet Ether
+## Acquiring Ether
-To start building on Scroll, you'll first need to acquire some testnet ETH. See the [Faucet](/user-guide/faucet) page for tips on getting test tokens on Sepolia. After this, you can bridge your testnet ETH to the Scroll Sepolia Testnet (Layer 2) using our [Bridge](/user-guide/bridge).
+Scroll uses ETH as its native currency, which will be needed to pay transaction fees for deploying and interacting with the network.
+
+To start building on Scroll, we suggest you begin with using our Scroll Sepolia testnet. You'll first need to acquire some testnet ETH. See the [Faucet](/user-guide/faucet) page for tips on getting test tokens on Sepolia. After this, you can bridge your testnet ETH to the Scroll Sepolia Testnet (Layer 2) using our [Sepolia Bridge](https://sepolia.scroll.io/bridge), as described in the [Bridge article](/user-guide/bridge).
For a walkthrough, start with the User Guide's [Setup](/user-guide/setup) page.
+Once you're ready to deploy on Scroll's mainnet, you can bridge over ETH using [our native bridge](https://scroll.io/bridge/) or one of the 3rd-party bridges.
+
## Network Configuration
+### Scroll Mainnet
+
+Use the table below to configure your Ethereum tools to the Scroll mainnet.
+
+| Network Name | Scroll | Ethereum Mainnet |
+| ------------------ | -------------------------------------------------- | ---------------------------------------------------- |
+| RPC URL | [https://rpc.scroll.io/](https://rpc.scroll.io/) | [https://eth.llamarpc.com](https://eth.llamarpc.com) |
+| Chain ID | 534352 | 1 |
+| Currency Symbol | ETH | ETH |
+| Block Explorer URL | [https://scrollscan.com/](https://scrollscan.com/) | [https://etherscan.io](https://etherscan.io) |
+
+
+ Additional Scroll Mainnet RPCs and Infra
+ - [Scroll Native Bridge](https://scroll.io/bridge)
+ - [Scroll RPC Providers on ChainList.org](https://chainlist.org/chain/534352)
+ - [Ethereum RPC Providers on ChainList.org](https://chainlist.org/chain/1)
+ {/* - Additional Block Explorers:
+ - [Dora](https://www.ondora.xyz/network/scroll/interactions)
+ - [L2Scan](https://scroll.l2scan.co/) */}
+
+
+
+### Scroll Sepolia Testnet
+
Use the table below to configure your Ethereum tools to the Scroll Sepolia Testnet.
-| Network Name | Scroll Sepolia Testnet | Sepolia Testnet |
-| ------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://eth-sepolia-public.unifra.io](https://eth-sepolia-public.unifra.io) |
-| Chain ID | 534351 | 11155111 |
-| Currency Symbol | ETH | ETH |
-| Block Explorer URL | [https://sepolia-blockscout.scroll.io](https://sepolia-blockscout.scroll.io/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
+| Network Name | Scroll Sepolia | Ethereum Sepolia |
+| ------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------ |
+| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://rpc2.sepolia.org](https://rpc2.sepolia.org) |
+| Chain ID | 534351 | 11155111 |
+| Currency Symbol | ETH | ETH |
+| Block Explorer URL | [https://sepolia.scrollscan.com](https://sepolia.scrollscan.com/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
+
+
+ Additional Scroll Sepolia RPCs and Infra
+ - [Scroll Sepolia Native Bridge](https://sepolia.scroll.io/bridge)
+ - [Scroll Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/534351)
+ - [Ethereum Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/11155111)
+ - Additional Block Explorers:
+ - [Dora](https://www.ondora.xyz/network/scroll-sepolia/interactions)
+ - [L2Scan](https://scroll.l2scan.co/)
+
+
## Configure your tooling
@@ -126,7 +166,7 @@ live:
- name: Ethereum
networks:
- chainid: 534351
- explorer: https://sepolia-blockscout.scroll.io/
+ explorer: https://sepolia.scrollscan.com/
host: https://sepolia-rpc.scroll.io
id: scrollSepolia
name: Scroll Sepolia Testnet
@@ -195,7 +235,7 @@ Be sure to fund the deployment wallet as well! Run `yarn generate` to create the
To configure your frontend, you need to add the Scroll Sepolia Testnet as a network option, then select it as default.
-To add the network, modify `packages/react-app/src/constants.js` .
+To add the network, modify `packages/react-app/src/constants.js`.
```jsx
...
@@ -206,7 +246,7 @@ export const NETWORKS = {
color: "#e9d0b8",
chainId: 534351,
rpcUrl: "https://sepolia-rpc.scroll.io/",
- blockExplorer: "https://sepolia-blockscout.scroll.io",
+ blockExplorer: "https://sepolia.scrollscan.com",
},
...
}
diff --git a/src/content/docs/en/developers/ethereum-and-scroll-differences.mdx b/src/content/docs/en/developers/ethereum-and-scroll-differences.mdx
index ad849c063..5d73ae02b 100644
--- a/src/content/docs/en/developers/ethereum-and-scroll-differences.mdx
+++ b/src/content/docs/en/developers/ethereum-and-scroll-differences.mdx
@@ -10,7 +10,7 @@ excerpt: "There are a number of technical details that differ between Ethereum m
import Aside from "../../../../components/Aside.astro"
-A number of technical details differ between Ethereum mainnet's EVM and Scroll's modified design for a zkEVM. Below you can see those differences as they exist on Scroll Sepolia.
+A number of technical details differ between Ethereum mainnet's EVM and Scroll's modified design for a zkEVM. Below you can see those differences as they exist on Scroll and Scroll Sepolia.
For open-source contributors and infrastructure builders, please contact our team for additional support.
@@ -63,7 +63,7 @@ type StateAccount struct {
Related to this, we maintain two types of codehash for each contract bytecode: Keccak hash and Poseidon hash.
-`KeccakCodeHash` is kept to maintain compatibility for `EXTCODEHASH`. `PoseidonCodeHash` is used for verifying correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient.
+`KeccakCodeHash` is kept to maintain compatibility for `EXTCODEHASH`. `PoseidonCodeHash` is used for verifying the correctness of bytecodes loaded in the zkEVM, where Poseidon hashing is far more efficient.
### CodeSize
@@ -71,7 +71,7 @@ When verifying `EXTCODESIZE`, it is expensive to load the whole contract data in
## Block Time
-The Sepolia Testnet aims for a constant block time of 3 seconds. This is shorter and more consistent than the 12 seconds used in the Ethereum under ideal conditions.
+Scroll aims for a constant block time of 3 seconds. This is shorter and more consistent than the 12 seconds used in the Ethereum under ideal conditions.
This was chosen for two reasons:
@@ -82,15 +82,9 @@ This was chosen for two reasons:
We keep a close eye on all emerging EIPs adopted by Ethereum and adopt them when suitable. If you’re interested in more specifics, reach out in [our community forum](https://community.scroll.io) or on the [Scroll Discord](https://discord.gg/scroll).
-## EVM Target version
-
-To ensure no unexpected behavior happens in your contracts, we recommend using `london` as the target version when compiling your smart contracts.
-
-You can read in more detail on Shanghai hard fork differences from London on the [Ethereum Execution spec](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) and how the new `PUSH0` instruction [impacts the Solidity compiler](https://blog.soliditylang.org/2023/05/10/solidity-0.8.20-release-announcement/).
-
## Transaction Fees
-The fee charged to Scroll Sepolia transactions contains two parts:
+The fee charged to Scroll transactions contains two parts:
- **L2 gas fee:** similar to L1, the amount of L2 execution fee equals to `L2_gas_price * L2_gas_used`, covering the following costs:
- L2 sequencer execution & storage cost
diff --git a/src/content/docs/en/developers/guides/estimating-gas-and-tx-fees.mdx b/src/content/docs/en/developers/guides/estimating-gas-and-tx-fees.mdx
index 68629e130..339c10bde 100644
--- a/src/content/docs/en/developers/guides/estimating-gas-and-tx-fees.mdx
+++ b/src/content/docs/en/developers/guides/estimating-gas-and-tx-fees.mdx
@@ -53,7 +53,7 @@ But it also exposes the `getL1Fee(bytes memory data)` function, which abstracts
First of all, let’s quickly go over the key folders inside our project structure.
-It’s a standard Hardhat project, but most of our work is inside the c*ontracts* and _scripts_ folders.
+It’s a standard Hardhat project, but most of our work is inside the *contracts* and _scripts_ folders.
diff --git a/src/content/docs/en/developers/guides/scroll-messenger-cross-chain-interaction.mdx b/src/content/docs/en/developers/guides/scroll-messenger-cross-chain-interaction.mdx
index 15d26035e..ddda26b8a 100644
--- a/src/content/docs/en/developers/guides/scroll-messenger-cross-chain-interaction.mdx
+++ b/src/content/docs/en/developers/guides/scroll-messenger-cross-chain-interaction.mdx
@@ -82,10 +82,10 @@ We pass the message by executing `executeFunctionCrosschain` and passing the fol
- If you deployed it on Sepolia use `0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A`. If you deployed on Scroll use `0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d`.
- `targetAddress`: The address of the `Greeter` contract on the opposite chain.
- `value`: In this case, it is `0` because the `setGreeting`is not payable.
-- `greeting`: This is the parameter that will be sent through the message. Try passing `“This message was crosschain!”`
+- `greeting`: This is the parameter that will be sent through the message. Try passing `“This message was cross-chain!”`
- `gasLimit`:
- - If you are sending the message from L1 to L2, around `5000` gas limit should be more than enough.
- - If you are sending the message from L2 to L1, pass `0`, as the transaction be completed by executing an additional transaction on L1.
+ - If you are sending the message from L1 to L2, around `1000000` gas limit should be more than enough.
+ - If you are sending the message from L2 to L1, pass `0`, as the transaction to be completed by executing an additional transaction on L1.
### Relay the Message when sending from L2 to L1
@@ -117,6 +117,6 @@ in the [Scroll Messenger](/developers/l1-and-l2-bridging/the-scroll-messenger) a
applications and users.
-After executing and confirming the transaction on both L1 and L2, the new state of `greeting` on the `Greeter` contract should be `“This message was crosschain!”`. Sending a message from one chain to the other should take around 20 minutes after the transactions are confirmed on the origin chain.
+After executing and confirming the transaction on both L1 and L2, the new state of `greeting` on the `Greeter` contract should be `“This message was cross-chain!”`. Sending a message from one chain to the other should take around 20 minutes after the transactions are confirmed on the origin chain.
Congratulations, you now executed a transaction from one chain to the other using our native bridge!
diff --git a/src/content/docs/en/developers/index.mdx b/src/content/docs/en/developers/index.mdx
index 4875a01c7..0b9ab96a2 100644
--- a/src/content/docs/en/developers/index.mdx
+++ b/src/content/docs/en/developers/index.mdx
@@ -28,7 +28,7 @@ ensuring that all code executed on the Scroll Layer 2 behaves just as if it were
## Getting Started
-**Looking to build on the Scroll Sepolia Testnet?**
+**Looking to build on the Scroll?**
- For the essentials: Check out the [Developer Quickstart](/developers/developer-quickstart)
- For a tutorial walking through deploying your first smart contract on Scroll, read our [contract deployment tutorial](/developers/guides/contract-deployment-tutorial)
@@ -78,9 +78,9 @@ ensuring that all code executed on the Scroll Layer 2 behaves just as if it were
Community — Scroll brings together users and builders.
- We know the challenges of building in the open and getting user engagement before mainnet release! Scroll has a
- blossoming community of users and builders, and with a Discord community of over 100,000 users eager to try out
- applications on our testnet, we’re excited to connect builders with users that can provide real-world feedback.
+ We know the challenges of building in the open and getting user engagement! Scroll has a blossoming community of
+ users and builders, and with a Discord community of over 500,000 members eager to try out applications on our
+ testnet or mainnet, we’re excited to connect builders with users that can provide real-world feedback.
diff --git a/src/content/docs/en/developers/l1-and-l2-bridging/enforced-transactions.mdx b/src/content/docs/en/developers/l1-and-l2-bridging/enforced-transactions.mdx
index 21e2bc15e..e05ee6533 100644
--- a/src/content/docs/en/developers/l1-and-l2-bridging/enforced-transactions.mdx
+++ b/src/content/docs/en/developers/l1-and-l2-bridging/enforced-transactions.mdx
@@ -25,10 +25,10 @@ Add an enforced transaction to L2 from an EOA account sender.
| Parameter | Description |
| ---------- | ---------------------------------------------------------- |
-| \_target | The address of target contract to call in L2. |
+| \_target | The address of the target contract to call in L2. |
| \_value | The value passed. |
| \_gasLimit | The maximum gas should be used for this transaction in L2. |
-| \_data | The calldata passed to target contract. |
+| \_data | The calldata passed to the target contract. |
### sendTransaction
diff --git a/src/content/docs/en/developers/l1-and-l2-bridging/erc1155-token-bridge.mdx b/src/content/docs/en/developers/l1-and-l2-bridging/erc1155-token-bridge.mdx
index 3a83794d7..09d629cb9 100644
--- a/src/content/docs/en/developers/l1-and-l2-bridging/erc1155-token-bridge.mdx
+++ b/src/content/docs/en/developers/l1-and-l2-bridging/erc1155-token-bridge.mdx
@@ -16,7 +16,7 @@ ERC1155 bridging from L1 to L2 is done via the L1ERC1155Gateway. Similarly to ER
diff --git a/src/content/docs/en/developers/l1-and-l2-bridging/eth-and-erc20-token-bridge.mdx b/src/content/docs/en/developers/l1-and-l2-bridging/eth-and-erc20-token-bridge.mdx
index ff083a97e..62c2be537 100644
--- a/src/content/docs/en/developers/l1-and-l2-bridging/eth-and-erc20-token-bridge.mdx
+++ b/src/content/docs/en/developers/l1-and-l2-bridging/eth-and-erc20-token-bridge.mdx
@@ -23,7 +23,7 @@ The Gateway Router allows ETH and ERC20 token bridging from L1 to L2 using the `
When bridging ERC20 tokens, you don’t have to worry about selecting the right Gateway. This is because the `L1GatewayRouter` will choose the correct underlying entry point to send the message:
- **`L1StandardERC20Gateway`:** This Gateway permits any ERC20 deposit and will be selected as the default by the L1GatewayRouter for an ERC20 token that doesn’t need custom logic on L2. On the very first token bridging, a new token will be created on L2 that implements the ScrollStandardERC20. To bridge a token, call the `depositERC20` function on the `L1GatewayRouter`.
-- **`L1CustomERC20Gateway`:** This Gateway will be selected by the `L1GatewayRouter` for tokens with custom logic. For an L1/L2 token pair to work on the Scroll Custom ERC20 Bridge, the L2 token contract has to implement `IScrollStandardERC20`. Additionally, the token should grant `mint` or `burn` capability to the `L2CustomERC20Gateway`. Visit the [Bridge an ERC20 through the Custom Gateway](/developers/developer-guides/bridge-erc20-through-the-custom-gateway) guide for a step-by-step example of how to bridge a custom token.
+- **`L1CustomERC20Gateway`:** This Gateway will be selected by the `L1GatewayRouter` for tokens with custom logic. For an L1/L2 token pair to work on the Scroll Custom ERC20 Bridge, the L2 token contract has to implement `IScrollStandardERC20`. Additionally, the token should grant `mint` or `burn` capability to the `L2CustomERC20Gateway`. Visit the [Bridge an ERC20 through the Custom Gateway](/developers/guides/bridge-erc20-through-the-custom-gateway) guide for a step-by-step example of how to bridge a custom token.
All Gateway contracts will form the message and send it to the `L1ScrollMessenger` which can send arbitrary messages to L2. The `L1ScrollMessenger` passes the message to the `L1MessageQueue`. Any user can send messages directly to the Messenger to execute arbitrary data on L2. This means they can execute any function on L2 from a transaction made on L1 via the bridge. Although an application could directly pass messages to existing token contracts, the Gateway abstracts the specifics and simplifies making transfers and calls.
diff --git a/src/content/docs/en/developers/l1-and-l2-bridging/the-scroll-messenger.mdx b/src/content/docs/en/developers/l1-and-l2-bridging/the-scroll-messenger.mdx
index 10ee9b867..fb21fb219 100644
--- a/src/content/docs/en/developers/l1-and-l2-bridging/the-scroll-messenger.mdx
+++ b/src/content/docs/en/developers/l1-and-l2-bridging/the-scroll-messenger.mdx
@@ -24,11 +24,15 @@ the messenger smart contract deployed on L1, `L1ScrollMessenger`. To send a mess
## Finalizing transactions on L1
Any upcoming transactions from L2 need to be finalized using the `relayMessageWithProof` function on the Scroll Messenger
-contract. We call this process "submitting an Execute Withdrawal transaction," and it is required for both sending arbitrary messages and transferring assets through a gateway or the router. When you use `relayMessageWithProof`, you'll have to provide a Merkle inclusion proof showing your transaction is included in the trie of "withdrawal" messages, along with other parameters. Producing this proof and these values can be done locally and permissionlessly, but at the moment, the easiest way to retrieve these parameters is through our backend API hosted at https://sepolia-api-bridge.scroll.io/api/.
+contract. We call this process "submitting an Execute Withdrawal transaction," and it is required for both sending arbitrary messages and transferring assets through a gateway or the router. When you use `relayMessageWithProof`, you'll have to provide a Merkle inclusion proof showing your transaction is included in the trie of "withdrawal" messages, along with other parameters. Producing this proof and these values can be done locally and permissionlessly, but at the moment, the easiest way to retrieve these parameters is through our backend APIs:
+
+- Scroll Sepolia API: https://sepolia-api-bridge.scroll.io/api/
+- Scroll API: https://mainnet-api-bridge.scroll.io/api/
Supply the address of the EOA or contract responsible for initiating the original transaction on L2 to the `/claimable`
diff --git a/src/content/docs/en/developers/scroll-contracts.mdx b/src/content/docs/en/developers/scroll-contracts.mdx
index 0570b661c..332f379d7 100644
--- a/src/content/docs/en/developers/scroll-contracts.mdx
+++ b/src/content/docs/en/developers/scroll-contracts.mdx
@@ -1,7 +1,7 @@
---
section: developers
date: Last Modified
-title: "Scroll Sepolia Contracts"
+title: "Scroll Contracts"
lang: "en"
permalink: "developers/scroll-contracts"
whatsnext: { "Ethereum & Scroll Differences": "/developers/ethereum-and-scroll-differences" }
@@ -9,92 +9,227 @@ excerpt: "The network info and contract addresses you need to start with Scroll
---
import Aside from "../../../../components/Aside.astro"
+import ToggleElement from "../../../../components/ToggleElement.astro"
+
+In this article you'll find useful contract addresses for Scroll and commonly used protocols. See the section below for [Scroll Sepolia](#scroll-sepolia-testnet) info.
## Network Info
-| Network Name | Scroll Sepolia Testnet | Sepolia Testnet |
-| ------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://eth-sepolia-public.unifra.io](https://eth-sepolia-public.unifra.io) |
-| Chain ID | 534351 | 11155111 |
-| Currency Symbol | ETH | ETH |
-| Block Explorer URL | [https://sepolia-blockscout.scroll.io](https://sepolia-blockscout.scroll.io/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
+Use the table below to configure your Ethereum tools to the Scroll mainnet.
+
+| Network Name | Scroll | Ethereum Mainnet |
+| ------------------ | -------------------------------------------------- | ---------------------------------------------------- |
+| RPC URL | [https://rpc.scroll.io/](https://rpc.scroll.io/) | [https://eth.llamarpc.com](https://eth.llamarpc.com) |
+| Chain ID | 534352 | 1 |
+| Currency Symbol | ETH | ETH |
+| Block Explorer URL | [https://scrollscan.com/](https://scrollscan.com/) | [https://etherscan.io](https://etherscan.io) |
+
+
+ Additional Scroll Mainnet RPCs and Infra
+ - [Scroll Native Bridge](https://scroll.io/bridge)
+ - [Scroll Rollup Scanner](https://scroll.io/rollupscan)
+ - [Scroll RPC Providers on ChainList.org](https://chainlist.org/chain/534352)
+ - [Ethereum RPC Providers on ChainList.org](https://chainlist.org/chain/1)
+ {/* - Additional Block Explorers:
+ - [Dora](https://www.ondora.xyz/network/scroll/interactions)
+ - [L2Scan](https://scroll.l2scan.co/) */}
-## Scroll Sepolia Contracts
+
+
+## Scroll Contracts
### Rollup
-- L1 Rollup (Scroll Chain): `0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0`
+- L1 Rollup (Scroll Chain): [`0xa13BAF47339d63B743e7Da8741db5456DAc1E556`](https://etherscan.io/address/0xa13BAF47339d63B743e7Da8741db5456DAc1E556)
### ETH and ERC20 Bridge
-- L1 ERC20 Gateway Router: `0x13FBE0D0e5552b8c9c4AE9e2435F38f37355998a`
-- L2 ERC20 Gateway Router: `0x9aD3c5617eCAa556d6E166787A97081907171230`
+- L1 ERC20 Gateway Router: [`0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6`](https://etherscan.io/address/0xF8B1378579659D8F7EE5f3C929c2f3E332E41Fd6)
+- L2 ERC20 Gateway Router: [`0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79`](https://scrollscan.com/address/0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79)
### Advanced Bridge Contracts
- Scroll Messenger
- - L1 Messenger: `0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A`
- - L2 Messenger: `0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d`
+ - L1 Messenger: [`0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367`](https://etherscan.io/address/0x6774Bcbd5ceCeF1336b5300fb5186a12DDD8b367)
+ - L2 Messenger: [`0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC`](https://scrollscan.com/address/0x781e90f1c8Fc4611c9b7497C3B47F99Ef6969CbC)
- ETH Bridge
- - L1 ETH Gateway: `0x8A54A2347Da2562917304141ab67324615e9866d`
- - L2 ETH Gateway: `0x91e8ADDFe1358aCa5314c644312d38237fC1101C`
- - L1 WETH Gateway: `0x3dA0BF44814cfC678376b3311838272158211695`
- - L2 WETH Gateway: `0x481B20A927206aF7A754dB8b904B052e2781ea27`
+ - L1 ETH Gateway: [`0x7F2b8C31F88B6006c382775eea88297Ec1e3E905`](https://etherscan.io/address/0x7F2b8C31F88B6006c382775eea88297Ec1e3E905)
+ - L2 ETH Gateway: [`0x6EA73e05AdC79974B931123675ea8F78FfdacDF0`](https://scrollscan.com/address/0x6EA73e05AdC79974B931123675ea8F78FfdacDF0)
+ - L1 WETH Gateway: [`0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE`](https://etherscan.io/address/0x7AC440cAe8EB6328de4fA621163a792c1EA9D4fE)
+ - L2 WETH Gateway: [`0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9`](https://scrollscan.com/address/0x7003E7B7186f0E6601203b99F7B8DECBfA391cf9)
- ERC20 Bridge
- - L1 ERC20 Standard Gateway: `0x65D123d6389b900d954677c26327bfc1C3e88A13`
- - L2 ERC20 Standard Gateway: `0xaDcA915971A336EA2f5b567e662F5bd74AEf9582`
- - L1 ERC20 Custom Gateway: `0x31C994F2017E71b82fd4D8118F140c81215bbb37`
- - L2 ERC20 Custom Gateway: `0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf`
+ - L1 ERC20 Standard Gateway: [`0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9`](https://etherscan.io/address/0xD8A791fE2bE73eb6E6cF1eb0cb3F36adC9B3F8f9)
+ - L2 ERC20 Standard Gateway: [`0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A`](https://scrollscan.com/address/0xE2b4795039517653c5Ae8C2A9BFdd783b48f447A)
+ - L1 ERC20 Custom Gateway: [`0xb2b10a289A229415a124EFDeF310C10cb004B6ff`](https://etherscan.io/address/0xb2b10a289A229415a124EFDeF310C10cb004B6ff)
+ - L2 ERC20 Custom Gateway: [`0x64CCBE37c9A82D85A1F2E74649b7A42923067988`](https://scrollscan.com/address/0x64CCBE37c9A82D85A1F2E74649b7A42923067988)
- ERC721 Bridge
- - L1 ERC721 Gateway: `0xEF27A5E63aa3f1B8312f744b9b4DcEB910Ba77AC`
- - L2 ERC721 Gateway: `0x179B9415194B67DC3c0b8760E075cD4415785c97`
+ - L1 ERC721 Gateway: [`0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B`](https://etherscan.io/address/0x6260aF48e8948617b8FA17F4e5CEa2d21D21554B)
+ - L2 ERC721 Gateway: [`0x7bC08E1c04fb41d75F1410363F0c5746Eae80582`](https://scrollscan.com/address/0x7bC08E1c04fb41d75F1410363F0c5746Eae80582)
- ERC1155 Bridge
- - L1 ERC1155 Gateway: `0xa5Df8530766A85936EE3E139dECE3bF081c83146`
- - L2 ERC1155 Gateway: `0xe17C9b9C66FAF07753cdB04316D09f52144612A5`
+ - L1 ERC1155 Gateway: [`0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6`](https://etherscan.io/address/0xb94f7F6ABcb811c5Ac709dE14E37590fcCd975B6)
+ - L2 ERC1155 Gateway: [`0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc`](https://scrollscan.com/address/0x62597Cc19703aF10B58feF87B0d5D29eFE263bcc)
- Gas Oracle
- - L2 Gas Oracle (deployed on Sepolia): `0x247969F4fad93a33d4826046bc3eAE0D36BdE548`
+ - L2 Gas Oracle (deployed on Mainnet): [`0x987e300fDfb06093859358522a79098848C33852`](https://scrollscan.com/address/0x987e300fDfb06093859358522a79098848C33852)
### L2 Predeploys
-- Message Queue: `0x5300000000000000000000000000000000000000`
-- Gas Price Oracle: `0x5300000000000000000000000000000000000002`
-- Whitelist: `0x5300000000000000000000000000000000000003`
-- WETH L2: `0x5300000000000000000000000000000000000004`
-- Transaction Fee Vault: `0x5300000000000000000000000000000000000005`
+- Message Queue: [`0x5300000000000000000000000000000000000000`](https://scrollscan.com/address/0x5300000000000000000000000000000000000000)
+- Gas Price Oracle: [`0x5300000000000000000000000000000000000002`](https://scrollscan.com/address/0x5300000000000000000000000000000000000002)
+- Whitelist: [`0x5300000000000000000000000000000000000003`](https://scrollscan.com/address/0x5300000000000000000000000000000000000003)
+- WETH L2: [`0x5300000000000000000000000000000000000004`](https://scrollscan.com/address/0x5300000000000000000000000000000000000004)
+- Transaction Fee Vault: [`0x5300000000000000000000000000000000000005`](https://scrollscan.com/address/0x5300000000000000000000000000000000000005)
-## Protocols on Sepolia
+## Protocols on Scroll Mainnet
### Uniswap v3
-- Frontend website: [https://uniswap-showcase.sepolia.scroll.xyz/](https://uniswap-showcase.sepolia.scroll.xyz/)
- Main Contracts
- - Core Factory: `0xB856587fe1cbA8600F75F1b1176E44250B11C788`
- - NFT Position Manager: `0xbbAd0e891922A8A4a7e9c39d4cc0559117016fec`
- - Router: `0x17AFD0263D6909Ba1F9a8EAC697f76532365Fb95`
+ - Core Factory: [`0x70C62C8b8e801124A4Aa81ce07b637A3e83cb919`](https://scrollscan.com/address/0x70C62C8b8e801124A4Aa81ce07b637A3e83cb919)
+ - NFT Position Manager: [`0xB39002E4033b162fAc607fc3471E205FA2aE5967`](https://scrollscan.com/address/0xB39002E4033b162fAc607fc3471E205FA2aE5967)
+ - Router: [`0xfc30937f5cDe93Df8d48aCAF7e6f5D8D8A31F636`](https://scrollscan.com/address/0xfc30937f5cDe93Df8d48aCAF7e6f5D8D8A31F636)
- Additional Contracts
- - multicall2Address: `0x8c181f4B9040F1a2C941EfD3b608712cF86F1957`
- - proxyAdminAddress: `0xD4A9910732b6f301F6F210Ebe7a3dBf16d9E9DD4`
- - tickLensAddress: `0x9804Da978427a49929f2E6Ea32A9594F03f9296e`
- - nftDescriptorLibraryAddressV1_3_0: `0x45Bd3B62B7A3aA53371c98049b0f7A9C1A4B5a6c`
- - nonfungibleTokenPositionDescriptorAddressV1_3_0: `0x24d4E4a572Dc1e0dbF92a0d7768Ac80df516b2C2`
- - descriptorProxyAddress: `0xa8986417d0EAe50607696b9b0cb7ec5aFBE67765`
- - v3MigratorAddress: `0x38E33D067F03a5cDc02C301b2c306cb0414549Bf`
- - v3StakerAddress: `0xe7b82794Cab21e665a3e6f8ea562d392AA6E0619`
- - quoterV2Address: `0xd5dd33650Ef1DC6D23069aEDC8EAE87b0D3619B2`
-
-### Aave
-
-See this [Github gist](https://gist.github.com/dghelm/7fe68f0a524f30846e1142721c081d84).
+ - multicall2Address: [`0xC1D2e074C38FdD5CA965000668420C80316F0915`](https://scrollscan.com/address/0xC1D2e074C38FdD5CA965000668420C80316F0915)
+ - proxyAdminAddress: [`0x1E6dcAb806A42055098f23E2B3ac72D6E195F967`](https://scrollscan.com/address/0x1E6dcAb806A42055098f23E2B3ac72D6E195F967)
+ - tickLensAddress: [`0x85780e12e90D2a684eB8E7404c985b5B5c8ce7E9`](https://scrollscan.com/address/0x85780e12e90D2a684eB8E7404c985b5B5c8ce7E9)
+ - nftDescriptorLibraryAddressV1_3_0: [`0xAeE9c206ba89F3DA25EEe4636208519e0B86965B`](https://scrollscan.com/address/0xAeE9c206ba89F3DA25EEe4636208519e0B86965B)
+ - nonfungibleTokenPositionDescriptorAddressV1_3_0: [`0xACcf12204b7591B2ECCEFe737440B0f53748B191`](https://scrollscan.com/address/0xACcf12204b7591B2ECCEFe737440B0f53748B191)
+ - descriptorProxyAddress: [`0x675DD953225D296A44790dC1390a1E7eF378f464`](https://scrollscan.com/address/0x675DD953225D296A44790dC1390a1E7eF378f464)
+ - v3MigratorAddress: [`0xF00577B5Dd0DA227298E954Ed11356F264Cf93d4`](https://scrollscan.com/address/0xF00577B5Dd0DA227298E954Ed11356F264Cf93d4)
+ - v3StakerAddress: [`0xFdFbE973c9ecB036Ecfb7af697FcACe789D3f928`](https://scrollscan.com/address/0xFdFbE973c9ecB036Ecfb7af697FcACe789D3f928)
+ - quoterV2Address: [`0x2566e082Cb1656d22BCbe5644F5b997D194b5299`](https://scrollscan.com/address/0x2566e082Cb1656d22BCbe5644F5b997D194b5299)
+
+#### Ethereum Attestation Service (EAS)
+
+- EAS: [`0xC47300428b6AD2c7D03BB76D05A176058b47E6B0`](https://scrollscan.com/address/0xC47300428b6AD2c7D03BB76D05A176058b47E6B0)
+- SchemaRegistry: [`0xD2CDF46556543316e7D34e8eDc4624e2bB95e3B6`](https://scrollscan.com/address/0xD2CDF46556543316e7D34e8eDc4624e2bB95e3B6)
+- EIP712Proxy: [`0x77b7DA1c40762Cd8AFfE2069b575328EfD4D9801`](https://scrollscan.com/address/0x77b7DA1c40762Cd8AFfE2069b575328EfD4D9801)
+- Indexer: `Not deployed yet`
## Additional Useful Contracts
-- Multicall3: `0xcA11bde05977b3631167028862bE2a173976CA11`
+- Multicall3: [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://scrollscan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11)
## Tokens
-- Gho Token: `0xD9692f1748aFEe00FACE2da35242417dd05a8615`
+{" "}
+
+
+
+---
+
+## Scroll Sepolia Testnet
+
+### Network Info
+
+Use the table below to configure your Ethereum tools to the Scroll Sepolia Testnet.
+
+| Network Name | Scroll Sepolia | Ethereum Sepolia |
+| ------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------ |
+| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://rpc2.sepolia.org](https://rpc2.sepolia.org) |
+| Chain ID | 534351 | 11155111 |
+| Currency Symbol | ETH | ETH |
+| Block Explorer URL | [https://sepolia.scrollscan.com](https://sepolia.scrollscan.com/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
+
+
+ Additional Scroll Sepolia RPCs and Infra
+ - [Scroll Sepolia Native Bridge](https://sepolia.scroll.io/bridge)
+ - [Scroll Sepolia Rollup Scanner](https://sepolia.scroll.io/rollupscan)
+ - [Scroll Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/534351)
+ - [Ethereum Sepolia RPC Providers on ChainList.org](https://chainlist.org/chain/11155111)
+ - Additional Block Explorers:
+ - [Dora](https://www.ondora.xyz/network/scroll-sepolia/interactions)
+ - [L2Scan](https://scroll.l2scan.co/)
+
+
+
+### Scroll Sepolia Contracts
+
+#### Rollup
+
+- L1 Rollup (Scroll Chain): [`0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0`](https://sepolia.etherscan.io/address/0x2D567EcE699Eabe5afCd141eDB7A4f2D0D6ce8a0)
+
+#### ETH and ERC20 Bridge
+
+- L1 ERC20 Gateway Router: [`0x13FBE0D0e5552b8c9c4AE9e2435F38f37355998a`](https://sepolia.etherscan.io/address/0x13FBE0D0e5552b8c9c4AE9e2435F38f37355998a)
+- L2 ERC20 Gateway Router: [`0x9aD3c5617eCAa556d6E166787A97081907171230`](https://sepolia.scrollscan.com/address/0x9aD3c5617eCAa556d6E166787A97081907171230)
+
+#### Advanced Bridge Contracts
+
+- Scroll Messenger
+ - L1 Messenger: [`0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A`](https://sepolia.etherscan.io/address/0x50c7d3e7f7c656493D1D76aaa1a836CedfCBB16A)
+ - L2 Messenger: [`0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d`](https://sepolia.scrollscan.com/address/0xBa50f5340FB9F3Bd074bD638c9BE13eCB36E603d)
+- ETH Bridge
+ - L1 ETH Gateway: [`0x8A54A2347Da2562917304141ab67324615e9866d`](https://sepolia.etherscan.io/address/0x8A54A2347Da2562917304141ab67324615e9866d)
+ - L2 ETH Gateway: [`0x91e8ADDFe1358aCa5314c644312d38237fC1101C`](https://sepolia.scrollscan.com/address/0x91e8ADDFe1358aCa5314c644312d38237fC1101C)
+ - L1 WETH Gateway: [`0x3dA0BF44814cfC678376b3311838272158211695`](https://sepolia.etherscan.io/address/0x3dA0BF44814cfC678376b3311838272158211695)
+ - L2 WETH Gateway: [`0x481B20A927206aF7A754dB8b904B052e2781ea27`](https://sepolia.scrollscan.com/address/0x481B20A927206aF7A754dB8b904B052e2781ea27)
+- ERC20 Bridge
+ - L1 ERC20 Standard Gateway: [`0x65D123d6389b900d954677c26327bfc1C3e88A13`](https://sepolia.etherscan.io/address/0x65D123d6389b900d954677c26327bfc1C3e88A13)
+ - L2 ERC20 Standard Gateway: [`0xaDcA915971A336EA2f5b567e662F5bd74AEf9582`](https://sepolia.scrollscan.com/address/0xaDcA915971A336EA2f5b567e662F5bd74AEf9582)
+ - L1 ERC20 Custom Gateway: [`0x31C994F2017E71b82fd4D8118F140c81215bbb37`](https://sepolia.etherscan.io/address/0x31C994F2017E71b82fd4D8118F140c81215bbb37)
+ - L2 ERC20 Custom Gateway: [`0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf`](https://sepolia.scrollscan.com/address/0x058dec71E53079F9ED053F3a0bBca877F6f3eAcf)
+- ERC721 Bridge
+ - L1 ERC721 Gateway: [`0xEF27A5E63aa3f1B8312f744b9b4DcEB910Ba77AC`](https://sepolia.etherscan.io/address/0xEF27A5E63aa3f1B8312f744b9b4DcEB910Ba77AC)
+ - L2 ERC721 Gateway: [`0x179B9415194B67DC3c0b8760E075cD4415785c97`](https://sepolia.scrollscan.com/address/0x179B9415194B67DC3c0b8760E075cD4415785c97)
+- ERC1155 Bridge
+ - L1 ERC1155 Gateway: [`0xa5Df8530766A85936EE3E139dECE3bF081c83146`](https://sepolia.etherscan.io/address/0xa5Df8530766A85936EE3E139dECE3bF081c83146)
+ - L2 ERC1155 Gateway: [`0xe17C9b9C66FAF07753cdB04316D09f52144612A5`](https://sepolia.scrollscan.com/address/0xe17C9b9C66FAF07753cdB04316D09f52144612A5)
+- Gas Oracle
+ - L2 Gas Oracle (deployed on Sepolia): [`0x247969F4fad93a33d4826046bc3eAE0D36BdE548`](https://sepolia.scrollscan.com/address/0x247969F4fad93a33d4826046bc3eAE0D36BdE548)
+
+#### L2 Predeploys
+
+- Message Queue: [`0x5300000000000000000000000000000000000000`](https://sepolia.scrollscan.com/address/0x5300000000000000000000000000000000000000)
+- Gas Price Oracle: [`0x5300000000000000000000000000000000000002`](https://sepolia.scrollscan.com/address/0x5300000000000000000000000000000000000002)
+- Whitelist: [`0x5300000000000000000000000000000000000003`](https://sepolia.scrollscan.com/address/0x5300000000000000000000000000000000000003)
+- WETH L2: [`0x5300000000000000000000000000000000000004`](https://sepolia.scrollscan.com/address/0x5300000000000000000000000000000000000004)
+- Transaction Fee Vault: [`0x5300000000000000000000000000000000000005`](https://sepolia.scrollscan.com/address/0x5300000000000000000000000000000000000005)
+
+### Protocols
+
+#### Uniswap v3
+
+- Frontend website: [https://uniswap-showcase.sepolia.scroll.xyz/](https://uniswap-showcase.sepolia.scroll.xyz/)
+- Main Contracts
+ - Core Factory: [`0xB856587fe1cbA8600F75F1b1176E44250B11C788`](https://sepolia.scrollscan.com/address/0xB856587fe1cbA8600F75F1b1176E44250B11C788)
+ - NFT Position Manager: [`0xbbAd0e891922A8A4a7e9c39d4cc0559117016fec`](https://sepolia.scrollscan.com/address/0xbbAd0e891922A8A4a7e9c39d4cc0559117016fec)
+ - Router: [`0x17AFD0263D6909Ba1F9a8EAC697f76532365Fb95`](https://sepolia.scrollscan.com/address/0x17AFD0263D6909Ba1F9a8EAC697f76532365Fb95)
+- Additional Contracts
+ - multicall2Address: [`0x8c181f4B9040F1a2C941EfD3b608712cF86F1957`](https://sepolia.scrollscan.com/address/0x8c181f4B9040F1a2C941EfD3b608712cF86F1957)
+ - proxyAdminAddress: [`0xD4A9910732b6f301F6F210Ebe7a3dBf16d9E9DD4`](https://sepolia.scrollscan.com/address/0xD4A9910732b6f301F6F210Ebe7a3dBf16d9E9DD4)
+ - tickLensAddress: [`0x9804Da978427a49929f2E6Ea32A9594F03f9296e`](https://sepolia.scrollscan.com/address/0x9804Da978427a49929f2E6Ea32A9594F03f9296e)
+ - nftDescriptorLibraryAddressV1_3_0: [`0x45Bd3B62B7A3aA53371c98049b0f7A9C1A4B5a6c`](https://sepolia.scrollscan.com/address/0x45Bd3B62B7A3aA53371c98049b0f7A9C1A4B5a6c)
+ - nonfungibleTokenPositionDescriptorAddressV1_3_0: [`0x24d4E4a572Dc1e0dbF92a0d7768Ac80df516b2C2`](https://sepolia.scrollscan.com/address/0x24d4E4a572Dc1e0dbF92a0d7768Ac80df516b2C2)
+ - descriptorProxyAddress: [`0xa8986417d0EAe50607696b9b0cb7ec5aFBE67765`](https://sepolia.scrollscan.com/address/0xa8986417d0EAe50607696b9b0cb7ec5aFBE67765)
+ - v3MigratorAddress: [`0x38E33D067F03a5cDc02C301b2c306cb0414549Bf`](https://sepolia.scrollscan.com/address/0x38E33D067F03a5cDc02C301b2c306cb0414549Bf)
+ - v3StakerAddress: [`0xe7b82794Cab21e665a3e6f8ea562d392AA6E0619`](https://sepolia.scrollscan.com/address/0xe7b82794Cab21e665a3e6f8ea562d392AA6E0619)
+ - quoterV2Address: [`0xd5dd33650Ef1DC6D23069aEDC8EAE87b0D3619B2`](https://sepolia.scrollscan.com/address/0xd5dd33650Ef1DC6D23069aEDC8EAE87b0D3619B2)
+
+#### Aave
+
+See this [Github gist](https://gist.github.com/dghelm/7fe68f0a524f30846e1142721c081d84).
+
+#### Ethereum Attestation Service (EAS)
+
+- EAS: [`0xaEF4103A04090071165F78D45D83A0C0782c2B2a`](https://sepolia.scrollscan.com/address/0xaEF4103A04090071165F78D45D83A0C0782c2B2a)
+- SchemaRegistry: [`0x55D26f9ae0203EF95494AE4C170eD35f4Cf77797`](https://sepolia.scrollscan.com/address/0x55D26f9ae0203EF95494AE4C170eD35f4Cf77797)
+- EIP712Proxy: [`0xB3574f76b1720E61FdA98702c7016674CD6Eaa7b`](https://sepolia.scrollscan.com/address/0xB3574f76b1720E61FdA98702c7016674CD6Eaa7b)
+- Indexer: [`0x7C2cb1eDC328491da52de2a0afc44D3B0Ae7ee17`](https://sepolia.scrollscan.com/address/0x7C2cb1eDC328491da52de2a0afc44D3B0Ae7ee17)
+
+### Additional Useful Contracts
+
+- Multicall3: [`0xcA11bde05977b3631167028862bE2a173976CA11`](https://sepolia.scrollscan.com/address/0xcA11bde05977b3631167028862bE2a173976CA11)
+
+### Tokens
+
+
+
+- Gho Token: [`0xD9692f1748aFEe00FACE2da35242417dd05a8615`](https://sepolia.scrollscan.com/address/0xD9692f1748aFEe00FACE2da35242417dd05a8615)
diff --git a/src/content/docs/en/developers/transaction-fees-on-scroll.mdx b/src/content/docs/en/developers/transaction-fees-on-scroll.mdx
index f9c4a48ea..8ce7c2f70 100644
--- a/src/content/docs/en/developers/transaction-fees-on-scroll.mdx
+++ b/src/content/docs/en/developers/transaction-fees-on-scroll.mdx
@@ -12,11 +12,11 @@ import Aside from "../../../../components/Aside.astro"
## Overview
-Scroll Sepolia Testnet fees are notably lower than on its supporting layer. For users and developers, transaction fees on Scroll appear to work similarly to those on Ethereum mainnet, and existing tools, wallets, and code will likely work as if they were. However, the transaction fee shown in the wallet isn't the whole picture unless the software is specifically aware of Scroll's fee calculations.
+Scroll fees are notably lower than on its supporting layer. For users and developers, transaction fees on Scroll appear to work similarly to those on Ethereum mainnet, and existing tools, wallets, and code will likely work as if they were. However, the transaction fee shown in the wallet isn't the whole picture unless the software is specifically aware of Scroll's fee calculations.
Due to the design of L2 rollups, transaction costs depend on the L1's costs. To leverage Ethereum's security, Scroll must account for the cost of the transaction data and proofs that must be stored and verified on the L1.
-Compared to Ethereum mainnet, Scroll Sepolia introduces some new dimensions to transaction fee calculation to do this. The final cost of a transaction is constructed from several parts:
+Compared to Ethereum mainnet, Scroll introduces some new dimensions to transaction fee calculation to do this. The final cost of a transaction is constructed from several parts:
- **L2 fee**
- Calculated in the same manner as on the L1, equaling `gas_price * gas_used`
@@ -60,7 +60,7 @@ Transactions aren't committed 1-by-1 -- they are collected in batches of blocks
### Estimating the L1 Data Fee
-Scroll has a pre-deployed `L1GasPriceOracle`, accessible on Scroll Sepolia at ([`0x5300000000000000000000000000000000000002`](https://sepolia-blockscout.scroll.io/address/0x5300000000000000000000000000000000000002)). It provides a `getL1Fee` method to estimate the L1 data fee for a given transaction's raw data.
+Scroll has a pre-deployed `L1GasPriceOracle`, accessible on both Scroll and Scroll Sepolia at ([`0x5300000000000000000000000000000000000002`](https://sepolia-blockscout.scroll.io/address/0x5300000000000000000000000000000000000002)). It provides a `getL1Fee` method to estimate the L1 data fee for a given transaction's raw data.
```solidity
function getL1Fee(bytes memory _data) external view override returns (uint256);
diff --git a/src/content/docs/en/developers/verifying-smart-contracts.mdx b/src/content/docs/en/developers/verifying-smart-contracts.mdx
index 96cf78f82..be119ed8c 100644
--- a/src/content/docs/en/developers/verifying-smart-contracts.mdx
+++ b/src/content/docs/en/developers/verifying-smart-contracts.mdx
@@ -5,7 +5,7 @@ title: "Verifying Smart Contracts"
lang: "en"
permalink: "developers/verifying-smart-contracts"
whatsnext: { "Scroll Contracts": "/developers/scroll-contracts" }
-excerpt: "Easily verify your smart contracts with Scroll-supported developer tooling or the Blockscout Web API"
+excerpt: "Easily verify your smart contracts with Scroll-supported developer tooling"
---
import Aside from "../../../../components/Aside.astro"
@@ -13,22 +13,26 @@ import ClickToZoom from "../../../../components/ClickToZoom.astro"
import verify1 from "./_images/verify1.png"
import CodeSample from "../../../../components/CodeSample/CodeSample.astro"
-After deploying your smart contracts, it's important to verify your code on [our block explorer](https://sepolia-blockscout.scroll.io/). This can be done in an automated way using your developer tooling or using Blockscout's Web UI.
-
-
+After deploying your smart contracts, it's important to verify your code on a block explorer. This can be done in an automated way using your developer tooling or the Web UI.
## Using Developer Tools
-Most smart contract tooling has plugins for verifying your contracts easily on Etherscan. Blockscout supports Etherscan's contract verification APIs, and it's straightforward to use these tools with the Scroll Sepolia Testnet.
+Most smart contract tooling has plugins for verifying your contracts easily on Etherscan. Blockscout supports Etherscan's contract verification APIs, so it's straightforward to use these tools using the APIs of either of these block explorers.
+
+| Network | Scroll | Scroll Sepolia |
+| ---------- | -------------------------------- | ---------------------------------------- |
+| Scrollscan | https://api.scrollscan.com/api | https://api-sepolia.scrollscan.com/api |
+| Blockscout | https://blockscout.scroll.io/api | https://sepolia-blockscout.scroll.io/api |
+
+
### Hardhat
-First, modify `hardhat.config.ts` to point to Scroll's RPC and `sepolia-blockscout.scroll.io/api`. A dummy `apiKey` value is required, but anything works for its value.
+Modify `hardhat.config.ts` to point to Scroll's RPC and block explorer API. For Blockscout, a dummy `apiKey` value is required, but anything works for its value. For Scrollscan, use your own API key.
+For example, if you are using Scroll Sepolia on Blockscout, your config will look like this:
```javascript
...
@@ -81,8 +85,46 @@ npx hardhat verify --network scrollSepolia 0xD9880690bd717189cC3Fbe7B9020F27fae7
### Foundry
-When using Foundry, the `verify-contract` helps automate the process of verifying contracts.
+When using Foundry, the `verify-contract` command helps automate the process of verifying contracts. If your contract has constructor arguments, you can specify these in ABI-encoded form with the `--constructor-args` option. For example, if your constructor takes two `uint256` variables:
+```bash
+ --constructor-args $(cast abi-encode "constructor(uint256,uint256)" 0 7)
+```
+
+Refer to the [Foundry documentation](https://book.getfoundry.sh/reference/forge/forge-verify-contract) for further options you can specify.
+
+
+#### Scrollscan
```bash
-forge verify-contract : --chain-id 534351 --verifier-url --verifier blockscout
+forge verify-contract \
+ --verifier-url https://api-sepolia.scrollscan.com/api \
+ --etherscan-api-key \
+ --constructor-args
```
+
+
+#### Blockscout
+
+Specify the verification provider as `blockscout`.
+
+##### Scroll
+```bash
+forge verify-contract \
+ --verifier-url https://blockscout.scroll.io/api\? \
+ --verifier blockscout \
+ --constructor-args
+```
+
+##### Scroll Sepolia
+```bash
+forge verify-contract \
+ --verifier-url https://sepolia-blockscout.scroll.io/api\? \
+ --verifier blockscout \
+ --constructor-args
+```
+
+
\ No newline at end of file
diff --git a/src/content/docs/en/getting-started/overview.md b/src/content/docs/en/getting-started/overview.md
index a3c95865f..9a854f2e8 100644
--- a/src/content/docs/en/getting-started/overview.md
+++ b/src/content/docs/en/getting-started/overview.md
@@ -12,7 +12,7 @@ whatsnext: { "User Guide": "/user-guide/", "Building on Scroll": "/developers/"
Scroll is a security-focused scaling solution for Ethereum, using innovations in scaling design and zero knowledge proofs to build a new layer on Ethereum. The Scroll network is more accessible, more responsive, and can support more users at once than Ethereum alone, and if you've ever used or developed an application on Ethereum, you'll be right home on Scroll.
-Want to try out the Scroll Sepolia testnet? Check out our [User Guide](/user-guide/).
+Want to try out the Scroll Sepolia testnet with free assets before using Scroll? Check out our [User Guide](/user-guide/).
## What is Scroll building?
@@ -30,14 +30,12 @@ For more information on our architecture, see [Scroll Architecture](/technology/
## Can I use Scroll today?
-Our Scroll Sepolia testnet is live. Although we have a [comprehensive guide](/user-guide/), if you're familiar with using Ethereum, you can get started in minutes:
+Scroll mainnet on Ethereum is live! We also have a testnet running on Ethereum Sepolia, the Scroll Sepolia testnet. Although we have a [comprehensive guide](/user-guide/), if you're familiar with using Ethereum, you can get started in minutes:
-- Visit our [Bridge](https://scroll.io/bridge) and connect your wallet
-- Send tokens from Sepolia to Scroll Sepolia testnet (or use a [faucet](/user-guide/faucet))
-- Test out a dapp like our [Uniswap Showcase](http://uniswap-showcase.sepolia.scroll.xyz/) -- just be sure to select the Scroll Sepolia network!
-
-
+- Visit our [Bridge](https://scroll.io/bridge) or [Scroll Sepolia Bridge](https://sepolia.scroll.io/bridge) and connect your wallet
+- Send tokens from Ethereum mainnet to Scroll (or use a Scroll Sepolia [faucet](/user-guide/faucet))
+- Test out Scroll Sepolia testnet dapp like our [Uniswap Showcase](http://uniswap-showcase.sepolia.scroll.xyz/) or even [Aave](https://app.aave.com/) -- just be sure to select the Scroll Sepolia network!
## Where is Scroll headed?
-We're currently in our final testnet before launching our mainnet on Ethereum. Next up -- decentralizing each component of the stack. Check out [our roadmap](https://scroll.io) or follow along in [our Discord](https://discord.gg/scroll) or on [Twitter](https://twitter.com/scroll_zkp).
+We've released our mainnet on Ethereum, but there's still more work to do. Next up -- decentralizing each component of the stack. To stay up to date, check out [our blog](https://scroll.io/blog) or follow along in [our Discord](https://discord.gg/scroll) or on [Twitter](https://twitter.com/scroll_zkp).
diff --git a/src/content/docs/en/learn/index.mdx b/src/content/docs/en/learn/index.mdx
index 55b8184ed..ade566b4d 100644
--- a/src/content/docs/en/learn/index.mdx
+++ b/src/content/docs/en/learn/index.mdx
@@ -7,6 +7,8 @@ excerpt: "Learn more about Ethereum scalability and zero knowledge cryptography.
---
import NavCard from "../../../../components/NavCard.astro"
+import TechnologySvg from "../../../../assets/svgs/home/home-technology.svg?raw"
+import LearnSvg from "../../../../assets/svgs/home/home-learn.svg?raw"
Scroll pulls together research and engineering from Blockchain Protocols and Zero Knowledge Cryptography. If you want to dive deeper, keep reading and check out the additional resources.
@@ -14,13 +16,13 @@ Want to see a specific topic covered? Create [an issue](https://github.com/scrol
+ Audits don't guarantee the absence of security vulnerabilities. Using blockchains comes with risk, and Scroll is no
+ exception. We encourage users to use the protocol with caution and at their own risk.
+
+
+## Independent Audits
+
+Scroll has worked with several industry-leading security audit firms to review our codebase, with critical code receiving reviews from multiple teams, including [Trail of Bits](https://www.trailofbits.com/), [OpenZeppelin](https://www.openzeppelin.com/), [Zellic](https://www.zellic.io/), and [KALOS](https://www.kalos.xyz/).
+
+- Trail of Bits, Zellic, and KALOS have reviewed our zkEVM circuits
+- OpenZeppelin and Zellic have performed independent audits on our bridge & rollup contracts
+- Trail of Bits has analyzed our node implementation
+
+### zkEVM circuits
+
+- Trail of Bits
+ - [Wave 1](https://github.com/trailofbits/publications/blob/master/reviews/2023-04-scroll-zkEVM-wave1-securityreview.pdf)
+ - [Wave 2](https://github.com/trailofbits/publications/blob/master/reviews/2023-08-scroll-zkEVM-wave2-securityreview.pdf)
+ - [Wave 3](https://github.com/trailofbits/publications/blob/master/reviews/2023-09-scroll-zkEVM-wave3-securityreview.pdf)
+- Zellic and Kalos
+ - [Wave 1](https://github.com/Zellic/publications/blob/master/Scroll%20zkEVM%20-%20Part%201%20Audit%20Report.pdf)
+ - [Wave 2](https://github.com/Zellic/publications/blob/master/Scroll%20zkEVM%20-%20Part%202%20Audit%20Report.pdf)
+
+### Node implementation
+
+- Trail of Bits
+ - [zkTrie](https://github.com/trailofbits/publications/blob/master/reviews/2023-07-scroll-zktrie-securityreview.pdf)
+ - [L2geth](https://github.com/trailofbits/publications/blob/master/reviews/2023-08-scrollL2geth-initial-securityreview.pdf)
+ - [L2geth diff](https://github.com/trailofbits/publications/blob/master/reviews/2023-08-scrollL2geth-securityreview.pdf)
+
+### Bridge and rollup contract
+
+- OpenZeppelin
+ - [Phase 1](https://blog.openzeppelin.com/scroll-layer-1-audit-1)
+ - [Phase 2](https://blog.openzeppelin.com/scroll-phase-2-audit)
+ - [GasSwap, Multiple Verifier, Wrapped Ether and Diff](https://blog.openzeppelin.com/scroll-gasswap-multiple-verifier-wrapped-ether-and-diff-audit)
+ - [ScrollOwner and Rate Limiter](https://blog.openzeppelin.com/scrollowner-and-rate-limiter-audit)
+ - [USDC Gateway](https://blog.openzeppelin.com/scroll-usdc-gateway-audit)
+ - [Contract diff](https://blog.openzeppelin.com/scroll-diff-audit-report)
+- Zellic
+ - [Report 1](https://github.com/Zellic/publications/blob/master/Scroll%20-%2005.26.23%20Zellic%20Audit%20Report.pdf)
+ - [Report 2](https://github.com/Zellic/publications/blob/master/Scroll%20-%2009.27.23%20Zellic%20Audit%20Report.pdf)
+
+## Bug Bounty Program
+
+Scroll has an active [Bug Bounty Program on Immunefi](https://immunefi.com/bounty/scroll/), a leading bug bounty platform. The program is open to the public, and we encourage anyone to participate.
+
+Rewards depend on the severity of reported vulnerabilities:
+
+- **Critical**: up to \$1,000,000
+- **High**: \$10,000 - \$50,000
+- **Medium**: \$5,000
+
+### Scope
+
+The scope of the bug bounty program covers the blockchain infrastructure and the smart contracts for bridging and rollup. For a detailed breakdown of bug categories, please refer to the bug bounty page.
+
+Besides the listed scopes in the bug bounty program, we also encourage reporting any vulnerabilities identified to Immunefi, which we will still consider for rewards. For any discoveries of critical vulnerabilities outside of the scope of the bug bounty program, please also send reports to security@scroll.io.
diff --git a/src/content/docs/en/technology/sequencer/zktrie.mdx b/src/content/docs/en/technology/sequencer/zktrie.mdx
index b9d592b6a..9c85e1aa7 100644
--- a/src/content/docs/en/technology/sequencer/zktrie.mdx
+++ b/src/content/docs/en/technology/sequencer/zktrie.mdx
@@ -20,7 +20,7 @@ You can also explore our [zktrie repo](https://github.com/scroll-tech/zktrie).
## Tree Structure
-zkTrie is a sparse binary Merkle Patricia Trie, depicted in the above figure.
+zkTrie is a sparse binary Merkle Patricia Trie, depicted in the below figure.
Before diving into the Sparse Binary Merkle Patricia Trie, let's briefly touch on Merkle Trees and Patricia Tries.
* **Merkle Tree**: A Merkle Tree is a tree where each leaf node represents a hash of a data block, and each non-leaf node represents the hash of its child nodes.
* **Patricia Trie**: A Patricia Trie is a type of radix tree or compressed trie used to store key-value pairs efficiently. It encodes the nodes with same prefix of the key to share the common path, where the path is determined by the value of the node key.
@@ -40,7 +40,7 @@ Given a key-value pair, we first compute a *secure key* for the corresponding le
We encode the path of a new leaf node by traversing the secure key from Least Significant Bit (LSB) to the Most Significant Bit (MSB). At each step, if the bit is 0, we will traverse to the left child; otherwise, traverse to the right child.
-We limit the maximum depth of zkTrie to 248, meaning that the tree will only traverse the lower 248 bits of the key. Because the secure key space is a finite field used by Poseidon hash that doesn't occupy the full range of $2^{256}$. the bit representation of the key can be ambiguous in the finite field and thus results in a soundness issue in the zk circuit. After we truncate the key to lower 248 bits, the key space can fully occupy the range of $2^{248}$ and won't have the ambiguity in the bit representation.
+We limit the maximum depth of zkTrie to 248, meaning that the tree will only traverse the lower 248 bits of the key. Because the secure key space is a finite field used by Poseidon hash that doesn't occupy the full range of $2^{256}$, the bit representation of the key can be ambiguous in the finite field and thus results in a soundness issue in the zk circuit. After we truncate the key to lower 248 bits, the key space can fully occupy the range of $2^{248}$ and won't have the ambiguity in the bit representation.
We apply an optimization to reduce the tree depth by contracting a subtree that has only one leaf node to a single leaf node. For example, in the Figure 1, the tree has three nodes in total, with keys `0100`, `0010`, and `1010`. Because there is only one node that has key with suffix `00`, the leaf node for key `0100` only traverses the suffix `00` and doesn't fully expand its key which would have resulted in depth of 4.
diff --git a/src/content/docs/en/technology/zkevm/intro-to-zkevm.md b/src/content/docs/en/technology/zkevm/intro-to-zkevm.md
index 1c4bc4772..f2751c980 100644
--- a/src/content/docs/en/technology/zkevm/intro-to-zkevm.md
+++ b/src/content/docs/en/technology/zkevm/intro-to-zkevm.md
@@ -12,7 +12,7 @@ whatsnext: { "zkEVM Overview": "/technology/zkevm/zkevm-overview" }
ZK rollups are widely recognized as the ideal scaling solution for Ethereum. They inherit the strong security of Ethereum Layer 1 and offer the fastest transaction finality compared to other Layer 2 solutions.
-The basic idea of a ZK rollup is to execute transactions off-chain and to generate succinct proofs of the execution’s validity. These succinct proof can then be posted and verified on Ethereum Layer 1. ZK rollups improve scalability since verifying the proof for a batch of transactions is much cheaper than re-executing the batch of transactions.
+The basic idea of a ZK rollup is to execute transactions off-chain and to generate succinct proofs of the execution’s validity. These succinct proofs can then be posted and verified on Ethereum Layer 1. ZK rollups improve scalability since verifying the proof for a batch of transactions is much cheaper than re-executing the batch of transactions.
ZK rollups can be categorized into application-specific and general-purpose rollups, based on the types of transactions they support. Application-specific ZK rollups are designed for particular transaction sets, such as payments and swaps, or a player’s action set for an on-chain game. In these cases, rollups only need to generate proofs attesting to the correctness of the supported primitives, such as valid state transitions for game players.
diff --git a/src/content/docs/en/user-guide/bridge.mdx b/src/content/docs/en/user-guide/bridge.mdx
index b55ce7853..06fed6bc3 100644
--- a/src/content/docs/en/user-guide/bridge.mdx
+++ b/src/content/docs/en/user-guide/bridge.mdx
@@ -19,7 +19,8 @@ excerpt: "To start bridging assets from Sepolia, navigate to the portal bridge a
{/* TODO: Update all instructions after being able to walk through the whole flow. */}
-Visit our [Bridge](https://scroll.io/bridge) app to get started![^thanks-hop] The Bridge supports both **Deposit** and **Withdraw** operations, allowing users to trustlessly move assets from Sepolia Testnet to Scroll Sepolia Testnet.
+
+Visit our [Bridge](https://sepolia.scroll.io/bridge) app to get started![^thanks-hop] The Bridge supports both **Deposit** and **Withdraw** operations, allowing users to trustlessly move assets from Sepolia Testnet to Scroll Sepolia Testnet.
[^thanks-hop]: Forked from [Hop Exchange](https://hop.exchange/)'s UI 🙌
Deposits can take up to 15 minutes to be available on Scroll.
@@ -34,7 +35,7 @@ The time estimates above are typical for normal network behavior and activity le
### Instructions
-1. First, navigate to the [Scroll Bridge](https://scroll.io/bridge) and press the "Connect Wallet."
+1. First, navigate to the [Scroll Bridge](https://sepolia.scroll.io/bridge) and press the "Connect Wallet" button.
1. In the app, ensure that **Ethereum Sepolia** is on top and **Scroll Sepolia** is on the bottom. You can click the "**↓**" button to switch their positions.
1. Select the token you want to transfer from Sepolia to Scroll Sepolia. If it's you're first time bridging, try "ETH."
1. If this is your first time transferring a specific ERC20 token, you must **Approve** the Sepolia Bridge contract to access your ERC20 token.
diff --git a/src/content/docs/en/user-guide/faucet.mdx b/src/content/docs/en/user-guide/faucet.mdx
index 8b96cb0db..c889c7581 100644
--- a/src/content/docs/en/user-guide/faucet.mdx
+++ b/src/content/docs/en/user-guide/faucet.mdx
@@ -20,6 +20,7 @@ Here are a few Sepolia faucet apps:
- [https://sepolia-faucet.pk910.de](https://sepolia-faucet.pk910.de)
- [https://faucet.quicknode.com/drip](https://faucet.quicknode.com/drip)
- [https://faucet.chainstack.com](https://faucet.chainstack.com)
+- [https://infura.io/faucet/sepolia](https://infura.io/faucet/sepolia)
Once you receive ETH on Sepolia, you should see it in your wallet on the _Sepolia Network_. It may take a few seconds for them to appear, but you can check the status by looking for a transaction to your address on a [Sepolia Block Explorer](https://sepolia.etherscan.io/).
@@ -35,3 +36,4 @@ If you don't want to interact with the bridge, some faucets directly distribute
- [https://www.covalenthq.com/faucet/](https://www.covalenthq.com/faucet)
- [https://faucet.quicknode.com/scroll/sepolia](https://faucet.quicknode.com/scroll/sepolia)
- [https://bwarelabs.com/faucets/scroll-testnet](https://bwarelabs.com/faucets/scroll-testnet)
+- [https://scroll.faucetme.pro](https://scroll.faucetme.pro)
diff --git a/src/content/docs/en/user-guide/index.md b/src/content/docs/en/user-guide/index.mdx
similarity index 59%
rename from src/content/docs/en/user-guide/index.md
rename to src/content/docs/en/user-guide/index.mdx
index 9813190d0..30beeb288 100644
--- a/src/content/docs/en/user-guide/index.md
+++ b/src/content/docs/en/user-guide/index.mdx
@@ -8,26 +8,34 @@ excerpt: "Thank you for testing out our Sepolia Testnet. The Sepolia Testnet con
whatsnext: { "Set Up Your Wallet": "/user-guide/setup" }
---
+import Aside from "../../../../components/Aside.astro"
+
+
+
Thank you for testing the Scroll Sepolia Testnet. If you have questions or want to give feedback, join our [Discord](https://discord.gg/scroll)!
-The Sepolia Testnet consists of _Ethereum's Sepolia Testnet_ and the _Scroll Sepolia_ test network. Sepolia is an Ethereum test network, while Scroll Sepolia is a zero knowledge rollup testnet deployed on top of the former. There are some pre-deployed demo applications: a [bridge](https://scroll.io/bridge) between _Sepolia_ and _Scroll Sepolia_,[^1] a [block explorer](https://sepolia-blockscout.scroll.io/) for _Scroll Sepolia_,[^2] and a [rollup explorer](https://scroll.io/rollupscan).
+The Sepolia Testnet consists of _Ethereum's Sepolia Testnet_ and the _Scroll Sepolia_ test network. Sepolia is an Ethereum test network, while Scroll Sepolia is a zero knowledge rollup testnet deployed on top of the former. There are some pre-deployed demo applications: a [bridge](https://sepolia.scroll.io/bridge) between _Sepolia_ and _Scroll Sepolia_,[^1] a [block explorer](https://sepolia-blockscout.scroll.io/) for _Scroll Sepolia_,[^2] and a [rollup explorer](https://sepolia.scroll.io/rollupscan).
To view L1 transactions, check out Etherscan's [Sepolia explorer](https://sepolia.etherscan.io/).
-To view L2 transactions, you can use Scroll's block explorer, but you may also want to try out the additional functionality provided by [Dora](https://www.ondora.xyz/network/scroll-sepolia/interactions) or [L2Scan](https://scroll.l2scan.co/).
+To view L2 transactions, you can use [Scrollscan](https://sepolia.scrollscan.com) or Scroll's [Blockscout](https://sepolia-blockscout.scroll.io/), but you may also want to try out the additional functionality provided by [Dora](https://www.ondora.xyz/network/scroll-sepolia/interactions) or [L2Scan](https://scroll-sepolia.l2scan.co/).
Here is the suggested workflow to explore the Testnet:
-1. Add the [Sepolia Testnet](https://scroll.io/portal) configurations to your wallet.
+1. Add the [Sepolia Testnet](https://sepolia.scroll.io/portal) configurations to your wallet.
2. Request test tokens in the _Sepolia_ network from any Ethereum Faucet app. (see [Faucet](/user-guide/faucet) article)
-3. Transfer test tokens from _Sepolia_ to _Scroll Sepolia_ through the [Bridge](https://scroll.io/bridge) app.
+3. Transfer test tokens from _Sepolia_ to _Scroll Sepolia_ through the [Bridge](https://sepolia.scroll.io/bridge) app.
4. Transfer tokens to other wallets on _Scroll Sepolia_ using your wallet.
-5. Explore our ecosystem, interacting with contracts like [Uniswap](http://uniswap-showcase.sepolia.scroll.xyz/).
-6. Withdraw tokens from _Scroll Sepolia_ to _Sepolia_ through the [Bridge](https://scroll.io/bridge) app.
+5. Explore our ecosystem, interacting with contracts like [Uniswap](https://uniswap-showcase.sepolia.scroll.xyz/) or [Aave](https://app.aave.com).
+6. Withdraw tokens from _Scroll Sepolia_ to _Sepolia_ through the [Bridge](https://sepolia.scroll.io/bridge) app.
You can find the instructions for each app in the rest of this user guide.
-
-
## Questions & Feedback
If you encounter any issues, join our [Discord](https://discord.gg/scroll) and talk to us in the `#general-support` channel. We would love to hear your thoughts or feedback on how we can improve your experience, too.
diff --git a/src/content/docs/en/user-guide/setup.mdx b/src/content/docs/en/user-guide/setup.mdx
index 3f90fe4ce..585d4a087 100644
--- a/src/content/docs/en/user-guide/setup.mdx
+++ b/src/content/docs/en/user-guide/setup.mdx
@@ -18,23 +18,23 @@ You need to have a wallet to interact with dApps on the Scroll Sepolia testnet.
You can install MetaMask from their [official website](https://metamask.io/download/).
-You can import the Scroll Sepolia testnet configurations to your MetaMask wallet. To do this, visit the [Scroll Sepolia portal](https://scroll.io/portal), then click the "Connect Wallet" button and select MetaMask. Next, click the "Add to MetaMask" buttons for Sepolia Testnet and Scroll Sepolia Testnet. This will import the chain ID and RPC URLs for the Scroll Sepolia Testnet. The Sepolia Testnet is also configured on MetaMask by default. To show it, click "Show/hide test networks" in the MetaMask network selection dropdown menu.
+You can import the Scroll Sepolia testnet configurations to your MetaMask wallet. To do this, visit the [Scroll Sepolia portal](https://sepolia.scroll.io/portal), then click the "Connect Wallet" button and select MetaMask. Next, click the "Add to MetaMask" buttons for Sepolia Testnet and Scroll Sepolia Testnet. This will import the chain ID and RPC URLs for the Scroll Sepolia Testnet. The Sepolia Testnet is also configured on MetaMask by default. To show it, click "Show/hide test networks" in the MetaMask network selection dropdown menu.
### Manual network configuration (for other wallets)
The **Add to wallet** links may not be compatible with every wallet. If you are having issues using them, you may need to manually add the _Sepolia Testnet_ and _Scroll Sepolia_ network by inserting the configuration details from the table below:
-| Network Name | Scroll Sepolia Testnet | Sepolia Testnet |
-| ------------------ | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
-| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://eth-sepolia-public.unifra.io](https://eth-sepolia-public.unifra.io) |
-| Chain ID | 534351 | 11155111 |
-| Currency Symbol | ETH | ETH |
-| Block Explorer URL | [https://sepolia-blockscout.scroll.io](https://sepolia-blockscout.scroll.io/) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |
+| Network Name | Scroll Sepolia Testnet | Sepolia Testnet |
+| ------------------ | ---------------------------------------------------------------- | ---------------------------------------------------------------------------- |
+| RPC URL | [https://sepolia-rpc.scroll.io/](https://sepolia-rpc.scroll.io/) | [https://eth-sepolia-public.unifra.io](https://eth-sepolia-public.unifra.io) |
+| Chain ID | 534351 | 11155111 |
+| Currency Symbol | ETH | ETH |
+| Block Explorer URL | [https://sepolia.scrollscan.com](https://sepolia.scrollscan.com) | [https://sepolia.etherscan.io](https://sepolia.etherscan.io) |