diff --git a/docs/architecture/index.mdx b/docs/architecture/index.mdx
index 07e03ed5e..6ccbafc08 100644
--- a/docs/architecture/index.mdx
+++ b/docs/architecture/index.mdx
@@ -114,6 +114,6 @@ _...in other words, there's a lot involved._
## Next steps
-- Learn more about the different components that comprise the [Linea](architecture/stack).
+- Learn more about the different components that comprise the [Linea architecture](./stack/index.mdx).
- Understand the first point of contact for many new L2 users, the bridge. Linea has more than one bridge; and that number is likely to continue to
-grow. The [Linea canonical message service](architecture/stack/canonical-msg-service) is key to these bridges and how they function.
+grow. The [Linea canonical message service](./stack/canonical-msg-service/index.mdx) is key to these bridges and how they function.
diff --git a/docs/architecture/overview/transaction-lifecycle.mdx b/docs/architecture/overview/transaction-lifecycle.mdx
index 4b84aeb8d..199c46311 100644
--- a/docs/architecture/overview/transaction-lifecycle.mdx
+++ b/docs/architecture/overview/transaction-lifecycle.mdx
@@ -16,7 +16,7 @@ Ethereum, where they become pending transactions.
## Step 2: Block building
-The Linea [sequencer](/architecture/stack/sequencer) is responsible for ordering, building, and executing blocks.
+The Linea [sequencer](../stack/sequencer/index.mdx) is responsible for ordering, building, and executing blocks.
For each transaction added to the mempool, the sequencer checks its validity, rejecting
transactions as necessary. Transaction validity conditions are specific to Linea, and differ
slightly from those on other networks, including Ethereum.
@@ -36,7 +36,7 @@ generate ZK proofs. Let's press on.
## Step 3: Transaction data sent to the state manager
Data about the transaction and the state of the network at its time of execution are recorded
-in **traces**, an output of part of the sequencer called the [trace generator](/architecture/stack/sequencer/traces-generator).
+in **traces**, an output of part of the sequencer called the [trace generator](../stack/sequencer/traces-generator.md).
Traces are passed to the state manager block-by-block and then used to update the network state.
Once state is up to date, you'll see the transaction reflected and confirmed in your wallet.
@@ -48,7 +48,7 @@ before true finality is reached.
## Step 4: Conflation
-The transaction's block will then be subject to [conflation](/architecture/stack/sequencer/conflation), which
+The transaction's block will then be subject to [conflation](../stack/sequencer/conflation.md), which
combines two or more blocks' transaction data into a single data set (batch) that forms part of
the package of data passed on to Ethereum. Combining the transaction data of multiple blocks
means that a single proof can be used to verify a large volume of transactions, minimizing the
@@ -66,7 +66,7 @@ With the block that contains the transaction's trace data conflated into a batch
more others, the only remaining task on the checklist to achieve **_hard_ finality** is to use
the transaction's data—as contained in its trace—to generate a proof.
-When prompted by the [Coordinator](/architecture/stack/coordinator), Linea's [prover](/architecture/stack/trace-expansion-proving)
+When prompted by the [Coordinator](../stack/coordinator/index.mdx), Linea's [prover](../stack/trace-expansion-proving/index.mdx)
will first **expand** the trace, preparing it for inclusion in the proof. Linea's prover employs
a two-stage method for developing the proofs that eventually get passed to L1, first developing
an **inner proof** and then an **outer proof**.
diff --git a/docs/architecture/stack/bridges/canonical-token-bridge.mdx b/docs/architecture/stack/bridges/canonical-token-bridge.mdx
index d5e54e6a4..f96e01d7f 100644
--- a/docs/architecture/stack/bridges/canonical-token-bridge.mdx
+++ b/docs/architecture/stack/bridges/canonical-token-bridge.mdx
@@ -19,10 +19,10 @@ import TabItem from "@theme/TabItem";
The canonical token bridge is the pair of “lock & mint” contracts that allow bridging of any
-ERC-20 token. The bridge relies on the [message service](../canonical-msg-service/message-service)
+ERC-20 token. The bridge relies on the [message service](../canonical-msg-service/message-service.mdx)
for cross-chain interactions.
-The Linea team operates a UI for this bridge, available at [https://bridge.linea.build/](https://bridge.linea.build/).
+The Linea team operates a UI for the [official Linea bridge](https://bridge.linea.build/).
The canonical token bridge is optimized for technical partners who are deploying on Linea.
We recommend that everyday users of Linea seeking to bridge their personal tokens between
diff --git a/docs/architecture/stack/index.mdx b/docs/architecture/stack/index.mdx
index 15d90f408..dbadbb421 100644
--- a/docs/architecture/stack/index.mdx
+++ b/docs/architecture/stack/index.mdx
@@ -49,7 +49,7 @@ The repository contains the elements of Linea responsible for this process.
The Linea implementation of Hyperledger Besu, an Ethereum client, extended with plugins.
As Linea is EVM-equivalent, it is compatible with standard Ethereum clients without plugins; for
-example, you can also [run a Linea node using Geth](/developers/guides/run-a-node/use-binary#run-the-geth-client).
+example, you can also [run a Linea node using Geth](../../developers/guides/run-a-node/index.mdx).
### [`linea-sequencer`](https://github.com/Consensys/linea-sequencer)
diff --git a/docs/developers/community/hackathons.mdx b/docs/developers/community/hackathons.mdx
index e91567e8b..c92ddd608 100644
--- a/docs/developers/community/hackathons.mdx
+++ b/docs/developers/community/hackathons.mdx
@@ -15,11 +15,15 @@ All winners have the opportunity to bring their project to fruition through a va
And be featured on [X](https://twitter.com/lineabuild), [Linea Farcaster](https://warpcast.com/linea), and livestreams!
:::info
-[**Get started through the Linea Builder Launchpad**](https://aspecta.id/builder-matrix/Linea-builder-launchpad) to find the one-stop shop for claiming builder NFTs, applying for the Linea Builders Club, getting access to developer workshops, and other Linea developer activations.
+[**Get started through the Linea Builder Launchpad**](https://aspecta.id/builder-matrix/Linea-builder-launchpad)
+to find the one-stop shop for claiming builder NFTs, applying for the Linea Builders Club, getting
+access to developer workshops, and other Linea developer activations.
-[**Apply for the Linea Builders Club**](https://linea.deform.cc/linea-builders-club) to get exclusive access to tech talks, events, the Linea team, and more!
+[**Apply for the Linea Builders Club**](https://linea.deform.cc/linea-builders-club) to get exclusive
+access to tech talks, events, the Linea team, and more!
-[**Join the Consensys Developer Chat**](https://t.me/+rI-iPLacQXQ5MDVh) for IRL hackathons and get connected with the MetaMask, Phosphor, and Verax teams!
+[**Join the Consensys Developer Chat**](https://t.me/+rI-iPLacQXQ5MDVh) for IRL hackathons and get
+connected with the MetaMask, Phosphor, and Verax teams!
:::
## Helpful links
diff --git a/docs/developers/guides/community/irys/irys-dynamic-nfts.mdx b/docs/developers/guides/community/irys/irys-dynamic-nfts.mdx
index e6f27b8d7..e0576dd8b 100644
--- a/docs/developers/guides/community/irys/irys-dynamic-nfts.mdx
+++ b/docs/developers/guides/community/irys/irys-dynamic-nfts.mdx
@@ -5,7 +5,7 @@ description: Create NFTs that evolve based on user actions.
---
Data on Irys is permanent and immutable, but you can use
-[Irys' mutable references](https://docs.irys.xyz/developer-docs/mutable-references) to simulate
+[Irys' mutable references](https://arweave-tools.irys.xyz/irys-sdk/mutable-references) to simulate
mutability and create dynamic NFTs that evolve based on onchain or offchain actions.
With mutable references, you create a single, static URL that is linked to a series of transactions.
diff --git a/docs/developers/guides/community/irys/irys-nfts.mdx b/docs/developers/guides/community/irys/irys-nfts.mdx
index 10d85e8f6..edebaff5e 100644
--- a/docs/developers/guides/community/irys/irys-nfts.mdx
+++ b/docs/developers/guides/community/irys/irys-nfts.mdx
@@ -4,7 +4,7 @@ image: /img/socialCards/create-an-nft.jpg
description: Build permanent NFTs using Irys and Linea.
---
-You can use [Irys](/developers/tooling/permanent-data/irys/overview) to create an NFT on Linea. To do this:
+You can use [Irys](../../../tooling/permanent-data/irys/overview.mdx) to create an NFT on Linea. To do this:
1. Deploy your smart contract on Linea
2. Permanently store your NFT assets on Irys
@@ -15,16 +15,16 @@ collectors benefit from the assurance that their NFTs are preserved indefinitely
images stored are Irys are permanent and immutable.
:::note
-You can also use Irys to create [dynamic NFTs](./irys-dynamic-nfts) that evolve based on onchain or
+You can also use Irys to create [dynamic NFTs](./irys-dynamic-nfts.mdx) that evolve based on onchain or
offchain actions.
:::
## Deploy your smart contract
If you're new to NFTs and smart contract development, consider deploying
-one of [the audited ThirdWeb contracts](/developers/quickstart/deploy-smart-contract/thirdweb) to learn more.
+one of [the audited ThirdWeb contracts](../../../../developers/quickstart/deploy-smart-contract/thirdweb.md) to learn more.
-You can also [deploy this minimal contract using Remix](/developers/quickstart/deploy-smart-contract/remix).
+You can also [deploy this minimal contract using Remix](../../../../developers/quickstart/deploy-smart-contract/remix.md).
```solidity
// SPDX-License-Identifier: MIT
@@ -75,9 +75,9 @@ contract IrysLineaNFT is ERC721, ERC721URIStorage, Ownable {
Uploads to Irys are fully unconstrained; you can upload files of any size and use Irys to make
images, videos, music, or interactive NFTs.
-This guide covers using the [Irys CLI](/developers/tooling/permanent-data/irys/irys-quickstart#irys-cli) to
+This guide covers using the [Irys CLI](../../../tooling/permanent-data/irys/irys-quickstart.mdx#irys-cli) to
upload your assets to Irys. You can also do the same using the
-[Irys SDK](/developers/tooling/permanent-data/irys/irys-quickstart#irys-sdk).
+[Irys SDK](../../../tooling/permanent-data/irys/irys-quickstart.mdx#irys-sdk).
### Store your visual assets
@@ -178,4 +178,4 @@ irys upload metadata.json \
## Mint the NFTs
Now use your metadata URLs (in the format `https://gateway.irys.xyz/:txId`) to mint the NFTs
-using [the contract you deployed on Linea](/developers/quickstart/deploy-smart-contract).
+using [the contract you deployed on Linea](../../../../developers/quickstart/deploy-smart-contract/index.mdx).
diff --git a/docs/developers/guides/gas/gas-fees.mdx b/docs/developers/guides/gas/gas-fees.mdx
index 1710fae26..5b2184f0c 100644
--- a/docs/developers/guides/gas/gas-fees.mdx
+++ b/docs/developers/guides/gas/gas-fees.mdx
@@ -34,12 +34,12 @@ components:
## Estimating transaction costs
-Use the [`linea_estimateGas`](/developers/reference/api/linea-estimategas) API method to estimate the
+Use the [`linea_estimateGas`](../../reference/api/linea-estimategas.mdx) API method to estimate the
gas cost for sending a transaction. The method returns the recommended gas limit, the base fee per
gas, and the priority fee per gas.
The `linea_estimateGas` endpoint is currently unavailable. For more information, see
-our [reference page](/developers/reference/api/linea-estimategas).
+our [reference page](../../reference/api/linea-estimategas.mdx).
:::info important
diff --git a/docs/developers/guides/run-a-node/use-binary.mdx b/docs/developers/guides/run-a-node/use-binary.mdx
index 8302d0885..eb587f61c 100644
--- a/docs/developers/guides/run-a-node/use-binary.mdx
+++ b/docs/developers/guides/run-a-node/use-binary.mdx
@@ -42,7 +42,7 @@ Download the genesis file and Besu configuration file.
You can choose from a range of edge nodes (enodes) for Linea Mainnet. The Besu `config-mainnet.toml`
file uses all enodes by default.
- See our [enodes page](./enodes) for a full list of available enodes.
+ See our [enodes page](./enodes.mdx) for a full list of available enodes.
:::
diff --git a/docs/developers/guides/run-a-node/use-docker.mdx b/docs/developers/guides/run-a-node/use-docker.mdx
index fcb77eb0a..2868e174c 100644
--- a/docs/developers/guides/run-a-node/use-docker.mdx
+++ b/docs/developers/guides/run-a-node/use-docker.mdx
@@ -38,7 +38,7 @@ files include the network genesis file, Docker Compose file and Besu configurati
config file named `config-snap-mainnet.toml` where enodes are specified. The file uses all enodes
by default.
- See our [enodes page](./enodes) for a full list of available enodes.
+ See our [enodes page](./enodes.mdx) for a full list of available enodes.
:::
diff --git a/docs/developers/linea-version/index.mdx b/docs/developers/linea-version/index.mdx
index 4b2321b7f..337dfb392 100644
--- a/docs/developers/linea-version/index.mdx
+++ b/docs/developers/linea-version/index.mdx
@@ -33,7 +33,7 @@ contracts created by ENS have been adjusted by the Linea team to ensure they wor
Sparse Merkle Tree system.
The CCIP Read functionality can be applied to any context where a L1 protocol may benefit from
-securely querying data on Linea. See our [page on CCIP Read](/developers/tooling/cross-chain/ccip-read-gateway)
+securely querying data on Linea. See our [page on CCIP Read](../tooling/cross-chain/ccip-read-gateway.mdx)
for more information and guidance on how to use the relevant contracts.
The Linea repository containing the relevant contracts is [here](https://github.com/Consensys/linea-ens).
@@ -50,7 +50,7 @@ Available on Linea Sepolia on July 31; available on Mainnet from August 1.
Activates the `linea_estimateGas` endpoint for use on Mainnet.
-See our [reference page](/developers/reference/api/linea-estimategas) for more information and usage.
+See our [reference page](../reference/api/linea-estimategas.mdx) for more information and usage.
## Alpha v3.3
@@ -125,7 +125,7 @@ and [Cyfrin](https://github.com/Cyfrin/cyfrin-audit-reports/blob/main/reports/20
**Mainnet: May 14**
- Introduces dynamic L1 gwei thresholds for submitting data to L1 for finalization.
-- Adds the [`eth_sendRawTransaction`](reference/api/eth-sendrawtransaction) method,
+- Adds the [`eth_sendRawTransaction`](../reference/api/eth-sendrawtransaction.mdx) method,
available only via Besu endpoints.
## Alpha v3
@@ -226,25 +226,32 @@ Primarily, the L1 costs are driven by the following:
- Hashing the batch submission data to produce the public input of the Plonk verifier.
-- Calldata costs, driven by the size of the batch submission data. This includes all the transaction data from L2, as well as messaging data (one hash per L2 to L1 message).
+- Calldata costs, driven by the size of the batch submission data. This includes all the transaction data
+ from L2, as well as messaging data (one hash per L2 to L1 message).
### Features
To decrease L1 costs, we implemented the following features:
- Proof aggregation:
- - This allows us to create a set of execution proofs for conflated batches and generates an aggregated proof that verifies that all the batches are correct. Since it takes the same amount of gas to verify an aggregated proof vs. a proof for a single batch of conflated blocks, the average cost of verifying a proof aggregating N proofs is N times cheaper.
+ - This allows us to create a set of execution proofs for conflated batches and generates an aggregated proof
+ that verifies that all the batches are correct. Since it takes the same amount of gas to verify
+ an aggregated proof vs. a proof for a single batch of conflated blocks, the average cost of verifying a
+ proof aggregating N proofs is N times cheaper.
- Data compression:
- This reduces the call data cost on L1 by compressing L2 block data. (Post EIP-4844 this will be stored in blobs)
- Switched L2 to L1 messaging anchoring from individual hashes to Merkle trees:
- - Due to the size of the Merkle trees (32 messages) requiring only one Merkle root to be anchored, there is a 32x calldata size reduction for message hashes
+ - Due to the size of the Merkle trees (32 messages) requiring only one Merkle root to be anchored, there
+ is a 32x calldata size reduction for message hashes
### Smart contract changes
To support these new features, we implemented changes to our smart contracts.
-We introduce a `VERIFIER_SETTER_ROLE`, that will be attributed to the Timelock.sol so that all core contract upgrades (Rollup and Message and Token bridge) and verifiers are executed through a TimeLock mechanism.
-Note that we are also using this upgrade to update the way the type 2 state was calculated; as such we'll need to call `finalizeWithoutProof` to perform a state transition from type2 state v1 to type2 state v2.
+We introduce a `VERIFIER_SETTER_ROLE`, that will be attributed to the Timelock.sol so that all core
+contract upgrades (Rollup and Message and Token bridge) and verifiers are executed through a TimeLock mechanism.
+Note that we are also using this upgrade to update the way the type 2 state was calculated; as such we'll
+need to call `finalizeWithoutProof` to perform a state transition from type2 state v1 to type2 state v2.
The Security Council will first execute the following transactions on L1:
- Assign Operator Role via the Safe to the account for blob submission
@@ -263,7 +270,8 @@ Post upgrade, Execute the following Security Council transactions on L1:
- Call FinalizeWithoutProof
- Clear verifier mapping at index 6 and 7
-The audited commit for this update can be found [here](https://github.com/Consensys/linea-contracts-audit/commit/99039ebc8d6cb3009cf46286d5de4c484e03bc81).
+The audited commit for this update can be found
+[here](https://github.com/Consensys/linea-contracts-audit/commit/99039ebc8d6cb3009cf46286d5de4c484e03bc81).
Two independent audits have been performed for this update. Reports can be found here:
@@ -275,23 +283,28 @@ Two independent audits have been performed for this update. Reports can be found
**Message claiming**
-- Parties claiming messages on Layer 1 will need to adjust claiming behavior to account for Merkle Proof generation requests and their submission when claiming a message. This applies to messages sent post upgrading. Pre-existing messages must be claimed with the current approach.
+- Parties claiming messages on Layer 1 will need to adjust claiming behavior to account for Merkle Proof
+ generation requests and their submission when claiming a message. This applies to messages sent post
+ upgrading. Pre-existing messages must be claimed with the current approach.
:::info[Note]
If you are using the Linea Bridge UI, then this is already done for you. If you are a partner/user who manages
-their claiming outside of the Bridge UI, then we recommend looking at the updated [SDK](/developers/guides/linea-sdk).
+their claiming outside of the Bridge UI, then we recommend looking at the updated [SDK](../guides/linea-sdk/index.md).
:::
**Finalization events**
-- After migration to the new finalization mechanism, the rollup contract will no longer emit finalization events per block, but will instead emit events for data submission as well as an event indicating the current point of finalization.
+- After migration to the new finalization mechanism, the rollup contract will no longer emit finalization
+ events per block, but will instead emit events for data submission as well as an event indicating the
+ current point of finalization.
- The calldata will contain only the final block state root hash and final block number.
:::info[Note]
-This is a breaking change for consumers listening to the existing events. The `BlockFinalized` event will be replaced by the `DataFinalized` event.
+This is a breaking change for consumers listening to the existing events. The `BlockFinalized` event will
+be replaced by the `DataFinalized` event.
:::
@@ -384,19 +397,23 @@ This is a breaking change for consumers listening to the existing events. The `B
### Performance improvements
-- Changes to the Genesis File: We made changes to the genesis file to enable block times to be reduced. This enhancement improves the overall performance and throughput of Linea.
+- Changes to the Genesis File: We made changes to the genesis file to enable block times to be reduced. This
+ enhancement improves the overall performance and throughput of Linea.
- Improved Gas Limit Estimation for Finalization on L1: We improved the gas limit estimation for finalization on L1.
### Cost efficiency
-- We updated the L1 message service contract to work with the Merkle tree, reducing gas costs and further enhancing the cost-effectiveness of Linea.
+- We updated the L1 message service contract to work with the Merkle tree, reducing gas costs and further
+ enhancing the cost-effectiveness of Linea.
-- We added a fixed cost to the gas price to cover infrastructure costs for system economic sustainability. This change ensures the long-term financial viability of Linea.
+- We added a fixed cost to the gas price to cover infrastructure costs for system economic sustainability. This
+ change ensures the long-term financial viability of Linea.
### User experience
-- We smoothed the L2 gas price estimation by using an L1 moving average. This update makes our gas price estimation more accurate and reliable.
+- We smoothed the L2 gas price estimation by using an L1 moving average. This update makes our gas price
+ estimation more accurate and reliable.
## Linea Alpha v0.2.3 (June 22, 2023)
@@ -412,13 +429,15 @@ This release focuses on updating the Postman SDK configuration values and revisi
### Features
-- Updated the Postman SDK configuration files to handle messages that are contract calls with zero ETH value being transferred and revised gas fee calculations.
+- Updated the Postman SDK configuration files to handle messages that are contract calls with zero ETH value
+ being transferred and revised gas fee calculations.
## Linea Alpha v0.2.1 (June 15, 2023)
### Summary
-This release reduces the gas cost of submitting a batch of transactions on L1 by optimizing L2 logs in the calldata that is sent to L1.
+This release reduces the gas cost of submitting a batch of transactions on L1 by optimizing L2 logs in the
+calldata that is sent to L1.
### Features
@@ -447,27 +466,36 @@ This release reduces the gas cost of submitting a batch of transactions on L1 by
### Summary
-This release focuses on testing a substantial architecture upgrade in preparation for Mainnet launch. It contains multiple improvements and breaking changes, specifically around the messaging layer which is changed to a push model. It also improves EVM prover coverage, and provides batch conflation.
+This release focuses on testing a substantial architecture upgrade in preparation for Mainnet launch. It
+contains multiple improvements and breaking changes, specifically around the messaging layer which is changed
+to a push model. It also improves EVM prover coverage, and provides batch conflation.
### Features
- Add Batch Conflation feature to the sequencer to minimize L1 transactions cost.
- - With Batch Conflation, L2 blocks' proofs that should have been independent are instead merged together. Therefore, L1 costs for these blocks’ proofs are divided by the number of merged blocks.
+ - With Batch Conflation, L2 blocks' proofs that should have been independent are instead merged together.
+ Therefore, L1 costs for these blocks’ proofs are divided by the number of merged blocks.
- Improve the following smart contracts:
- Rollup zkEVM: Upgrade the rollup main contract with support for
- Conflation
- Security Council management
- Verifier
- - Outer proof system moved from Groth16 to Plonk + custom gates to support efficient Fiat Shamir, c.f.: https://eprint.iacr.org/2022/1072.pdf section 6.2
+ - Outer proof system moved from Groth16 to Plonk + custom gates to support efficient
+ Fiat Shamir, c.f.: https://eprint.iacr.org/2022/1072.pdf section 6.2
- Messaging Service
- - Changed the message service model by splitting the delivery into anchoring and claiming of messages to allow more flexible workflows, remove the mandatory fee for L1→L2, reduce the mandatory fee for L2→L1
- - Canonical Token Bridge: Upgrade from 1-1 ERC-20 basic token bridge to N-N ERC-20 canonical token bridge with reservation and token registry
+ - Changed the message service model by splitting the delivery into anchoring and claiming of
+ messages to allow more flexible workflows, remove the mandatory fee for L1→L2, reduce the mandatory fee for L2→L1
+ - Canonical Token Bridge: Upgrade from 1-1 ERC-20 basic token bridge to N-N ERC-20 canonical token bridge
+ with reservation and token registry
- Add Postman Service for message execution
- - The Postman Service is Linea’s off-chain message delivery service. It’s decentralized, permissionless, and used to claim messages once the protocol has anchored the message hashes. The first release will only contain the following scenarios:
+ - The Postman Service is Linea’s off-chain message delivery service. It’s decentralized, permissionless, and
+ used to claim messages once the protocol has anchored the message hashes. The first release will only
+ contain the following scenarios:
- DApps/protocols operating the SDK (to be released) claiming messages and paying for gas
- The protocol can filter messages based on origin or destination smart-contracts
- Linea operating the SDK for dApps/Protocols that aren’t yet integrated
- - If messages don’t get delivered by the postman, the message can be manually claimed by calling `claimMessage` with the `MessageSent` event parameters or by using the SDK.
+ - If messages don’t get delivered by the postman, the message can be manually claimed by calling
+ `claimMessage` with the `MessageSent` event parameters or by using the SDK.
- Update prover to integrate with the new architecture and support Batch Conflation
### Breaking changes
@@ -588,7 +616,7 @@ Contracts audit is in progress. This does not reflect final versions.
**Canonical Token Bridge**
-Major changes are applied to the Canonical Token Bridge as described in our [documentation](/architecture/stack/bridges/canonical-token-bridge).
+Major changes are applied to the Canonical Token Bridge as described in our [documentation](../../architecture/stack/bridges/canonical-token-bridge.mdx).
- **L1 (Goerli)**
diff --git a/docs/developers/quickstart/deploy-smart-contract/atlas.mdx b/docs/developers/quickstart/deploy-smart-contract/atlas.mdx
index 011318cc8..be16f7c45 100644
--- a/docs/developers/quickstart/deploy-smart-contract/atlas.mdx
+++ b/docs/developers/quickstart/deploy-smart-contract/atlas.mdx
@@ -10,8 +10,8 @@ Atlas is a browser-based IDE with an integrated AI assistant that allows you to
Before you begin, ensure you:
-1. [Set up your wallet](/users/move-funds/set-up-your-wallet).
-1. [Fund your wallet with Linea ETH](/users/move-funds/fund) on either the testnet or mainnet.
+1. [Set up your wallet](../../../users/move-funds/set-up-your-wallet.mdx).
+1. [Fund your wallet with Linea ETH](../../../users/move-funds/fund.mdx) on either the testnet or mainnet.
## Deploy a contract
diff --git a/docs/developers/quickstart/deploy-smart-contract/hardhat.mdx b/docs/developers/quickstart/deploy-smart-contract/hardhat.mdx
index fc0725f27..f649f838d 100644
--- a/docs/developers/quickstart/deploy-smart-contract/hardhat.mdx
+++ b/docs/developers/quickstart/deploy-smart-contract/hardhat.mdx
@@ -13,8 +13,8 @@ In this quickstart, we'll create a basic [Hardhat](https://hardhat.org/) project
Before you begin, ensure you:
-1. [Set up your wallet](/users/move-funds/set-up-your-wallet)
-2. [Fund your wallet with Linea ETH](/users/move-funds/fund) on either testnet, or mainnet
+1. [Set up your wallet](../../../users/move-funds/set-up-your-wallet.mdx).
+2. [Fund your wallet with Linea ETH](../../../users/move-funds/fund.mdx) on either testnet, or mainnet.
3. [Set up your environment using Hardhat's recommended instructions](https://hardhat.org/tutorial/setting-up-the-environment#2.-setting-up-the-environment).
## Create a Hardhat project
diff --git a/docs/developers/quickstart/index.mdx b/docs/developers/quickstart/index.mdx
index c368b6a8c..53033a4cc 100644
--- a/docs/developers/quickstart/index.mdx
+++ b/docs/developers/quickstart/index.mdx
@@ -12,8 +12,8 @@ It's always best practice to work on a test network before deploying a contract
Before you begin, ensure you've:
-1. [Set up your wallet](/users/move-funds/set-up-your-wallet)
-2. [Funded your wallet with Linea ETH](/users/move-funds/fund) on either the testnet or mainnet
+1. [Set up your wallet](../../users/move-funds/set-up-your-wallet.mdx).
+2. [Funded your wallet with Linea ETH](../../users/move-funds/fund.mdx) on either the testnet or mainnet.
## Resources
diff --git a/docs/developers/quickstart/info-contracts.mdx b/docs/developers/quickstart/info-contracts.mdx
index c2214d310..91bd26301 100644
--- a/docs/developers/quickstart/info-contracts.mdx
+++ b/docs/developers/quickstart/info-contracts.mdx
@@ -65,9 +65,10 @@ import TabItem from "@theme/TabItem";
## Connect with node providers
-If your dapp is using public endpoints, it may encounter rate limiting. You can find Linea node providers [here](/developers/tooling/node-providers).
+If your dapp is using public endpoints, it may encounter rate limiting. You can find Linea node providers
+[here](../tooling/node-providers/index.mdx).
-We recommend connecting to Linea via [private RPCs](/developers/tooling/node-providers#private-rpc-endpoints).
+We recommend connecting to Linea via [private RPCs](../tooling/node-providers/index.mdx#private-rpc-endpoints).
## Deployed contracts
@@ -127,11 +128,15 @@ We recommend connecting to Linea via [private RPCs](/developers/tooling/node-pro