From 068e0f026d588e07dc535884aea6e1f76e9c9ac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Nov 2024 15:45:45 +0000 Subject: [PATCH 1/7] Bump stylus-by-example from `508777e` to `262ea13` Bumps [stylus-by-example](https://github.com/offchainlabs/stylus-by-example) from `508777e` to `262ea13`. - [Commits](https://github.com/offchainlabs/stylus-by-example/compare/508777e63fb38b7d27426a8ae0f2ffacf1c184c9...262ea1344634b0c454c2e692cd87e7dc59d47a46) --- updated-dependencies: - dependency-name: stylus-by-example dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- stylus-by-example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stylus-by-example b/stylus-by-example index 508777e63..262ea1344 160000 --- a/stylus-by-example +++ b/stylus-by-example @@ -1 +1 @@ -Subproject commit 508777e63fb38b7d27426a8ae0f2ffacf1c184c9 +Subproject commit 262ea1344634b0c454c2e692cd87e7dc59d47a46 From b295a7e59947f3a79b4b9cfc4e84b9f07b5090cd Mon Sep 17 00:00:00 2001 From: James Lawton Date: Tue, 10 Dec 2024 10:46:08 +0000 Subject: [PATCH 2/7] Update infra-options-orbit-chains.md with Sequence Added Sequence to options for Indexer and RPCs --- arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md b/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md index 931569697..10ad3c5b3 100644 --- a/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md +++ b/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md @@ -70,6 +70,8 @@ Indexers provide a convenient way to retrieve historic or application-specific d - [Goldsky](https://goldsky.com/) - [Ormi](https://www.ormilabs.xyz/) - [Traceye](https://traceye.io/) +- [Sequence](https://sequence.xyz/indexer) + ## Oracles @@ -91,6 +93,7 @@ RPC endpoints are the primary interface through which users and developers inter - [Ankr](https://www.ankr.com/) - [Chainstack](https://chainstack.com/) - [QuickNode](https://www.quicknode.com?utm_source=arb-docs) +- [Sequence](https://sequence.xyz/node-gateway) ## Alternative Data availability From 93c9a163ce0eb0483f5f40f4ec15915268e44d14 Mon Sep 17 00:00:00 2001 From: TucksonDev Date: Thu, 12 Dec 2024 15:36:18 +0000 Subject: [PATCH 3/7] Update AEP docs --- .../aep-fee-router-introduction.mdx | 2 +- .../{AEPLicense.mdx => aep-license.mdx} | 6 +-- .../how-tos/calculate-aep-fees.mdx | 16 +++---- .../how-tos/set-up-aep-fee-router.mdx | 47 ++++++++++--------- website/sidebars.js | 4 +- 5 files changed, 39 insertions(+), 36 deletions(-) rename arbitrum-docs/launch-orbit-chain/{AEPLicense.mdx => aep-license.mdx} (84%) diff --git a/arbitrum-docs/launch-orbit-chain/aep-fee-router-introduction.mdx b/arbitrum-docs/launch-orbit-chain/aep-fee-router-introduction.mdx index e2c53f1ab..737394af6 100644 --- a/arbitrum-docs/launch-orbit-chain/aep-fee-router-introduction.mdx +++ b/arbitrum-docs/launch-orbit-chain/aep-fee-router-introduction.mdx @@ -10,7 +10,7 @@ content_type: get-started ## What is the Arbitrum expansion program? -The [Arbitrum Expansion Program](https://forum.arbitrum.foundation/t/the-arbitrum-expansion-program-and-developer-guild/20722) (AEP) allows Orbit chains to deploy on _any chain_ permissionlessly. As part of the [AEP license](https://docs.arbitrum.foundation/assets/files/Arbitrum%20Expansion%20Program%20Jan182024-4f08b0c2cb476a55dc153380fa3e64b0.pdf), Orbit chains deployed outside of Arbitrum One and Arbitrum Nova must pay 10% of their **Net Protocol Revenue** to the Arbitrum DAO. +The [Arbitrum Expansion Program](https://forum.arbitrum.foundation/t/the-arbitrum-expansion-program-and-developer-guild/20722) (AEP) allows Orbit chains to deploy on _any chain_ permissionlessly. As part of the [AEP license](https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf), Orbit chains deployed outside of Arbitrum One and Arbitrum Nova must pay 10% of their **Net Protocol Revenue** to the Arbitrum DAO. The Arbitrum Expansion Program and Developer Guild are initiatives launched in collaboration with Offchain Labs to promote the development of customized Arbitrum chains using the Orbit framework. The Expansion Program simplifies the process for teams to create Layer 2 (L2) and Layer 3 (L3) chains, offering self-service tools and customization options. Projects benefit from features like: diff --git a/arbitrum-docs/launch-orbit-chain/AEPLicense.mdx b/arbitrum-docs/launch-orbit-chain/aep-license.mdx similarity index 84% rename from arbitrum-docs/launch-orbit-chain/AEPLicense.mdx rename to arbitrum-docs/launch-orbit-chain/aep-license.mdx index fe8252b53..6871fe7b4 100644 --- a/arbitrum-docs/launch-orbit-chain/AEPLicense.mdx +++ b/arbitrum-docs/launch-orbit-chain/aep-license.mdx @@ -1,6 +1,6 @@ --- -title: 'The AEP License' -sidebar_label: 'Orbit Licensing' +title: 'Orbit licensing' +sidebar_label: 'Orbit licensing' description: 'Learn about the Orbit license and AEP.' author: SHughes sme: SHughes @@ -10,7 +10,7 @@ content_type: get-started ## What do I need to know about the Orbit license? -Nitro is currently licensed under a [Business Source License](https://github.com/OffchainLabs/nitro?tab=License-1-ov-file), similar to DeFi protocols like Uniswap and Aave, among others, with an “Additional Use Grant” to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains. +Nitro is currently licensed under a [Business Source License](https://github.com/OffchainLabs/nitro/blob/master/LICENSE.md), similar to DeFi protocols like Uniswap and Aave, among others, with an “Additional Use Grant” to ensure that everyone can have full comfort using and running nodes on all public Arbitrum chains. The Additional Use Grant also permits deployment of the Nitro software in a permissionless, zero-cost fashion, as a new blockchain provided that the chain settles to either Arbitrum One or Arbitrum Nova. L3s that settle to Arbitrum One or Nova have no obligation to share revenue with the Arbitrum DAO and remain first class members of the Arbitrum ecosystem. As an expansion of this license, the [Arbitrum Expansion Program](https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf) (AEP) is a self-service licensing model that makes it easy for developers to build and customize L2s/L3s using Arbitrum’s technology alongside different parent chains. diff --git a/arbitrum-docs/launch-orbit-chain/how-tos/calculate-aep-fees.mdx b/arbitrum-docs/launch-orbit-chain/how-tos/calculate-aep-fees.mdx index 43e5769c0..66fd35000 100644 --- a/arbitrum-docs/launch-orbit-chain/how-tos/calculate-aep-fees.mdx +++ b/arbitrum-docs/launch-orbit-chain/how-tos/calculate-aep-fees.mdx @@ -10,7 +10,7 @@ content_type: how-to This document will help you calculate your Orbit chain’s _Protocol Net Revenue_ and AEP license fees. -Before we define “Protocol Net Revenue,” let's explain how fees work in a standard Orbit chain. From there, we can connect how each fee equates to a revenue or a cost. +Before we define “Protocol Net Revenue”, let's explain how fees work in a standard Orbit chain. From there, we can connect how each fee equates to a revenue or a cost. ### Sequencing revenue @@ -21,11 +21,11 @@ In a vanilla Orbit chain (a chain without customizations, transaction ordering p - `l1BaseFee`: fees paid to cover the cost of an Orbit chain posting its settlement transaction to the parent chain. - `l1SurplusFee`: an additional surplus fee that can be configured to award extra fees to the batch poster. -Based on the above, we interpret that an Orbit chain’s revenue sources include all fee components: `l2BaseFee`, `l2SurplusFee`, `l1BaseFee`, and `l1SurplusFee`. However, one of these fee components is also a cost: `l1BaseFee`, as it is used to pay for parent chain settlement. +Based on the above, we interpret that an Orbit chain’s revenue sources include all fee components: `l2BaseFee`, `l2SurplusFee`, `l1BaseFee`, and `l1SurplusFee`. However, one of these fee components is also a cost, `l1BaseFee`, as it is used to pay for parent chain settlement. ### Assertion costs -The above fee system applies to an Orbit chain’s Sequencer and Batch Poster, but there is another important actor that is considered essential to the chain. These are the [\*\*validators](https://docs.arbitrum.io/how-arbitrum-works/inside-arbitrum-nitro#validators).\*\* +The above fee system applies to an Orbit chain’s Sequencer and Batch Poster, but there is another important actor that is considered essential to the chain. These are the [validators](/how-arbitrum-works/inside-arbitrum-nitro.mdx#validators). Validators are responsible for posting assertions on the parent chain, which are disputable claims about the new state of the Rollup. Posting an assertion is what progressed chain state on the parent chain. Validators are also responsible for securing the chain by creating disputes on false assertions. @@ -41,7 +41,7 @@ As the Orbit license allows chain owners to customize their Rollup, the AEP lice - Revenue earned through fees on top of the bridge. - Broadly, any revenue earned in connection with your use of Arbitrum Nitro. -You can read the relevant legal terminology in Section 2 of the [AEP Terms](https://docs.arbitrum.foundation/assets/files/Arbitrum%20Expansion%20Program%20Jan182024-4f08b0c2cb476a55dc153380fa3e64b0.pdf). +You can read the relevant legal terminology in Section 2 of the [AEP Terms](https://docs.arbitrum.foundation/aep/ArbitrumExpansionProgramTerms.pdf). ## Calculating AEP fees @@ -81,7 +81,7 @@ If a team elects to deduct their assertion posting costs from eligible validator - Communicate to the Arbitrum Foundation that they intend to deduct on-chain assertion costs - Align on a cadence of disbursal and accounting these costs with the Arbitrum Foundation (e.g., quarterly, annually) - - At this cadence, Provide on-chain accounting to the Arbitrum Foundation to substantiate deducted costs from the AEP Fee Router stream. + - At this cadence, provide on-chain accounting to the Arbitrum Foundation to substantiate deducted costs from the AEP Fee Router stream. To implement the deduction, the team should do the following: @@ -94,15 +94,15 @@ To implement the deduction, the team should do the following: Certain Orbit configurations and customizations require special handling of AEP fees. The following is a non-exhaustive list of applicable scenarios and how to ensure AEP compliance. If any of the following cases apply, the recommended approach for fee handling will require manual handling of a portion of or all AEP Fees. -### L2-Based Custom Gas Tokens +### L2-based custom gas tokens -If you are an L3 or higher chain with a custom gas token, your custom gas token contract might be deployed on L2. If this L2 is not Arbitrum One, then the L2 token can be transferred via the AEP Fee Router, as this would first require bridging down to Ethereum (impossible for L2-based tokens). In this instance, we recommend your chain pay fees in ETH by manually sending fees to an ETH-configured routing system. +If you are an L3 or higher chain with a custom gas token, your custom gas token contract might be deployed on L2. If this L2 is not an Arbitrum chain, then the L2 token can't be transferred via the AEP Fee Router, as this would first require bridging down to Ethereum (impossible for L2-based tokens). In this instance, we recommend your chain pay fees in ETH by manually sending fees to an ETH-configured routing system. ### Non-Ethereum L1 If your Orbit chain is deployed on a non-Ethereum L1 (e.g., Solana, BNB Chain), your fees must be manually transferred to a Foundation-controlled address. -### Novel Fee-Earning Customizations +### Novel fee-earning customizations As discussed above in Additional revenue sources, if you have customized your Orbit chain to earn revenue through any enshrined component, this revenue must be calculated as part of the AEP fees. In such cases, we recommend engaging with the AF to agree on a revenue model and reporting cadence and then manually send additional fees into the routing system as required. diff --git a/arbitrum-docs/launch-orbit-chain/how-tos/set-up-aep-fee-router.mdx b/arbitrum-docs/launch-orbit-chain/how-tos/set-up-aep-fee-router.mdx index 8b5ac2d7e..850dff542 100644 --- a/arbitrum-docs/launch-orbit-chain/how-tos/set-up-aep-fee-router.mdx +++ b/arbitrum-docs/launch-orbit-chain/how-tos/set-up-aep-fee-router.mdx @@ -12,16 +12,17 @@ content_type: how-to - You can adopt the AEP Fee Router by using the [AEP Router deployment scripts](https://github.com/OffchainLabs/arbitrum-orbit-sdk/tree/main/examples/setup-aep-fee-router) provided in the [Orbit SDK](https://github.com/OffchainLabs/arbitrum-orbit-sdk/tree/main) -### Canonical Contracts +### Canonical contracts -| Network | Contract | Address | Configured For | -| ------------- | -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -| Ethereum | `Parent2ChildRouter` | [https://etherscan.io/address/0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999](https://etherscan.io/address/0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999) | `ETH`, `ERC-20` | -| Arbitrum Nova | `Child2ParentRouter` | [https://nova.arbiscan.io/address/0x36D0170D92F66e8949eB276C3AC4FEA64f83704d](https://nova.arbiscan.io/address/0x36D0170D92F66e8949eB276C3AC4FEA64f83704d) | `ETH` | +| Network | Contract | Address | Configured for | +| ------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------- | --------------- | +| Ethereum | `Parent2ChildRouter` | [0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999](https://etherscan.io/address/0x40Cd7D713D7ae463f95cE5d342Ea6E7F5cF7C999) | `ETH`, `ERC-20` | +| Arbitrum Nova | `Child2ParentRouter` | [0x36D0170D92F66e8949eB276C3AC4FEA64f83704d](https://nova.arbiscan.io/address/0x36D0170D92F66e8949eB276C3AC4FEA64f83704d) | `ETH` | +| Base | `Child2ParentRouter` | [0x1015c1ae166c4c39d18a1151b7029bac1530c9aa](https://basescan.org/address/0x1015c1ae166c4c39d18a1151b7029bac1530c9aa) | `ETH` | ## The AEP fee router contract system -_Link to the [Router contracts' source code](https://github.com/OffchainLabs/fund-distribution-contracts/tree/main/src/FeeRouter)._ +This section describes the different fee distribution and router contracts that are available. You can find their source code [here](https://github.com/OffchainLabs/fund-distribution-contracts/tree/main/src/FeeRouter). ### RewardDistributor @@ -65,34 +66,36 @@ In the absence of these, please send `ETH` through the AEP Fee Router to fulfill The Orbit SDK provides a [configurable script](https://github.com/OffchainLabs/arbitrum-orbit-sdk/tree/main/examples/setup-aep-fee-router) that allows a chain operator to deploy quickly and set up the AEP fee router contracts. - +::::info Note for L3 chains with custom gas tokens + +The standard script deploys and sets up the AEP fee router contracts to route funds to the parent chain. +L2 chains are expectd to route funds to the [ParentToChildRouter contract](#canonical-contracts) living on Ethereum. +L3 chains (or further layers) might need to specify a different target address on the parent chain depending on the gas token of the chain. If the chain uses ETH as the gas token, and a [ChildToParentRouter](#canonical-contracts) contract is deployed in the parent chain, they can route their funds to that contract. If the chain uses a different gas token, please contact the Arbitrum Foundation to confirm the target address to withdraw the AEP fees to. + +:::: The script performs the following operations: -1. Obtain the Rollup and inbox contract of the chain. These are needed to execute the next steps. +1. Obtain the rollup and inbox contract of the chain. These are needed to execute the next steps. 2. Obtain the current fee collectors of the chain: Orbit base fee collector, Orbit surplus fee collector, and Parent chain surplus fee collector. -3. Deploy the `ChildToParentRouter` contract, configured to send the amounts received to the appropriate Arbitrum DAO controlled address on the parent chain. -4. Deploy a `RewardDistributor` contract for each different fee collector account, configured to distribute 90% of the amounts received to the current fee collector and 10% to the ChildToParentRouter contract deployed in the previous step. +3. Deploy the `ChildToParentRouter` contract, configured to send the amounts received to the appropriate target address on the parent chain. +4. Deploy a `RewardDistributor` contract for each different fee collector account, configured to distribute 90% of the amounts received to the current fee collector, and 10% to the ChildToParentRouter contract deployed in the previous step. 5. Set each of the fee collectors to the `RewardDistributor` contracts - +Note that if the same address collects all three fee types, only one `RewardDistributor` contract will be deployed, which will collect all those fees. + +:::: To configure the script, you need to specify the following [environment variables](https://github.com/OffchainLabs/arbitrum-orbit-sdk/blob/main/examples/setup-aep-fee-router/.env.example): -- `ROLLUP_ADDRESS`: address of the Rollup contract +- `ROLLUP_ADDRESS`: address of the rollup contract - `CHAIN_OWNER_PRIVATE_KEY`: private key of the account with executor privileges in the `UpgradeExecutor` admin contract for the chain -- `ORBIT_CHAIN_ID`: `chainId` of the Orbit chain +- `ORBIT_CHAIN_ID`: chain id of the Orbit chain - `ORBIT_CHAIN_RPC`: RPC of the Orbit chain -- `PARENT_CHAIN_ID`: `chainId` of the parent chain, which can neither be an Arbitrum chain nor Ethereum. -- `PARENT_CHAIN_TARGET_ADDRESS`: address on the parent chain where 10% of the revenue will be sent to. You can find the potential target addresses in the [canonical contracts](#canonical-contracts) section of this document. If the parent chain your chain settles to is not on that list, contact the Arbitrum Foundation to obtain a specific target address for your chain. +- `PARENT_CHAIN_ID`: chain id of the parent chain, which shouldn't be an Arbitrum chain +- `PARENT_CHAIN_TARGET_ADDRESS`: address on the parent chain where 10% of the revenue will be sent to. You can find the potential target addresses in the [canonical contracts](#canonical-contracts) section of this document. If the parent chain is not on that list, or if your chain uses a gas token different than the one the router is configured for, contact the Arbitrum Foundation to obtain a specific target address for your chain. Finally, follow these steps to execute the script (from the `examples/setup-aep-fee-router` folder): diff --git a/website/sidebars.js b/website/sidebars.js index 2c96392a0..2b0967917 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -248,8 +248,8 @@ const sidebars = { }, { type: 'doc', - id: 'launch-orbit-chain/AEPLicense', - label: 'AEP License', + id: 'launch-orbit-chain/aep-license', + label: 'Orbit licensing', }, { type: 'category', From ef1b432cfb22afe86654ff30856a01560d584458 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Dec 2024 16:26:40 +0000 Subject: [PATCH 4/7] Bump arbitrum-sdk from `f5b3d04` to `31852e2` Bumps [arbitrum-sdk](https://github.com/OffchainLabs/arbitrum-sdk) from `f5b3d04` to `31852e2`. - [Release notes](https://github.com/OffchainLabs/arbitrum-sdk/releases) - [Commits](https://github.com/OffchainLabs/arbitrum-sdk/compare/f5b3d04baf62356032f5475057637d989da5b6c1...31852e2620641bd842c66e19005964c0b823563e) --- updated-dependencies: - dependency-name: arbitrum-sdk dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- arbitrum-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arbitrum-sdk b/arbitrum-sdk index f5b3d04ba..31852e262 160000 --- a/arbitrum-sdk +++ b/arbitrum-sdk @@ -1 +1 @@ -Subproject commit f5b3d04baf62356032f5475057637d989da5b6c1 +Subproject commit 31852e2620641bd842c66e19005964c0b823563e From e2a274397e10e7f924e7f5b44c5053931fc058a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20Blanchemain?= Date: Thu, 12 Dec 2024 14:11:14 -0800 Subject: [PATCH 5/7] feat: add redirects to stylus' re-located articles --- vercel.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/vercel.json b/vercel.json index 5cb554729..b13e7e1f6 100644 --- a/vercel.json +++ b/vercel.json @@ -400,6 +400,36 @@ "destination": "/stylus/reference/rust-sdk-guide", "permanent": false }, + { + "source": "/stylus/concepts/stylus-gas", + "destination": "/stylus/concepts/gas-metering", + "permanent": false + }, + { + "source": "/stylus/concepts/stylus-cache-manager", + "destination": "/stylus/how-tos/cache-contracts", + "permanent": false + }, + { + "source": "/stylus/how-tos/debugging-stylus-tx", + "destination": "/stylus/how-tos/debugging-tx", + "permanent": false + }, + { + "source": "/stylus/stylus-quickstart", + "destination": "/stylus/quickstart", + "permanent": false + }, + { + "source": "/stylus/how-tos/using-stylus-cli", + "destination": "/stylus/using-cli", + "permanent": false + }, + { + "source": "/stylus/stylus-gentle-introduction", + "destination": "/stylus/gentle-introduction", + "permanent": false + }, { "source": "/docs/(mainnet/?)", "destination": "/build-decentralized-apps/reference/mainnet-risks", From bfabb6415e43778a96814454ee01394d9ff45967 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:19:57 +0000 Subject: [PATCH 6/7] Bump arbitrum-sdk from `31852e2` to `5669af1` Bumps [arbitrum-sdk](https://github.com/OffchainLabs/arbitrum-sdk) from `31852e2` to `5669af1`. - [Release notes](https://github.com/OffchainLabs/arbitrum-sdk/releases) - [Commits](https://github.com/OffchainLabs/arbitrum-sdk/compare/31852e2620641bd842c66e19005964c0b823563e...5669af150f4a336a09f32d16b8d13326f345c02e) --- updated-dependencies: - dependency-name: arbitrum-sdk dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- arbitrum-sdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arbitrum-sdk b/arbitrum-sdk index 31852e262..5669af150 160000 --- a/arbitrum-sdk +++ b/arbitrum-sdk @@ -1 +1 @@ -Subproject commit 31852e2620641bd842c66e19005964c0b823563e +Subproject commit 5669af150f4a336a09f32d16b8d13326f345c02e From 3cc39454891bba8ee3e1852853b5ed06736ddb3d Mon Sep 17 00:00:00 2001 From: Pete Date: Mon, 16 Dec 2024 13:13:23 -0600 Subject: [PATCH 7/7] ran yarn format --- arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md | 1 - 1 file changed, 1 deletion(-) diff --git a/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md b/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md index 10ad3c5b3..055f8c017 100644 --- a/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md +++ b/arbitrum-docs/launch-orbit-chain/infra-options-orbit-chains.md @@ -72,7 +72,6 @@ Indexers provide a convenient way to retrieve historic or application-specific d - [Traceye](https://traceye.io/) - [Sequence](https://sequence.xyz/indexer) - ## Oracles The following Oracle providers can be used to integrate off-chain data with your Orbit chain's smart contracts: