@circle-fin/app-kit 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -63,9 +63,9 @@ The App Kit provides a **unified interface** for both cross-chain transfers and
63
63
  - **🔧 Bring your own infrastructure**: Seamlessly integrate with your existing setup when needed
64
64
  - **🔒 Production-ready security**: Leverages Circle's CCTPv2 for bridging and trusted swap providers
65
65
  - **🚀 Developer experience**: Complete TypeScript support, comprehensive validation, and instant connectivity
66
- - **🌍 Multi-chain support**: Bridge across **35 chains** with **578 total bridge routes** through Circle's CCTPv2
67
- - **Mainnet (17 chains)**: Arbitrum, Avalanche, Base, Codex, Ethereum, HyperEVM, Ink, Linea, OP Mainnet, Plume, Polygon PoS, Sei, Solana, Sonic, Unichain, World Chain, XDC
68
- - **Testnet (18 chains)**: Arc Testnet, Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, Codex Testnet, Ethereum Sepolia, HyperEVM Testnet, Ink Testnet, Linea Sepolia, OP Sepolia, Plume Testnet, Polygon PoS Amoy, Sei Testnet, Solana Devnet, Sonic Testnet, Unichain Sepolia, World Chain Sepolia, XDC Apothem
66
+ - **🌍 Multi-chain support**: Bridge across **41 chains** with **800 total bridge routes** through Circle's CCTPv2
67
+ - **Mainnet (20 chains)**: Arbitrum, Avalanche, Base, Codex, Edge, Ethereum, HyperEVM, Ink, Linea, Monad, Morph, OP Mainnet, Plume, Polygon PoS, Sei, Solana, Sonic, Unichain, World Chain, XDC
68
+ - **Testnet (21 chains)**: Arc Testnet, Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, Codex Testnet, Edge Testnet, Ethereum Sepolia, HyperEVM Testnet, Ink Testnet, Linea Sepolia, Monad Testnet, Morph Testnet, OP Sepolia, Plume Testnet, Polygon PoS Amoy, Sei Testnet, Solana Devnet, Sonic Testnet, Unichain Sepolia, World Chain Sepolia, XDC Apothem
69
69
  - **🔄 Swap support**: Same-chain token swaps powered by Circle's Stablecoin Service
70
70
  - **🎯 Flexible adapters**: Supporting EVM (Viem, Ethers) and Solana (@solana/web3)
71
71
  - **📡 Real-time event monitoring**: Track progress throughout the operation lifecycle
@@ -155,7 +155,7 @@ const result = await kit.bridge({
155
155
  })
156
156
  ```
157
157
 
158
- All 35 CCTPv2-supported chains are available for import.
158
+ All 41 CCTPv2-supported chains are available for import.
159
159
 
160
160
  ## Quick Start
161
161
 
package/chains.cjs CHANGED
@@ -52,6 +52,8 @@ var Blockchain;
52
52
  Blockchain["Celo_Alfajores_Testnet"] = "Celo_Alfajores_Testnet";
53
53
  Blockchain["Codex"] = "Codex";
54
54
  Blockchain["Codex_Testnet"] = "Codex_Testnet";
55
+ Blockchain["Edge"] = "Edge";
56
+ Blockchain["Edge_Testnet"] = "Edge_Testnet";
55
57
  Blockchain["Ethereum"] = "Ethereum";
56
58
  Blockchain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
57
59
  Blockchain["Hedera"] = "Hedera";
@@ -64,6 +66,8 @@ var Blockchain;
64
66
  Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
65
67
  Blockchain["Monad"] = "Monad";
66
68
  Blockchain["Monad_Testnet"] = "Monad_Testnet";
69
+ Blockchain["Morph"] = "Morph";
70
+ Blockchain["Morph_Testnet"] = "Morph_Testnet";
67
71
  Blockchain["NEAR"] = "NEAR";
68
72
  Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
69
73
  Blockchain["Noble"] = "Noble";
@@ -267,11 +271,13 @@ var BridgeChain;
267
271
  BridgeChain["Avalanche"] = "Avalanche";
268
272
  BridgeChain["Base"] = "Base";
269
273
  BridgeChain["Codex"] = "Codex";
274
+ BridgeChain["Edge"] = "Edge";
270
275
  BridgeChain["Ethereum"] = "Ethereum";
271
276
  BridgeChain["HyperEVM"] = "HyperEVM";
272
277
  BridgeChain["Ink"] = "Ink";
273
278
  BridgeChain["Linea"] = "Linea";
274
279
  BridgeChain["Monad"] = "Monad";
280
+ BridgeChain["Morph"] = "Morph";
275
281
  BridgeChain["Optimism"] = "Optimism";
276
282
  BridgeChain["Plume"] = "Plume";
277
283
  BridgeChain["Polygon"] = "Polygon";
@@ -287,11 +293,13 @@ var BridgeChain;
287
293
  BridgeChain["Avalanche_Fuji"] = "Avalanche_Fuji";
288
294
  BridgeChain["Base_Sepolia"] = "Base_Sepolia";
289
295
  BridgeChain["Codex_Testnet"] = "Codex_Testnet";
296
+ BridgeChain["Edge_Testnet"] = "Edge_Testnet";
290
297
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
291
298
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
292
299
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
293
300
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
294
301
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
302
+ BridgeChain["Morph_Testnet"] = "Morph_Testnet";
295
303
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
296
304
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
297
305
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
@@ -1088,6 +1096,94 @@ const CodexTestnet = defineChain({
1088
1096
  },
1089
1097
  });
1090
1098
 
1099
+ /**
1100
+ * Edge Mainnet chain definition
1101
+ * @remarks
1102
+ * This represents the official production network for the Edge blockchain.
1103
+ * Edge is an EVM-compatible blockchain.
1104
+ */
1105
+ defineChain({
1106
+ type: 'evm',
1107
+ chain: Blockchain.Edge,
1108
+ name: 'Edge',
1109
+ title: 'Edge Mainnet',
1110
+ nativeCurrency: {
1111
+ name: 'Ether',
1112
+ symbol: 'ETH',
1113
+ decimals: 18,
1114
+ },
1115
+ chainId: 3343,
1116
+ isTestnet: false,
1117
+ explorerUrl: 'https://pro.edgex.exchange/en-US/explorer/tx/{hash}',
1118
+ rpcEndpoints: ['https://edge-mainnet.g.alchemy.com/public'],
1119
+ eurcAddress: null,
1120
+ usdcAddress: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
1121
+ usdtAddress: null,
1122
+ cctp: {
1123
+ domain: 28,
1124
+ contracts: {
1125
+ v2: {
1126
+ type: 'split',
1127
+ tokenMessenger: '0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c',
1128
+ messageTransmitter: '0x5b61381Fc9e58E70EfC13a4A97516997019198ee',
1129
+ confirmations: 65,
1130
+ fastConfirmations: 1,
1131
+ },
1132
+ },
1133
+ forwarderSupported: {
1134
+ source: true,
1135
+ destination: true,
1136
+ },
1137
+ },
1138
+ kitContracts: {
1139
+ bridge: '0x6D1AaE1c34Aeb582022916a67f2A655C6f4eDFF2', //Unique bridge address as CCTP address for Edge is also unique
1140
+ },
1141
+ });
1142
+
1143
+ /**
1144
+ * Edge Testnet chain definition
1145
+ * @remarks
1146
+ * This represents the official test network for the Edge blockchain.
1147
+ * Edge is an EVM-compatible blockchain.
1148
+ */
1149
+ defineChain({
1150
+ type: 'evm',
1151
+ chain: Blockchain.Edge_Testnet,
1152
+ name: 'Edge Testnet',
1153
+ title: 'Edge Testnet',
1154
+ nativeCurrency: {
1155
+ name: 'Ether',
1156
+ symbol: 'ETH',
1157
+ decimals: 18,
1158
+ },
1159
+ chainId: 33431,
1160
+ isTestnet: true,
1161
+ explorerUrl: 'https://edge-testnet.explorer.alchemy.com/tx/{hash}',
1162
+ rpcEndpoints: ['https://edge-testnet.g.alchemy.com/public'],
1163
+ eurcAddress: null,
1164
+ usdcAddress: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
1165
+ usdtAddress: null,
1166
+ cctp: {
1167
+ domain: 28,
1168
+ contracts: {
1169
+ v2: {
1170
+ type: 'split',
1171
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1172
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1173
+ confirmations: 65,
1174
+ fastConfirmations: 1,
1175
+ },
1176
+ },
1177
+ forwarderSupported: {
1178
+ source: true,
1179
+ destination: true,
1180
+ },
1181
+ },
1182
+ kitContracts: {
1183
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1184
+ },
1185
+ });
1186
+
1091
1187
  /**
1092
1188
  * Ethereum Mainnet chain definition
1093
1189
  * @remarks
@@ -1599,6 +1695,94 @@ defineChain({
1599
1695
  },
1600
1696
  });
1601
1697
 
1698
+ /**
1699
+ * Morph Mainnet chain definition
1700
+ * @remarks
1701
+ * This represents the official production network for the Morph blockchain.
1702
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1703
+ */
1704
+ defineChain({
1705
+ type: 'evm',
1706
+ chain: Blockchain.Morph,
1707
+ name: 'Morph',
1708
+ title: 'Morph Mainnet',
1709
+ nativeCurrency: {
1710
+ name: 'Ether',
1711
+ symbol: 'ETH',
1712
+ decimals: 18,
1713
+ },
1714
+ chainId: 2818,
1715
+ isTestnet: false,
1716
+ explorerUrl: 'https://explorer.morph.network/tx/{hash}',
1717
+ rpcEndpoints: ['https://rpc.morphl2.io'],
1718
+ eurcAddress: null,
1719
+ usdcAddress: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
1720
+ usdtAddress: null,
1721
+ cctp: {
1722
+ domain: 30,
1723
+ contracts: {
1724
+ v2: {
1725
+ type: 'split',
1726
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1727
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1728
+ confirmations: 64,
1729
+ fastConfirmations: 1,
1730
+ },
1731
+ },
1732
+ forwarderSupported: {
1733
+ source: false,
1734
+ destination: false,
1735
+ },
1736
+ },
1737
+ kitContracts: {
1738
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1739
+ },
1740
+ });
1741
+
1742
+ /**
1743
+ * Morph Hoodi Testnet chain definition
1744
+ * @remarks
1745
+ * This represents the official test network for the Morph blockchain.
1746
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1747
+ */
1748
+ defineChain({
1749
+ type: 'evm',
1750
+ chain: Blockchain.Morph_Testnet,
1751
+ name: 'Morph Hoodi',
1752
+ title: 'Morph Hoodi Testnet',
1753
+ nativeCurrency: {
1754
+ name: 'Ether',
1755
+ symbol: 'ETH',
1756
+ decimals: 18,
1757
+ },
1758
+ chainId: 2910,
1759
+ isTestnet: true,
1760
+ explorerUrl: 'https://explorer-hoodi.morphl2.io/tx/{hash}',
1761
+ rpcEndpoints: ['https://rpc-hoodi.morphl2.io'],
1762
+ eurcAddress: null,
1763
+ usdcAddress: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
1764
+ usdtAddress: null,
1765
+ cctp: {
1766
+ domain: 30,
1767
+ contracts: {
1768
+ v2: {
1769
+ type: 'split',
1770
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1771
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1772
+ confirmations: 64,
1773
+ fastConfirmations: 1,
1774
+ },
1775
+ },
1776
+ forwarderSupported: {
1777
+ source: false,
1778
+ destination: false,
1779
+ },
1780
+ },
1781
+ kitContracts: {
1782
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1783
+ },
1784
+ });
1785
+
1602
1786
  /**
1603
1787
  * NEAR Protocol Mainnet chain definition
1604
1788
  * @remarks
package/chains.d.ts CHANGED
@@ -44,6 +44,8 @@ declare enum Blockchain {
44
44
  Celo_Alfajores_Testnet = "Celo_Alfajores_Testnet",
45
45
  Codex = "Codex",
46
46
  Codex_Testnet = "Codex_Testnet",
47
+ Edge = "Edge",
48
+ Edge_Testnet = "Edge_Testnet",
47
49
  Ethereum = "Ethereum",
48
50
  Ethereum_Sepolia = "Ethereum_Sepolia",
49
51
  Hedera = "Hedera",
@@ -56,6 +58,8 @@ declare enum Blockchain {
56
58
  Linea_Sepolia = "Linea_Sepolia",
57
59
  Monad = "Monad",
58
60
  Monad_Testnet = "Monad_Testnet",
61
+ Morph = "Morph",
62
+ Morph_Testnet = "Morph_Testnet",
59
63
  NEAR = "NEAR",
60
64
  NEAR_Testnet = "NEAR_Testnet",
61
65
  Noble = "Noble",
package/chains.mjs CHANGED
@@ -50,6 +50,8 @@ var Blockchain;
50
50
  Blockchain["Celo_Alfajores_Testnet"] = "Celo_Alfajores_Testnet";
51
51
  Blockchain["Codex"] = "Codex";
52
52
  Blockchain["Codex_Testnet"] = "Codex_Testnet";
53
+ Blockchain["Edge"] = "Edge";
54
+ Blockchain["Edge_Testnet"] = "Edge_Testnet";
53
55
  Blockchain["Ethereum"] = "Ethereum";
54
56
  Blockchain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
55
57
  Blockchain["Hedera"] = "Hedera";
@@ -62,6 +64,8 @@ var Blockchain;
62
64
  Blockchain["Linea_Sepolia"] = "Linea_Sepolia";
63
65
  Blockchain["Monad"] = "Monad";
64
66
  Blockchain["Monad_Testnet"] = "Monad_Testnet";
67
+ Blockchain["Morph"] = "Morph";
68
+ Blockchain["Morph_Testnet"] = "Morph_Testnet";
65
69
  Blockchain["NEAR"] = "NEAR";
66
70
  Blockchain["NEAR_Testnet"] = "NEAR_Testnet";
67
71
  Blockchain["Noble"] = "Noble";
@@ -265,11 +269,13 @@ var BridgeChain;
265
269
  BridgeChain["Avalanche"] = "Avalanche";
266
270
  BridgeChain["Base"] = "Base";
267
271
  BridgeChain["Codex"] = "Codex";
272
+ BridgeChain["Edge"] = "Edge";
268
273
  BridgeChain["Ethereum"] = "Ethereum";
269
274
  BridgeChain["HyperEVM"] = "HyperEVM";
270
275
  BridgeChain["Ink"] = "Ink";
271
276
  BridgeChain["Linea"] = "Linea";
272
277
  BridgeChain["Monad"] = "Monad";
278
+ BridgeChain["Morph"] = "Morph";
273
279
  BridgeChain["Optimism"] = "Optimism";
274
280
  BridgeChain["Plume"] = "Plume";
275
281
  BridgeChain["Polygon"] = "Polygon";
@@ -285,11 +291,13 @@ var BridgeChain;
285
291
  BridgeChain["Avalanche_Fuji"] = "Avalanche_Fuji";
286
292
  BridgeChain["Base_Sepolia"] = "Base_Sepolia";
287
293
  BridgeChain["Codex_Testnet"] = "Codex_Testnet";
294
+ BridgeChain["Edge_Testnet"] = "Edge_Testnet";
288
295
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
289
296
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
290
297
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
291
298
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
292
299
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
300
+ BridgeChain["Morph_Testnet"] = "Morph_Testnet";
293
301
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
294
302
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
295
303
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
@@ -1086,6 +1094,94 @@ const CodexTestnet = defineChain({
1086
1094
  },
1087
1095
  });
1088
1096
 
1097
+ /**
1098
+ * Edge Mainnet chain definition
1099
+ * @remarks
1100
+ * This represents the official production network for the Edge blockchain.
1101
+ * Edge is an EVM-compatible blockchain.
1102
+ */
1103
+ defineChain({
1104
+ type: 'evm',
1105
+ chain: Blockchain.Edge,
1106
+ name: 'Edge',
1107
+ title: 'Edge Mainnet',
1108
+ nativeCurrency: {
1109
+ name: 'Ether',
1110
+ symbol: 'ETH',
1111
+ decimals: 18,
1112
+ },
1113
+ chainId: 3343,
1114
+ isTestnet: false,
1115
+ explorerUrl: 'https://pro.edgex.exchange/en-US/explorer/tx/{hash}',
1116
+ rpcEndpoints: ['https://edge-mainnet.g.alchemy.com/public'],
1117
+ eurcAddress: null,
1118
+ usdcAddress: '0x98d2919b9A214E6Fa5384AC81E6864bA686Ad74c',
1119
+ usdtAddress: null,
1120
+ cctp: {
1121
+ domain: 28,
1122
+ contracts: {
1123
+ v2: {
1124
+ type: 'split',
1125
+ tokenMessenger: '0x98706A006bc632Df31CAdFCBD43F38887ce2ca5c',
1126
+ messageTransmitter: '0x5b61381Fc9e58E70EfC13a4A97516997019198ee',
1127
+ confirmations: 65,
1128
+ fastConfirmations: 1,
1129
+ },
1130
+ },
1131
+ forwarderSupported: {
1132
+ source: true,
1133
+ destination: true,
1134
+ },
1135
+ },
1136
+ kitContracts: {
1137
+ bridge: '0x6D1AaE1c34Aeb582022916a67f2A655C6f4eDFF2', //Unique bridge address as CCTP address for Edge is also unique
1138
+ },
1139
+ });
1140
+
1141
+ /**
1142
+ * Edge Testnet chain definition
1143
+ * @remarks
1144
+ * This represents the official test network for the Edge blockchain.
1145
+ * Edge is an EVM-compatible blockchain.
1146
+ */
1147
+ defineChain({
1148
+ type: 'evm',
1149
+ chain: Blockchain.Edge_Testnet,
1150
+ name: 'Edge Testnet',
1151
+ title: 'Edge Testnet',
1152
+ nativeCurrency: {
1153
+ name: 'Ether',
1154
+ symbol: 'ETH',
1155
+ decimals: 18,
1156
+ },
1157
+ chainId: 33431,
1158
+ isTestnet: true,
1159
+ explorerUrl: 'https://edge-testnet.explorer.alchemy.com/tx/{hash}',
1160
+ rpcEndpoints: ['https://edge-testnet.g.alchemy.com/public'],
1161
+ eurcAddress: null,
1162
+ usdcAddress: '0x2d9F7CAD728051AA35Ecdc472a14cf8cDF5CFD6B',
1163
+ usdtAddress: null,
1164
+ cctp: {
1165
+ domain: 28,
1166
+ contracts: {
1167
+ v2: {
1168
+ type: 'split',
1169
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1170
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1171
+ confirmations: 65,
1172
+ fastConfirmations: 1,
1173
+ },
1174
+ },
1175
+ forwarderSupported: {
1176
+ source: true,
1177
+ destination: true,
1178
+ },
1179
+ },
1180
+ kitContracts: {
1181
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1182
+ },
1183
+ });
1184
+
1089
1185
  /**
1090
1186
  * Ethereum Mainnet chain definition
1091
1187
  * @remarks
@@ -1597,6 +1693,94 @@ defineChain({
1597
1693
  },
1598
1694
  });
1599
1695
 
1696
+ /**
1697
+ * Morph Mainnet chain definition
1698
+ * @remarks
1699
+ * This represents the official production network for the Morph blockchain.
1700
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1701
+ */
1702
+ defineChain({
1703
+ type: 'evm',
1704
+ chain: Blockchain.Morph,
1705
+ name: 'Morph',
1706
+ title: 'Morph Mainnet',
1707
+ nativeCurrency: {
1708
+ name: 'Ether',
1709
+ symbol: 'ETH',
1710
+ decimals: 18,
1711
+ },
1712
+ chainId: 2818,
1713
+ isTestnet: false,
1714
+ explorerUrl: 'https://explorer.morph.network/tx/{hash}',
1715
+ rpcEndpoints: ['https://rpc.morphl2.io'],
1716
+ eurcAddress: null,
1717
+ usdcAddress: '0xCfb1186F4e93D60E60a8bDd997427D1F33bc372B',
1718
+ usdtAddress: null,
1719
+ cctp: {
1720
+ domain: 30,
1721
+ contracts: {
1722
+ v2: {
1723
+ type: 'split',
1724
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1725
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1726
+ confirmations: 64,
1727
+ fastConfirmations: 1,
1728
+ },
1729
+ },
1730
+ forwarderSupported: {
1731
+ source: false,
1732
+ destination: false,
1733
+ },
1734
+ },
1735
+ kitContracts: {
1736
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1737
+ },
1738
+ });
1739
+
1740
+ /**
1741
+ * Morph Hoodi Testnet chain definition
1742
+ * @remarks
1743
+ * This represents the official test network for the Morph blockchain.
1744
+ * Morph is an EVM-compatible Layer-2 blockchain built on the OP Stack.
1745
+ */
1746
+ defineChain({
1747
+ type: 'evm',
1748
+ chain: Blockchain.Morph_Testnet,
1749
+ name: 'Morph Hoodi',
1750
+ title: 'Morph Hoodi Testnet',
1751
+ nativeCurrency: {
1752
+ name: 'Ether',
1753
+ symbol: 'ETH',
1754
+ decimals: 18,
1755
+ },
1756
+ chainId: 2910,
1757
+ isTestnet: true,
1758
+ explorerUrl: 'https://explorer-hoodi.morphl2.io/tx/{hash}',
1759
+ rpcEndpoints: ['https://rpc-hoodi.morphl2.io'],
1760
+ eurcAddress: null,
1761
+ usdcAddress: '0x7433b41C6c5e1d58D4Da99483609520255ab661B',
1762
+ usdtAddress: null,
1763
+ cctp: {
1764
+ domain: 30,
1765
+ contracts: {
1766
+ v2: {
1767
+ type: 'split',
1768
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1769
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1770
+ confirmations: 64,
1771
+ fastConfirmations: 1,
1772
+ },
1773
+ },
1774
+ forwarderSupported: {
1775
+ source: false,
1776
+ destination: false,
1777
+ },
1778
+ },
1779
+ kitContracts: {
1780
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1781
+ },
1782
+ });
1783
+
1600
1784
  /**
1601
1785
  * NEAR Protocol Mainnet chain definition
1602
1786
  * @remarks