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 -To see **the most up to date list of tokens on Linea**, see [the token explorer here](https://consensys.github.io/linea-token-list/), which is derived from the official lists in [this repo](https://github.com/Consensys/linea-token-list/blob/main/json/linea-mainnet-token-shortlist.json). +To see **the most up to date list of tokens on Linea**, see +[the token explorer here](https://consensys.github.io/linea-token-list/), which is derived from the +official lists in [this repo](https://github.com/Consensys/linea-token-list/blob/main/json/linea-mainnet-token-shortlist.json). :::warning[Note] -We recommend you rely on the shortlist in the above links, rather than the full list. The shortlist is actively curated by our team, whereas the full list is not, and automatically populates with all tokens bridged to Linea. +We recommend you rely on the shortlist in the above links, rather than the full list. The shortlist is +actively curated by our team, whereas the full list is not, and automatically populates with all +tokens bridged to Linea. ::: @@ -139,11 +144,13 @@ To **get your own token included**, please follow the instructions on this [repo To see **which third-party bridges are available**, consult our [Ecosystem Portal's list](https://linea.build/apps?types=bridge). -If you're **looking to bridge tokens to or from Linea**, head to the [Linea bridge page](https://bridge.linea.build/) to access the various options. +If you're **looking to bridge tokens to or from Linea**, head to the [Linea bridge page](https://bridge.linea.build/) +to access the various options. -Sepolia token contract addresses will be added to the [official token lists repository](https://github.com/Consensys/linea-token-list/tree/main/json) as soon as possible. +Sepolia token contract addresses will be added to the +[official token lists repository](https://github.com/Consensys/linea-token-list/tree/main/json) as soon as possible. diff --git a/docs/developers/reference/api/linea-estimategas.mdx b/docs/developers/reference/api/linea-estimategas.mdx index d1bff790e..eba7ddd2b 100644 --- a/docs/developers/reference/api/linea-estimategas.mdx +++ b/docs/developers/reference/api/linea-estimategas.mdx @@ -34,7 +34,7 @@ Generates and returns an estimate of how much gas is necessary to allow the tran and be published on Ethereum. The transaction will not be added to the blockchain. For more information about estimating gas, and how this API formulates the transaction costs, see -the [Estimate transaction costs](/developers/guides/gas/gas-fees) topic. +the [Estimate transaction costs](../../guides/gas/gas-fees.mdx) topic. The `priorityFeePerGas` returned by this method includes the cost of submitting the transaction to Ethereum, which can vary based on the size of the calldata. diff --git a/docs/developers/tooling/cross-chain/ccip-read-gateway.mdx b/docs/developers/tooling/cross-chain/ccip-read-gateway.mdx index c3b2faf0b..ba5ea903e 100644 --- a/docs/developers/tooling/cross-chain/ccip-read-gateway.mdx +++ b/docs/developers/tooling/cross-chain/ccip-read-gateway.mdx @@ -21,7 +21,7 @@ therefore adds support for CCIP Read to Linea. :::info -Read more about Sparse Merkle Trees in our [architecture documentation](/architecture/stack/evm-state-manager). +Read more about Sparse Merkle Trees in our [architecture documentation](../../../architecture/stack/evm-state-manager/index.mdx). ::: @@ -29,7 +29,7 @@ Read more about Sparse Merkle Trees in our [architecture documentation](/archite Linea ENS allows Linea users to register human-readable domains for considerably lower fees than on Ethereum Mainnet, it also leverages smart contracts with considerable utility for developers by -enabling CCIP Read. See the user guide [here](https://support.linea.build/hc/en-us/27439122478107). +enabling CCIP Read. See the user guide [here](https://support.linea.build/explore/ens). The [Linea ENS repository](https://github.com/Consensys/linea-ens) contains a frontend and associated contracts for ENS to work on Linea, including functionality that enables any L1 @@ -46,9 +46,10 @@ While the repository was created to bring ENS to Linea, its component libraries other contexts. The two main contracts are: -- The [Linea CCIP Gateway](https://github.com/Consensys/linea-ens/tree/main/packages/linea-ccip-gateway), which implements the gateway required for L1 protocols to query data on -Linea, and; -- The [Linea State Verifier](https://github.com/Consensys/linea-ens/tree/main/packages/linea-state-verifier), which verifies the state proofs generated by the gateway. +- The [Linea CCIP Gateway](https://github.com/Consensys/linea-ens/tree/main/packages/linea-ccip-gateway), which + implements the gateway required for L1 protocols to query data on Linea, and; +- The [Linea State Verifier](https://github.com/Consensys/linea-ens/tree/main/packages/linea-state-verifier), which + verifies the state proofs generated by the gateway. Together, they can be used to retrieve data on Linea in a trustless way. They are 'generic' in the sense that they can be applied to any use case. diff --git a/docs/developers/tooling/node-providers/index.mdx b/docs/developers/tooling/node-providers/index.mdx index fbff0fdc4..0c62de82a 100644 --- a/docs/developers/tooling/node-providers/index.mdx +++ b/docs/developers/tooling/node-providers/index.mdx @@ -18,7 +18,7 @@ image: /img/socialCards/node-providers.jpg ## Run your own node -- [Set it up yourself](../guides/run-a-node) +- [Set it up yourself](../../guides/run-a-node/index.mdx) - [One-click deploy with EasyNode](https://app.easy-node.xyz/) - [One-click deploy with Mintair](https://mintair.xyz/) - [One-click deploy with RapidNode](https://rapidnode.xyz) diff --git a/docs/developers/tooling/permanent-data/irys/irys-quickstart.mdx b/docs/developers/tooling/permanent-data/irys/irys-quickstart.mdx index 4fbc2b5cb..cdc7f5bf6 100644 --- a/docs/developers/tooling/permanent-data/irys/irys-quickstart.mdx +++ b/docs/developers/tooling/permanent-data/irys/irys-quickstart.mdx @@ -294,7 +294,9 @@ irys upload-dir ./myImages -n mainnet -t linea-eth -w bf20......c9885307 Use the `-t` option, followed by a series of name / value pairs to append metadata tags to your upload. -Irys supports adding any optional [metadata tags](/developers/tooling/permanent-data/irys/overview#tagging) to each upload. When uploading files with a filename extension, the related [`Content-Type`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) (MIME type) tag is automatically added. +Irys supports adding any optional [metadata tags](./overview.mdx#tagging) to each upload. When uploading +files with a filename extension, the related +[`Content-Type`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type) (MIME type) tag is automatically added. ```console irys upload myImage.png -t tagName1 tagValue1 tagName2 tagValue2 -n mainnet -t linea-eth -w bf20......c9885307 @@ -302,7 +304,8 @@ irys upload myImage.png -t tagName1 tagValue1 tagName2 tagValue2 -n mainnet -t l ### Pricing -Use the `price` command, followed by a number of bytes to get the cost to upload that number of bytes. You must also provide a token (`-t`) and a node URL (`-h`) +Use the `price` command, followed by a number of bytes to get the cost to upload that number of bytes. You must +also provide a token (`-t`) and a node URL (`-h`) ```console irys price 1000000 -t linea-eth -n mainnet @@ -310,6 +313,7 @@ irys price 1000000 -t linea-eth -n mainnet ## Download data -When you upload data to Irys, you're given a [receipt](/developers/tooling/permanent-data/irys/overview#receipts) containing a transaction ID. Use this ID to download your data from the Irys gateway by creating a URL in the format: +When you upload data to Irys, you're given a [receipt](./overview.mdx#receipts) +containing a transaction ID. Use this ID to download your data from the Irys gateway by creating a URL in the format: `https://gateway.irys.xyz/:txId` diff --git a/docs/developers/tooling/permanent-data/irys/overview.mdx b/docs/developers/tooling/permanent-data/irys/overview.mdx index 769e60761..14259e6a2 100644 --- a/docs/developers/tooling/permanent-data/irys/overview.mdx +++ b/docs/developers/tooling/permanent-data/irys/overview.mdx @@ -15,7 +15,13 @@ description: Using Irys' permanent data with Linea. - **Unconstrained:** There are no limits on file upload sizes. Users can always read, write, and discover data at scale. -![](/img/docs/build-on-linea/tooling/permanent-data/irys/irys-provenance-layer.gif) +
+
+ +
+
You can imagine Irys as an assembly line. Data enters on one side, it's stamped with a timestamp, attribution, and authorship details before being stored permanently as data with strong provenance. @@ -26,7 +32,7 @@ Irys is **chain agnostic**, smart contracts on Linea can link to data on Irys. You can: -- Deploy NFT contracts on Linea and [have images and metadata on Irys](/developers/guides/community/irys/irys-nfts) +- Deploy NFT contracts on Linea and [have images and metadata on Irys](../../../guides/community/irys/irys-nfts.mdx) - Build games with state on Linea and visual assets on Irys - Build an onchain identity protocol with user metadata on Irys - Build a cross-chain bridge and use Irys to store messages @@ -117,4 +123,4 @@ try { ## Querying -Transaction metadata can be [queried using the Irys query package](/developers/tooling/permanent-data/irys/irys-query-package). +Transaction metadata can be queried using the [Irys query package](../../../tooling/permanent-data/irys/irys-query-package.mdx). diff --git a/docs/users/linea-voyage/lxp/index.mdx b/docs/users/linea-voyage/lxp/index.mdx index fa6c1f273..4395af8d5 100644 --- a/docs/users/linea-voyage/lxp/index.mdx +++ b/docs/users/linea-voyage/lxp/index.mdx @@ -21,7 +21,7 @@ Apart from being a measure of contribution to building Linea into a robust and s Voyage LXP will also make owners eligible for benefits such as receiving official community roles, exclusive Linea swag, and more! -To learn more about the Linea Voyage program, click [here](https://support.linea.build/hc/articles/20985380911771). +To learn more about the Linea Voyage program, click [here](https://support.linea.build/linea-voyage). :::note Voyage LXP are non-transferable, and cannot be bridged to other networks. You cannot buy, sell, or @@ -144,6 +144,6 @@ To start the Account binding process, follow the steps below: :::info[What if I want to bind an account from a different Secret Recovery Phrase/seed phrase?] -Refer to the support guide [here](https://support.linea.build/hc/en-us/articles/21459048100123). +Refer to the [support guide](https://support.linea.build/linea-voyage/lxp-binding-an-account-from-a-different-secret-recovery-phrase-). ::: diff --git a/docs/users/move-funds/set-up-your-wallet.mdx b/docs/users/move-funds/set-up-your-wallet.mdx index c21236876..67d12cfd6 100644 --- a/docs/users/move-funds/set-up-your-wallet.mdx +++ b/docs/users/move-funds/set-up-your-wallet.mdx @@ -66,5 +66,5 @@ start a conversation with support. ## Other wallets -Linea is compatible with any EVM-compatible wallet. If you want to add the Linea network, you can -find the relevant network information [here](/developers/quickstart/info-contracts). +Linea is compatible with any EVM-compatible wallet. If you want to add the Linea network, then +[view the relevant network information](../../developers/quickstart/info-contracts.mdx).