From 5b167fa1059432e8ed0b6199e1cdb6fda8979933 Mon Sep 17 00:00:00 2001 From: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> Date: Wed, 29 May 2024 13:07:44 -0300 Subject: [PATCH] Add providers/tools and cleanup EVM sections --- .../build/_partials/_oracles_contract_data.md | 37 ++++++ docs/build/getting-started/blastAPI.md | 42 +++++++ .../getting-started/networks-endpoints.mdx | 2 +- docs/build/getting-started/oracles.md | 49 +++++--- docs/build/getting-started/sidebars.ts | 24 +++- docs/build/getting-started/subgraphs.md | 106 ++++++++++++++++++ .../docs/getting-started/tools.mdx | 67 ++++++++++- docusaurus.config.js | 9 ++ src/components/HomeLayout/index.tsx | 22 ++-- src/icons/iota/index.ts | 2 + static/icons/iota/iota_evm.svg | 3 + static/icons/iota/iota_evm_dm.svg | 70 ++++++++++++ theme/src/theme/NetworkInfo/index.tsx | 73 ++++++++---- theme/src/theme/constant.tsx | 17 +++ 14 files changed, 466 insertions(+), 57 deletions(-) create mode 100644 docs/build/_partials/_oracles_contract_data.md create mode 100644 docs/build/getting-started/blastAPI.md create mode 100644 docs/build/getting-started/subgraphs.md create mode 100644 static/icons/iota/iota_evm.svg create mode 100644 static/icons/iota/iota_evm_dm.svg diff --git a/docs/build/_partials/_oracles_contract_data.md b/docs/build/_partials/_oracles_contract_data.md new file mode 100644 index 00000000000..3b5674b2188 --- /dev/null +++ b/docs/build/_partials/_oracles_contract_data.md @@ -0,0 +1,37 @@ +import { AddToMetaMaskButton } from '@theme/AddToMetaMaskButton'; +import { Networks } from '@theme/constant'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +| Contract Type | Contract Address | +|:----------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| Pyth contract | [https://explorer.evm.iota.org/address/0x8D254a21b3C86D32F7179855531CE99164721933](https://explorer.evm.iota.org/address/0x8D254a21b3C86D32F7179855531CE99164721933) | +| Supra Pull Contract | [https://explorer.evm.iota.org/address/0x2FA6DbFe4291136Cf272E1A3294362b6651e8517](https://explorer.evm.iota.org/address/0x2FA6DbFe4291136Cf272E1A3294362b6651e8517) | +| Supra Storage Contract | [https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9](https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9) | +| Supra Push Contract | [https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9](https://explorer.evm.iota.org/address/0xD02cc7a670047b6b012556A88e275c685d25e0c9) | + + + + +| Contract Type | Contract Address | +|:----------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| Pyth contract | [https://explorer.evm.shimmer.network/address/0x290f23E4a034Db5237edCb5aA2D94Acb4DD19fD2](https://explorer.evm.shimmer.network/address/0x290f23E4a034Db5237edCb5aA2D94Acb4DD19fD2) | +| Supra Pull Contract | [https://explorer.evm.shimmer.network/address/0xe41444462709484272F54371F3f53bBF900Ec49E](https://explorer.evm.shimmer.network/address/0xe41444462709484272F54371F3f53bBF900Ec49E) | +| Supra Storage Contract | [https://explorer.evm.shimmer.network/address/0x3E5E89d14576cE9f20a8347aA682517fe65B4ACB](https://explorer.evm.shimmer.network/address/0x3E5E89d14576cE9f20a8347aA682517fe65B4ACB) | +| Supra Push Contract | [https://explorer.evm.shimmer.network/address/0x3df842b27c997cEc63160E79CB4398c82645A1c3](https://explorer.evm.shimmer.network/address/0x3df842b27c997cEc63160E79CB4398c82645A1c3) | + + + + +:::tip Oracle Documentation + +You can find detailed documentation on the Oracles in their official documentation: + +* [Pyth Oracle Docs](https://docs.pyth.network/price-feeds/contract-addresses/evm) +* [Supra Pull Docs](https://gb-docs.supraoracles.com/docs/data-feeds/pull-model/networks) +* [Supra Push Docs](https://gb-docs.supraoracles.com/docs/data-feeds/decentralized/networks) + +::: diff --git a/docs/build/getting-started/blastAPI.md b/docs/build/getting-started/blastAPI.md new file mode 100644 index 00000000000..2bd2e188ac9 --- /dev/null +++ b/docs/build/getting-started/blastAPI.md @@ -0,0 +1,42 @@ +--- +description: Blast API is a decentralized platform providing scalable node infrastructure for accessing blockchain data, supporting multiple networks including IOTA EVM. +keywords: + - IOTA EVM + - blockchain API + - decentralized + - node infrastructure + - tools + - Blast api + - archive node +image: /img/logo/WASP_logo_dark.png +--- + +# Blast API + +[Blast API](https://blastapi.io/) is a decentralized platform that provides reliable and scalable node infrastructure +for accessing blockchain data. It supports multiple blockchain networks, offering seamless integration and +high-performance API endpoints for cross-chain decentralized applications (dApps). + +## Enhanced Performance and Reliability + +Blast API uses a decentralized network of third-party node providers, that ensure high availability and fast response +times. This architecture provides resilient infrastructure services crucial for dApps requiring real-time data access. + +## Multi-Blockchain Support + +Besides IOTA EVM, Blast API supports a wide range of blockchain networks, allowing access to multiple blockchains +through a single unified platform, therefore simplifying the development process and expanding the potential use cases +for dApps. + +## Archival Nodes + +Blast API includes archival nodes, which store all historical transaction data from the blockchain’s +genesis block to the present. This allows developers to query and retrieve past information, which is essential for +applications needing access to comprehensive blockchain histories. + + +:::tip Blast API Endpoints + +You can find a full list of Blast API endpoints in the [Networks & Endpoints section](networks-endpoints.mdx). + +::: diff --git a/docs/build/getting-started/networks-endpoints.mdx b/docs/build/getting-started/networks-endpoints.mdx index 7ec97e7d37f..bb5632d2e93 100644 --- a/docs/build/getting-started/networks-endpoints.mdx +++ b/docs/build/getting-started/networks-endpoints.mdx @@ -16,7 +16,6 @@ tags: import { AddToMetaMaskButton } from '@theme/AddToMetaMaskButton'; import { Networks } from '@theme/constant'; import NetworkInfo from '@theme/NetworkInfo'; -import { ChainId } from '@theme/ChainId'; # Networks & Endpoints @@ -76,6 +75,7 @@ This network is subject to occasional resets (no data retention) which are usual + #### Additional Info diff --git a/docs/build/getting-started/oracles.md b/docs/build/getting-started/oracles.md index 2ababe9d917..4b4e89c8760 100644 --- a/docs/build/getting-started/oracles.md +++ b/docs/build/getting-started/oracles.md @@ -4,10 +4,15 @@ image: /img/logo/WASP_logo_dark.png tags: - Blockchain Oracles - Smart Contracts +- IOTA EVM - Shimmer EVM - Pyth Network - Supra Oracles --- +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import OraclesContractData from '../_partials/_oracles_contract_data.md' + # Introduction to Oracles in Blockchain @@ -36,52 +41,56 @@ multiple data points to validate the information's accuracy. This process ensure contracts is relevant and timely, maintaining the integrity and deterministic nature of the blockchain operations. -## Oracles on Shimmer EVM +## Oracles on IOTA EVM -### Supra +### Pyth -Supra Oracles validate and report prices derived from up to 21 data sources with Byzantine Fault Tolerant algorithms -for a wide array of assets and commodities using its own Distributed Oracle Agreement (DORA) to provide data for crypto -prices, forex, equities, and even Web3 data from other blockchains. Its feed gets updated from a minimum of 3 to 8 sources; if a data pair fails to meet this criterion, it gets deprecated to ensure data reliability. +The Pyth Network delivers real-time financial market data across multiple blockchains and can be used in off-chain applications. +Pyth gets contributions from over 90 publishers, including several exchanges. It offers comprehensive and accurate price +feeds for asset classes such as US equities, commodities, and cryptocurrencies. Its price feeds get updates +multiple times per second, ensuring they are current and reliable. :::tip -You can learn more about Supra Oracles in their [official documentation](https://supraoracles.com/docs/overview). +You can learn more about Pyth Oracles in their [official documentation](https://docs.pyth.network/documentation). ::: -### Pyth +### Supra -The Pyth Network delivers real-time financial market data across multiple blockchains and can be used in off-chain applications. -Pyth gets contributions from over 90 publishers, including several exchanges. It offers comprehensive and accurate price -feeds for asset classes such as US equities, commodities, and cryptocurrencies. Its price feeds get updates -multiple times per second, ensuring they are current and reliable. +Supra Oracles validate and report prices derived from up to 21 data sources with Byzantine Fault Tolerant algorithms +for a wide array of assets and commodities using its own Distributed Oracle Agreement (DORA) to provide data for crypto +prices, forex, equities, and even Web3 data from other blockchains. Its feed gets updated from a minimum of 3 to 8 sources; if a data pair fails to meet this criterion, it gets deprecated to ensure data reliability. :::tip -You can learn more about Pyth Oracles in their [official documentation](https://docs.pyth.network/documentation). +You can learn more about Supra Oracles in their [official documentation](https://supraoracles.com/docs/overview). ::: + + #### Example Code -You can use the following example code to get data from Pyth Oracles in Shimmer EVM: + + +You can use the following example code to get data from Pyth Oracles in IOTA EVM: ```typescript import {ethers} from "ethers"; import fetch from "node-fetch"; // Provider -const providerURL = "https://json-rpc.evm.shimmer.network" +const providerURL = "https://json-rpc.evm.iota.network" const provider = new ethers.JsonRpcProvider(providerURL); -// Pyth Oracle contract on ShimmerEVM Mainnet -const contractAddress = '0xA2aa501b19aff244D90cc15a4Cf739D2725B5729'; +// Pyth Oracle contract on IOTA EVM Mainnet +const contractAddress = '0x8D254a21b3C86D32F7179855531CE99164721933'; // Add Price Feed Ids obtained from https://pyth.network/developers/price-feed-ids#pyth-evm-stable const priceFeedIds = [ - //SMR/USD + //IOTA/USD '0xaf5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449', //BTC/USD '0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43' @@ -120,4 +129,8 @@ async function main() { } } -main(); \ No newline at end of file +main(); +``` + + + \ No newline at end of file diff --git a/docs/build/getting-started/sidebars.ts b/docs/build/getting-started/sidebars.ts index a9e41d09e97..89597852d43 100644 --- a/docs/build/getting-started/sidebars.ts +++ b/docs/build/getting-started/sidebars.ts @@ -27,7 +27,7 @@ module.exports = { items: [ { type: 'category', - label: 'IOTA', + label: 'IOTA EVM', collapsed: false, link: { type: 'generated-index', @@ -49,7 +49,7 @@ module.exports = { }, { type: 'category', - label: 'IOTA Testnet', + label: 'IOTA EVM Testnet', collapsed: false, link: { type: 'generated-index', @@ -69,9 +69,24 @@ module.exports = { }, ], }, + { + label: 'Blast API', + type: 'doc', + id: 'blastAPI', + }, + { + label: 'Oracles', + type: 'doc', + id: 'oracles', + }, + { + label: 'Subgraphs', + type: 'doc', + id: 'subgraphs', + }, { type: 'category', - label: 'Shimmer', + label: 'ShimmerEVM', collapsed: true, link: { type: 'generated-index', @@ -93,7 +108,7 @@ module.exports = { }, { type: 'category', - label: 'Shimmer Testnet', + label: 'ShimmerEVM Testnet', collapsed: true, link: { type: 'generated-index', @@ -127,6 +142,7 @@ module.exports = { }, ], }, + { label: 'Explorer', type: 'link', diff --git a/docs/build/getting-started/subgraphs.md b/docs/build/getting-started/subgraphs.md new file mode 100644 index 00000000000..7022a747668 --- /dev/null +++ b/docs/build/getting-started/subgraphs.md @@ -0,0 +1,106 @@ +--- +description: 'Learn about the role of subgraphs in smart contracts and how they can provide indexed blockchain data to your smart contracts.' +image: /img/logo/WASP_logo_dark.png +tags: + - Blockchain subgraphs + - Smart Contracts + - Shimmer EVM + - IOTA EVM +--- + +# Subgraphs + +:::info tl;dr; + +Subgraphs provide a streamlined way for developers to access blockchain data relevant to their applications, +significantly enhancing developer efficiency and user experience. + +::: + +Subgraphs collect and organize blockchain data by application needs, making it readily accessible for developers. Unlike +blockchains that store data without application context, subgraphs allow you to quickly retrieve information pertinent +to your application and simplify real-time data access, facilitating the creation of +dynamic user interfaces and interactions in your applications. + +## Subgraph Components and Operations + +Subgraphs are built on [GraphQL](https://graphql.org/) APIs, enabling you to query on-chain transaction data +efficiently. +This feature is particularly useful for developers working with complex smart contracts requiring detailed frontend +interfaces. For instance, querying transactions within a specific liquidity pool becomes straightforward with subgraphs. +By defining a schema and indexing event data, you can utilize the generated GraphQL API for effective data querying. + +### Subgraph Manifest + +The manifest details the smart contracts your subgraph indexes, the events it tracks, and how event data is mapped to +queryable entities. This foundational document ensures your subgraph accurately reflects the blockchain data your +application needs. + +### Subgraph Schema + +The schema organizes your subgraph data, defining entities like pools in DeFi applications, and their attributes. It is +crucial for structuring your data to support efficient queries. + +### Subgraph Mappings + +Mappings process incoming blockchain events, specified in your [manifest](#subgraph-manifest), and store them +according to your [schema](#subgraph-schema). +These [AssemblyScript](https://www.assemblyscript.org/) codes are essential for translating raw blockchain data into a +format your application can easily query. + +## Popular Use Cases for Subgraphs + +Subgraphs have found widespread adoption in various blockchain applications, from DeFi to NFTs and DAOs, due to their +ability to index and query data effectively. + +* **Custom Smart Contract Indexing**: Ideal for developers needing to index data for unique smart contracts, especially + those creating frontend interfaces. +* **Decentralized Finance (DeFi)**: Subgraphs provide real-time data on token prices, liquidity, and more, enhancing + DeFi + applications. +* **Non-fungible Tokens (NFTs)**: They allow for efficient querying of NFT ownership, transaction history, and off-chain + data. +* **Decentralized Autonomous Organizations (DAOs)**: Subgraphs facilitate on-chain decision-making and data analysis for + DAOs. +* **Gaming**: They support real-time data access, improving gameplay and in-game transactions. + +## Benefits of Using Subgraphs + +Subgraphs offer a developer-friendly approach to blockchain data indexing, compatible with various blockchains and +enhancing application security and resilience. + +* **Ease of Use**: With familiar tools like AssemblyScript and GraphQL, subgraphs are accessible to developers, + simplifying + the backend data management. +* **Cross-Blockchain Compatibility**: They work across multiple EVM-compatible networks, allowing applications to + operate + seamlessly on different blockchains. +* **Security and Decentralization**: Opting for decentralized querying with subgraphs can reduce reliance on single data + sources, increasing application robustness. + +## Subgraph Providers + +### Goldsky + +[Goldsky](https://goldsky.com/products/subgraphs) [supports IOTA EVM](https://docs.goldsky.com/chains/supported-networks). +You can use their public API endpoints to access subgraph data. + +:::tip Run a Local Graph Node + +You can use [Nakama's Graph Node GitHub repository](https://github.com/nakamaio/graph-node) to run your own Graph Node. + +::: + +:::tip Blast API Archival Nodes + +You can use the convenient Blast API on IOTA EVM to access [archival nodes](blastAPI.md#archival-nodes). + +::: + +:::tip Wasp Access Nodes + +You can find more information on how to connect to an access node in the +[#nodesharing channel](https://discordapp.com/channels/397872799483428865/398600007378272256) on the [IOTA Discord](https://discord.iota.org/). + +::: + diff --git a/docs/build/isc/v1.0.0-rc.6/docs/getting-started/tools.mdx b/docs/build/isc/v1.0.0-rc.6/docs/getting-started/tools.mdx index 8b6138abb00..a49e6c101bd 100644 --- a/docs/build/isc/v1.0.0-rc.6/docs/getting-started/tools.mdx +++ b/docs/build/isc/v1.0.0-rc.6/docs/getting-started/tools.mdx @@ -24,6 +24,7 @@ import { Networks } from '@theme/constant'; import DeployAdmonition from '../_admonitions/_deploy_a_smart_contract.md'; import { ChainId } from '@theme/ChainId'; import NetworkInfo from '@theme/NetworkInfo'; +import OraclesContractData from '../../../../_partials/_oracles_contract_data.md'; # Compatible Tools @@ -47,6 +48,66 @@ chain ID after deployment.** ::: +## Network RPCs + + + + + + + + + + + + + + + + + + + + +## IOTA EVM Tools + +The following tools are **only available on IOTA EVM**. + +### Blast API + +The [Blast API](/build/blastAPI) is a decentralized platform that provides reliable and scalable node infrastructure +for accessing blockchain data. You can find the Blast API URLs in the [Network RPCs](#network-rpcs) + +### EVM Toolkit + +You can use the [IOTA EVM Toolkit](https://evm-toolkit.evm.iotaledger.net) to withdraw assets from IOTA EVM to IOTA L1. +It also includes a wrapper IOTA <-> wIOTA. + +### Multicall3 + +If you need to aggregate results from multiple contract reads into a single JSON-RPC request or execute multiple +state-changing calls in a single transaction, you can use the [Multicall3 contract](https://explorer.evm.iota.org/address/0xcA11bde05977b3631167028862bE2a173976CA11?tab=contract). + +## IOTA EVM and ShimmerEVM Tools + +The following tools are available on both IOTA EVM end ShimmerEVM. + +### MultiSig Wallets + +If you require and additional level of security, you can use the [Safe{} Wallet](https://safe.iotaledger.net/) as a +Multisig solution on IOTA EVM. + +### Oracles + +If your project requires [Oracles](/build/oracles/) to provide data from the outside world, you find both Pyth and Supra have integrated IOTA EVM. + + + +### Subgraphs + +[Subgraphs](/build/subgraphs/) provide a streamlined way for developers to access blockchain data relevant to their applications, +significantly enhancing developer efficiency and user experience. IOTA EVM subgraphs available via [Goldsky](https://goldsky.com). + ## MetaMask [MetaMask](https://metamask.io/) is a popular EVM wallet which runs in a browser extension that allows you to @@ -118,9 +179,9 @@ often offered through block explorer APIs. ## Ethers.js/Web3.js -If you input the correct configuration parameters for the JSON-RPC endpoint to talk -to, [Ethers.js](https://docs.ethers.io/) and [Web3.js](https://web3js.readthedocs.io/) are also compatible with EVM -chains on IOTA Smart Contracts. Alternatively, you can let both interact through MetaMask instead so that it uses the +If you input the correct configuration parameters for the JSON-RPC endpoint to talk to, +[Ethers.js](https://docs.ethers.io/) and [Web3.js](https://web3js.readthedocs.io/) are also compatible with EVM chains on IOTA Smart Contracts. +Alternatively, you can let both interact through MetaMask instead so that it uses the network configured in MetaMask. For more information on this, read their documentation. ## Other Tooling diff --git a/docusaurus.config.js b/docusaurus.config.js index 24a4aa77a8f..c66a516cdde 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -144,6 +144,15 @@ module.exports = async () => { defaultMode: 'dark', }, switcher: switcherConfig, + + announcementBar: { + id: 'support_us', + content: + 'Experience seamless dApp development with IOTA EVM.', + backgroundColor: 'var(--ifm-color-primary)', + textColor: 'var(--ifm-font-color-base-inverse);', + isCloseable: true, + }, }, }; diff --git a/src/components/HomeLayout/index.tsx b/src/components/HomeLayout/index.tsx index 93d79f53f17..a068a322388 100644 --- a/src/components/HomeLayout/index.tsx +++ b/src/components/HomeLayout/index.tsx @@ -18,7 +18,7 @@ const { IntegrationServices, IotaCore, PickAWallet, - Shimmer, + IotaEVM, Search, Tips, Tutorials, @@ -85,6 +85,12 @@ export default function HomeLayout() { > Start building + + Build your dApp on IOTA EVM + @@ -106,18 +112,16 @@ export default function HomeLayout() {

- +
- +
-

What is Shimmer?

+

Build on IOTA EVM

- A scalable and feeless network enabling frictionless - decentralized and scalable Web3 economies. + Experience seamless dApp development with IOTA EVM's oracles, + subgraphs, Layer 0 interoperability, and robust Blast API + endpoints.{' '}

diff --git a/src/icons/iota/index.ts b/src/icons/iota/index.ts index 5b096a14155..0c2b8d46a30 100644 --- a/src/icons/iota/index.ts +++ b/src/icons/iota/index.ts @@ -6,6 +6,7 @@ import { default as Identity } from '@site/static/icons/iota/identity.svg'; import { default as IntegrationServices } from '@site/static/icons/iota/integration_services.svg'; import { default as Iota20 } from '@site/static/icons/iota/iota_20.svg'; import { default as IotaCore } from '@site/static/icons/iota/iota_core.svg'; +import { default as IotaEVM } from '@site/static/icons/iota/iota_evm.svg'; import { default as IotaToken } from '@site/static/icons/iota/iota_token.svg'; import { default as Next } from '@site/static/icons/iota/next.svg'; import { default as PickAWallet } from '@site/static/icons/iota/pick_a_wallet.svg'; @@ -29,6 +30,7 @@ export default { IntegrationServices, Iota20, IotaCore, + IotaEVM, IotaToken, Next, PickAWallet, diff --git a/static/icons/iota/iota_evm.svg b/static/icons/iota/iota_evm.svg new file mode 100644 index 00000000000..6062f9fb96c --- /dev/null +++ b/static/icons/iota/iota_evm.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/icons/iota/iota_evm_dm.svg b/static/icons/iota/iota_evm_dm.svg new file mode 100644 index 00000000000..9096955db5f --- /dev/null +++ b/static/icons/iota/iota_evm_dm.svg @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/theme/src/theme/NetworkInfo/index.tsx b/theme/src/theme/NetworkInfo/index.tsx index 15735129435..104c699b782 100644 --- a/theme/src/theme/NetworkInfo/index.tsx +++ b/theme/src/theme/NetworkInfo/index.tsx @@ -2,23 +2,22 @@ import React from 'react'; import { ChainId } from '../ChainId'; import { NetworkProps } from '../constant'; import CodeBlock from '@theme/CodeBlock'; +import Admonition from '@theme/Admonition'; function L1(props: NetworkProps) { return ( - + - - - - + - - - + + + + + + + + + + + - - - - + - - - + + + + + + + + + {props.evm.blastApiUrls && ( + + + + + )} + + - - - - - + + + + diff --git a/theme/src/theme/constant.tsx b/theme/src/theme/constant.tsx index 8882d3061df..114053c14a8 100644 --- a/theme/src/theme/constant.tsx +++ b/theme/src/theme/constant.tsx @@ -19,6 +19,14 @@ export const Networks = { 'wss://ws.json-rpc.evm.iotaledger.net', ], blockExplorerUrls: ['https://explorer.evm.iota.org'], + blastApiUrls: [ + 'https://iota-mainnet-evm.public.blastapi.io', + 'wss://iota-mainnet-evm.public.blastapi.io', + { + 'Archive RPC': + 'https://iota-mainnet-evm.blastapi.io/e7596858-fc63-4a54-8727-b885a2af4ec8', + }, + ], }, evmCustom: { chainAddress: @@ -57,6 +65,14 @@ export const Networks = { 'wss://ws.json-rpc.evm.testnet.iotaledger.net', ], blockExplorerUrls: ['https://explorer.evm.testnet.iotaledger.net'], + blastApiUrls: [ + 'https://iota-testnet-evm.public.blastapi.io', + 'wss://iota-testnet-evm.public.blastapi.io', + { + 'Archive RPC': + 'https://iota-testnet-evm.blastapi.io/e7596858-fc63-4a54-8727-b885a2af4ec8', + }, + ], }, evmCustom: { chainAddress: @@ -130,6 +146,7 @@ export interface AddEthereumChainParameter { decimals: number; }; rpcUrls?: string[]; + blastApiUrls?: Array; blockExplorerUrls?: string[]; iconUrls?: string[]; // Currently ignored. }
Base TokenProtocolHTTP REST APIEvent APIPermanode API{props.baseToken}
{props.baseToken}Protocol {props.protocol}
HTTP REST API {props.httpRestApi}

Event API {props.eventApi}
Permanode API -
Base TokenProtocolChain IDRPC URLExplorer{props.baseToken}
{props.baseToken}Protocol ISC / EVM
Chain ID
RPC URL {props.evm.rpcUrls.map((url, index) => ( {url} ))}
+ + Blast API provides highly + scalable fault-tolerant API endpoints. + + + {props.evm.blastApiUrls.map((object, index) => + typeof object === 'string' ? ( + {object as string} + ) : ( + + {' '} + {Object.values(object)[0]}{' '} + + ), + )} +
Explorer -
Chain AddressAlias ID
Chain Address
Alias ID {props.evmCustom.aliasId}