@circle-fin/app-kit 1.4.1 → 1.5.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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @circle-fin/app-kit
2
2
 
3
+ ## 1.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Add support for bridging USDC to and from Injective (mainnet and testnet) via CCTP v2. Both networks are now available as source and destination options in Bridge Kit.
8
+ - Add unhandled error telemetry reporting.
9
+ - All kits now report unhandled errors to Circle's telemetry endpoint to aid reliability monitoring. Set `disableErrorReporting: true` in the kit config (or `AppKit` config) to opt out.
10
+ - The following fields are included in each error report: error event type, SDK name and version, and where available: source chain name, destination chain name, and token symbol. Error messages, stack traces, wallet addresses, and transaction data are never sent.
11
+
12
+ ## 1.4.2
13
+
14
+ ### Patch Changes
15
+
16
+ - Fix `kit.send()` and `kit.estimateSend()` when sending from a Circle Wallet. You can now pass the wallet's address in `from.address` and the transfer will go through.
17
+ - Add support for bridging USDC to and from Pharos (mainnet and testnet) via CCTP v2.
18
+ - You can now reference cirBTC by its symbol when looking up tokens on Arc Testnet (e.g. when resolving swap inputs/outputs).
19
+ - Bridge errors now expose a machine-readable `errorCategory` so apps can distinguish user rejections, wallet capability errors, and offchain vs onchain failures without string-matching.
20
+ - The block explorer URLs returned in the Sei (mainnet and testnet) chain definitions now point to the current explorers. If you derive transaction or address links from `chain.blockExplorers`, your links will now resolve correctly.
21
+
3
22
  ## 1.4.1
4
23
 
5
24
  ### Patch Changes
package/README.md CHANGED
@@ -64,9 +64,9 @@ The App Kit provides a **unified interface** for cross-chain transfers, same-cha
64
64
  - **🔧 Bring your own infrastructure**: Seamlessly integrate with your existing setup when needed
65
65
  - **🔒 Production-ready security**: Leverages Circle's CCTPv2 for bridging and trusted swap providers
66
66
  - **🚀 Developer experience**: Complete TypeScript support, comprehensive validation, and instant connectivity
67
- - **🌍 Multi-chain support**: Bridge across **41 chains** with **800 total bridge routes** through Circle's CCTPv2
68
- - **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
69
- - **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
67
+ - **🌍 Multi-chain support**: Bridge across **45 chains** with **968 total bridge routes** through Circle's CCTPv2
68
+ - **Mainnet (22 chains)**: Arbitrum, Avalanche, Base, Codex, Edge, Ethereum, HyperEVM, Injective, Ink, Linea, Monad, Morph, OP Mainnet, Pharos, Plume, Polygon PoS, Sei, Solana, Sonic, Unichain, World Chain, XDC
69
+ - **Testnet (23 chains)**: Arc Testnet, Arbitrum Sepolia, Avalanche Fuji, Base Sepolia, Codex Testnet, Edge Testnet, Ethereum Sepolia, HyperEVM Testnet, Injective Testnet, Ink Testnet, Linea Sepolia, Monad Testnet, Morph Testnet, OP Sepolia, Pharos Atlantic, Plume Testnet, Polygon PoS Amoy, Sei Testnet, Solana Devnet, Sonic Testnet, Unichain Sepolia, World Chain Sepolia, XDC Apothem
70
70
  - **🔄 Swap support**: Same-chain token swaps powered by Circle's Stablecoin Service
71
71
  - **🎯 Flexible adapters**: Supporting EVM (Viem, Ethers) and Solana (@solana/web3)
72
72
  - **📡 Real-time event monitoring**: Track progress throughout the operation lifecycle
package/chains.cjs CHANGED
@@ -60,6 +60,8 @@ var Blockchain;
60
60
  Blockchain["Hedera_Testnet"] = "Hedera_Testnet";
61
61
  Blockchain["HyperEVM"] = "HyperEVM";
62
62
  Blockchain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
63
+ Blockchain["Injective"] = "Injective";
64
+ Blockchain["Injective_Testnet"] = "Injective_Testnet";
63
65
  Blockchain["Ink"] = "Ink";
64
66
  Blockchain["Ink_Testnet"] = "Ink_Testnet";
65
67
  Blockchain["Linea"] = "Linea";
@@ -74,6 +76,8 @@ var Blockchain;
74
76
  Blockchain["Noble_Testnet"] = "Noble_Testnet";
75
77
  Blockchain["Optimism"] = "Optimism";
76
78
  Blockchain["Optimism_Sepolia"] = "Optimism_Sepolia";
79
+ Blockchain["Pharos"] = "Pharos";
80
+ Blockchain["Pharos_Testnet"] = "Pharos_Testnet";
77
81
  Blockchain["Polkadot_Asset_Hub"] = "Polkadot_Asset_Hub";
78
82
  Blockchain["Polkadot_Westmint"] = "Polkadot_Westmint";
79
83
  Blockchain["Plume"] = "Plume";
@@ -277,11 +281,13 @@ var BridgeChain;
277
281
  BridgeChain["Edge"] = "Edge";
278
282
  BridgeChain["Ethereum"] = "Ethereum";
279
283
  BridgeChain["HyperEVM"] = "HyperEVM";
284
+ BridgeChain["Injective"] = "Injective";
280
285
  BridgeChain["Ink"] = "Ink";
281
286
  BridgeChain["Linea"] = "Linea";
282
287
  BridgeChain["Monad"] = "Monad";
283
288
  BridgeChain["Morph"] = "Morph";
284
289
  BridgeChain["Optimism"] = "Optimism";
290
+ BridgeChain["Pharos"] = "Pharos";
285
291
  BridgeChain["Plume"] = "Plume";
286
292
  BridgeChain["Polygon"] = "Polygon";
287
293
  BridgeChain["Sei"] = "Sei";
@@ -299,11 +305,13 @@ var BridgeChain;
299
305
  BridgeChain["Edge_Testnet"] = "Edge_Testnet";
300
306
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
301
307
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
308
+ BridgeChain["Injective_Testnet"] = "Injective_Testnet";
302
309
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
303
310
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
304
311
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
305
312
  BridgeChain["Morph_Testnet"] = "Morph_Testnet";
306
313
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
314
+ BridgeChain["Pharos_Testnet"] = "Pharos_Testnet";
307
315
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
308
316
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
309
317
  BridgeChain["Sei_Testnet"] = "Sei_Testnet";
@@ -649,6 +657,12 @@ const SWAP_TOKEN_REGISTRY = {
649
657
  category: 'wrapped',
650
658
  description: 'Wrapped Polygon',
651
659
  },
660
+ CIRBTC: {
661
+ symbol: 'CIRBTC',
662
+ decimals: 8,
663
+ category: 'wrapped',
664
+ description: 'Circle Bitcoin',
665
+ },
652
666
  };
653
667
  /**
654
668
  * Special NATIVE token constant for swap operations.
@@ -1711,6 +1725,98 @@ const HyperEVMTestnet = defineChain({
1711
1725
  },
1712
1726
  });
1713
1727
 
1728
+ /**
1729
+ * Injective Mainnet chain definition
1730
+ * @remarks
1731
+ * This represents the official production network for the Injective blockchain.
1732
+ * Injective is a high-performance, interoperable Layer-1 blockchain built for
1733
+ * finance, with an EVM execution layer on top of a Cosmos SDK base and
1734
+ * sub-second block finality.
1735
+ */
1736
+ defineChain({
1737
+ type: 'evm',
1738
+ chain: Blockchain.Injective,
1739
+ name: 'Injective',
1740
+ title: 'Injective Mainnet',
1741
+ nativeCurrency: {
1742
+ name: 'Injective',
1743
+ symbol: 'INJ',
1744
+ decimals: 18,
1745
+ },
1746
+ chainId: 1776,
1747
+ isTestnet: false,
1748
+ explorerUrl: 'https://injscan.com/transaction/{hash}',
1749
+ rpcEndpoints: ['https://sentry.evm-rpc.injective.network'],
1750
+ eurcAddress: null,
1751
+ usdcAddress: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
1752
+ usdtAddress: null,
1753
+ cctp: {
1754
+ domain: 29,
1755
+ contracts: {
1756
+ v2: {
1757
+ type: 'split',
1758
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1759
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1760
+ confirmations: 1,
1761
+ fastConfirmations: 1,
1762
+ },
1763
+ },
1764
+ forwarderSupported: {
1765
+ source: false,
1766
+ destination: false,
1767
+ },
1768
+ },
1769
+ kitContracts: {
1770
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1771
+ },
1772
+ });
1773
+
1774
+ /**
1775
+ * Injective Testnet chain definition
1776
+ * @remarks
1777
+ * This represents the official test network for the Injective blockchain.
1778
+ * Injective is a high-performance, interoperable Layer-1 blockchain built for
1779
+ * finance, with an EVM execution layer on top of a Cosmos SDK base and
1780
+ * sub-second block finality.
1781
+ */
1782
+ defineChain({
1783
+ type: 'evm',
1784
+ chain: Blockchain.Injective_Testnet,
1785
+ name: 'Injective Testnet',
1786
+ title: 'Injective Testnet',
1787
+ nativeCurrency: {
1788
+ name: 'Injective',
1789
+ symbol: 'INJ',
1790
+ decimals: 18,
1791
+ },
1792
+ chainId: 1439,
1793
+ isTestnet: true,
1794
+ explorerUrl: 'https://testnet.explorer.injective.network/transaction/{hash}',
1795
+ rpcEndpoints: ['https://k8s.testnet.json-rpc.injective.network'],
1796
+ eurcAddress: null,
1797
+ usdcAddress: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
1798
+ usdtAddress: null,
1799
+ cctp: {
1800
+ domain: 29,
1801
+ contracts: {
1802
+ v2: {
1803
+ type: 'split',
1804
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1805
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1806
+ confirmations: 1,
1807
+ fastConfirmations: 1,
1808
+ },
1809
+ },
1810
+ forwarderSupported: {
1811
+ source: false,
1812
+ destination: false,
1813
+ },
1814
+ },
1815
+ kitContracts: {
1816
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1817
+ },
1818
+ });
1819
+
1714
1820
  /**
1715
1821
  * Ink Mainnet chain definition
1716
1822
  * @remarks
@@ -2320,6 +2426,96 @@ const OptimismSepolia = defineChain({
2320
2426
  },
2321
2427
  });
2322
2428
 
2429
+ /**
2430
+ * Pharos Mainnet chain definition
2431
+ * @remarks
2432
+ * This represents the official production network for the Pharos blockchain.
2433
+ * Pharos is a modular, full-stack parallel Layer 1 blockchain with
2434
+ * sub-second finality and EVM compatibility.
2435
+ */
2436
+ defineChain({
2437
+ type: 'evm',
2438
+ chain: Blockchain.Pharos,
2439
+ name: 'Pharos',
2440
+ title: 'Pharos Mainnet',
2441
+ nativeCurrency: {
2442
+ name: 'Pharos',
2443
+ symbol: 'PHAROS',
2444
+ decimals: 18,
2445
+ },
2446
+ chainId: 1672,
2447
+ isTestnet: false,
2448
+ explorerUrl: 'https://pharos.socialscan.io/tx/{hash}',
2449
+ rpcEndpoints: ['https://rpc.pharos.xyz'],
2450
+ eurcAddress: null,
2451
+ usdcAddress: '0xC879C018dB60520F4355C26eD1a6D572cdAC1815',
2452
+ usdtAddress: null,
2453
+ cctp: {
2454
+ domain: 31,
2455
+ contracts: {
2456
+ v2: {
2457
+ type: 'split',
2458
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
2459
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
2460
+ confirmations: 1,
2461
+ fastConfirmations: 1,
2462
+ },
2463
+ },
2464
+ forwarderSupported: {
2465
+ source: false,
2466
+ destination: false,
2467
+ },
2468
+ },
2469
+ kitContracts: {
2470
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
2471
+ },
2472
+ });
2473
+
2474
+ /**
2475
+ * Pharos Atlantic Testnet chain definition
2476
+ * @remarks
2477
+ * This represents the official test network for the Pharos blockchain.
2478
+ * Pharos is a modular, full-stack parallel Layer 1 blockchain with
2479
+ * sub-second finality and EVM compatibility.
2480
+ */
2481
+ defineChain({
2482
+ type: 'evm',
2483
+ chain: Blockchain.Pharos_Testnet,
2484
+ name: 'Pharos Atlantic',
2485
+ title: 'Pharos Atlantic Testnet',
2486
+ nativeCurrency: {
2487
+ name: 'Pharos',
2488
+ symbol: 'PHAROS',
2489
+ decimals: 18,
2490
+ },
2491
+ chainId: 688689,
2492
+ isTestnet: true,
2493
+ explorerUrl: 'https://atlantic.pharosscan.xyz/tx/{hash}',
2494
+ rpcEndpoints: ['https://atlantic.dplabs-internal.com'],
2495
+ eurcAddress: null,
2496
+ usdcAddress: '0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B',
2497
+ usdtAddress: null,
2498
+ cctp: {
2499
+ domain: 31,
2500
+ contracts: {
2501
+ v2: {
2502
+ type: 'split',
2503
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
2504
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
2505
+ confirmations: 1,
2506
+ fastConfirmations: 1,
2507
+ },
2508
+ },
2509
+ forwarderSupported: {
2510
+ source: false,
2511
+ destination: false,
2512
+ },
2513
+ },
2514
+ kitContracts: {
2515
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
2516
+ },
2517
+ });
2518
+
2323
2519
  /**
2324
2520
  * Plume Mainnet chain definition
2325
2521
  * @remarks
@@ -2602,7 +2798,7 @@ const Sei = defineChain({
2602
2798
  },
2603
2799
  chainId: 1329,
2604
2800
  isTestnet: false,
2605
- explorerUrl: 'https://seitrace.com/tx/{hash}?chain=pacific-1',
2801
+ explorerUrl: 'https://seiscan.io/tx/{hash}',
2606
2802
  rpcEndpoints: ['https://evm-rpc.sei-apis.com'],
2607
2803
  eurcAddress: null,
2608
2804
  usdcAddress: '0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392',
@@ -2660,7 +2856,7 @@ const SeiTestnet = defineChain({
2660
2856
  },
2661
2857
  chainId: 1328,
2662
2858
  isTestnet: true,
2663
- explorerUrl: 'https://seitrace.com/tx/{hash}?chain=atlantic-2',
2859
+ explorerUrl: 'https://testnet.seiscan.io/tx/{hash}',
2664
2860
  rpcEndpoints: ['https://evm-rpc-testnet.sei-apis.com'],
2665
2861
  eurcAddress: null,
2666
2862
  usdcAddress: '0x4fCF1784B31630811181f670Aea7A7bEF803eaED',
package/chains.d.ts CHANGED
@@ -52,6 +52,8 @@ declare enum Blockchain {
52
52
  Hedera_Testnet = "Hedera_Testnet",
53
53
  HyperEVM = "HyperEVM",
54
54
  HyperEVM_Testnet = "HyperEVM_Testnet",
55
+ Injective = "Injective",
56
+ Injective_Testnet = "Injective_Testnet",
55
57
  Ink = "Ink",
56
58
  Ink_Testnet = "Ink_Testnet",
57
59
  Linea = "Linea",
@@ -66,6 +68,8 @@ declare enum Blockchain {
66
68
  Noble_Testnet = "Noble_Testnet",
67
69
  Optimism = "Optimism",
68
70
  Optimism_Sepolia = "Optimism_Sepolia",
71
+ Pharos = "Pharos",
72
+ Pharos_Testnet = "Pharos_Testnet",
69
73
  Polkadot_Asset_Hub = "Polkadot_Asset_Hub",
70
74
  Polkadot_Westmint = "Polkadot_Westmint",
71
75
  Plume = "Plume",
@@ -1391,7 +1395,7 @@ declare const Sei: {
1391
1395
  };
1392
1396
  readonly chainId: 1329;
1393
1397
  readonly isTestnet: false;
1394
- readonly explorerUrl: "https://seitrace.com/tx/{hash}?chain=pacific-1";
1398
+ readonly explorerUrl: "https://seiscan.io/tx/{hash}";
1395
1399
  readonly rpcEndpoints: readonly ["https://evm-rpc.sei-apis.com"];
1396
1400
  readonly eurcAddress: null;
1397
1401
  readonly usdcAddress: "0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392";
@@ -1449,7 +1453,7 @@ declare const SeiTestnet: {
1449
1453
  };
1450
1454
  readonly chainId: 1328;
1451
1455
  readonly isTestnet: true;
1452
- readonly explorerUrl: "https://seitrace.com/tx/{hash}?chain=atlantic-2";
1456
+ readonly explorerUrl: "https://testnet.seiscan.io/tx/{hash}";
1453
1457
  readonly rpcEndpoints: readonly ["https://evm-rpc-testnet.sei-apis.com"];
1454
1458
  readonly eurcAddress: null;
1455
1459
  readonly usdcAddress: "0x4fCF1784B31630811181f670Aea7A7bEF803eaED";
package/chains.mjs CHANGED
@@ -58,6 +58,8 @@ var Blockchain;
58
58
  Blockchain["Hedera_Testnet"] = "Hedera_Testnet";
59
59
  Blockchain["HyperEVM"] = "HyperEVM";
60
60
  Blockchain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
61
+ Blockchain["Injective"] = "Injective";
62
+ Blockchain["Injective_Testnet"] = "Injective_Testnet";
61
63
  Blockchain["Ink"] = "Ink";
62
64
  Blockchain["Ink_Testnet"] = "Ink_Testnet";
63
65
  Blockchain["Linea"] = "Linea";
@@ -72,6 +74,8 @@ var Blockchain;
72
74
  Blockchain["Noble_Testnet"] = "Noble_Testnet";
73
75
  Blockchain["Optimism"] = "Optimism";
74
76
  Blockchain["Optimism_Sepolia"] = "Optimism_Sepolia";
77
+ Blockchain["Pharos"] = "Pharos";
78
+ Blockchain["Pharos_Testnet"] = "Pharos_Testnet";
75
79
  Blockchain["Polkadot_Asset_Hub"] = "Polkadot_Asset_Hub";
76
80
  Blockchain["Polkadot_Westmint"] = "Polkadot_Westmint";
77
81
  Blockchain["Plume"] = "Plume";
@@ -275,11 +279,13 @@ var BridgeChain;
275
279
  BridgeChain["Edge"] = "Edge";
276
280
  BridgeChain["Ethereum"] = "Ethereum";
277
281
  BridgeChain["HyperEVM"] = "HyperEVM";
282
+ BridgeChain["Injective"] = "Injective";
278
283
  BridgeChain["Ink"] = "Ink";
279
284
  BridgeChain["Linea"] = "Linea";
280
285
  BridgeChain["Monad"] = "Monad";
281
286
  BridgeChain["Morph"] = "Morph";
282
287
  BridgeChain["Optimism"] = "Optimism";
288
+ BridgeChain["Pharos"] = "Pharos";
283
289
  BridgeChain["Plume"] = "Plume";
284
290
  BridgeChain["Polygon"] = "Polygon";
285
291
  BridgeChain["Sei"] = "Sei";
@@ -297,11 +303,13 @@ var BridgeChain;
297
303
  BridgeChain["Edge_Testnet"] = "Edge_Testnet";
298
304
  BridgeChain["Ethereum_Sepolia"] = "Ethereum_Sepolia";
299
305
  BridgeChain["HyperEVM_Testnet"] = "HyperEVM_Testnet";
306
+ BridgeChain["Injective_Testnet"] = "Injective_Testnet";
300
307
  BridgeChain["Ink_Testnet"] = "Ink_Testnet";
301
308
  BridgeChain["Linea_Sepolia"] = "Linea_Sepolia";
302
309
  BridgeChain["Monad_Testnet"] = "Monad_Testnet";
303
310
  BridgeChain["Morph_Testnet"] = "Morph_Testnet";
304
311
  BridgeChain["Optimism_Sepolia"] = "Optimism_Sepolia";
312
+ BridgeChain["Pharos_Testnet"] = "Pharos_Testnet";
305
313
  BridgeChain["Plume_Testnet"] = "Plume_Testnet";
306
314
  BridgeChain["Polygon_Amoy_Testnet"] = "Polygon_Amoy_Testnet";
307
315
  BridgeChain["Sei_Testnet"] = "Sei_Testnet";
@@ -647,6 +655,12 @@ const SWAP_TOKEN_REGISTRY = {
647
655
  category: 'wrapped',
648
656
  description: 'Wrapped Polygon',
649
657
  },
658
+ CIRBTC: {
659
+ symbol: 'CIRBTC',
660
+ decimals: 8,
661
+ category: 'wrapped',
662
+ description: 'Circle Bitcoin',
663
+ },
650
664
  };
651
665
  /**
652
666
  * Special NATIVE token constant for swap operations.
@@ -1709,6 +1723,98 @@ const HyperEVMTestnet = defineChain({
1709
1723
  },
1710
1724
  });
1711
1725
 
1726
+ /**
1727
+ * Injective Mainnet chain definition
1728
+ * @remarks
1729
+ * This represents the official production network for the Injective blockchain.
1730
+ * Injective is a high-performance, interoperable Layer-1 blockchain built for
1731
+ * finance, with an EVM execution layer on top of a Cosmos SDK base and
1732
+ * sub-second block finality.
1733
+ */
1734
+ defineChain({
1735
+ type: 'evm',
1736
+ chain: Blockchain.Injective,
1737
+ name: 'Injective',
1738
+ title: 'Injective Mainnet',
1739
+ nativeCurrency: {
1740
+ name: 'Injective',
1741
+ symbol: 'INJ',
1742
+ decimals: 18,
1743
+ },
1744
+ chainId: 1776,
1745
+ isTestnet: false,
1746
+ explorerUrl: 'https://injscan.com/transaction/{hash}',
1747
+ rpcEndpoints: ['https://sentry.evm-rpc.injective.network'],
1748
+ eurcAddress: null,
1749
+ usdcAddress: '0xa00C59fF5a080D2b954d0c75e46E22a0c371235a',
1750
+ usdtAddress: null,
1751
+ cctp: {
1752
+ domain: 29,
1753
+ contracts: {
1754
+ v2: {
1755
+ type: 'split',
1756
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
1757
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
1758
+ confirmations: 1,
1759
+ fastConfirmations: 1,
1760
+ },
1761
+ },
1762
+ forwarderSupported: {
1763
+ source: false,
1764
+ destination: false,
1765
+ },
1766
+ },
1767
+ kitContracts: {
1768
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
1769
+ },
1770
+ });
1771
+
1772
+ /**
1773
+ * Injective Testnet chain definition
1774
+ * @remarks
1775
+ * This represents the official test network for the Injective blockchain.
1776
+ * Injective is a high-performance, interoperable Layer-1 blockchain built for
1777
+ * finance, with an EVM execution layer on top of a Cosmos SDK base and
1778
+ * sub-second block finality.
1779
+ */
1780
+ defineChain({
1781
+ type: 'evm',
1782
+ chain: Blockchain.Injective_Testnet,
1783
+ name: 'Injective Testnet',
1784
+ title: 'Injective Testnet',
1785
+ nativeCurrency: {
1786
+ name: 'Injective',
1787
+ symbol: 'INJ',
1788
+ decimals: 18,
1789
+ },
1790
+ chainId: 1439,
1791
+ isTestnet: true,
1792
+ explorerUrl: 'https://testnet.explorer.injective.network/transaction/{hash}',
1793
+ rpcEndpoints: ['https://k8s.testnet.json-rpc.injective.network'],
1794
+ eurcAddress: null,
1795
+ usdcAddress: '0x0C382e685bbeeFE5d3d9C29e29E341fEE8E84C5d',
1796
+ usdtAddress: null,
1797
+ cctp: {
1798
+ domain: 29,
1799
+ contracts: {
1800
+ v2: {
1801
+ type: 'split',
1802
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
1803
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
1804
+ confirmations: 1,
1805
+ fastConfirmations: 1,
1806
+ },
1807
+ },
1808
+ forwarderSupported: {
1809
+ source: false,
1810
+ destination: false,
1811
+ },
1812
+ },
1813
+ kitContracts: {
1814
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
1815
+ },
1816
+ });
1817
+
1712
1818
  /**
1713
1819
  * Ink Mainnet chain definition
1714
1820
  * @remarks
@@ -2318,6 +2424,96 @@ const OptimismSepolia = defineChain({
2318
2424
  },
2319
2425
  });
2320
2426
 
2427
+ /**
2428
+ * Pharos Mainnet chain definition
2429
+ * @remarks
2430
+ * This represents the official production network for the Pharos blockchain.
2431
+ * Pharos is a modular, full-stack parallel Layer 1 blockchain with
2432
+ * sub-second finality and EVM compatibility.
2433
+ */
2434
+ defineChain({
2435
+ type: 'evm',
2436
+ chain: Blockchain.Pharos,
2437
+ name: 'Pharos',
2438
+ title: 'Pharos Mainnet',
2439
+ nativeCurrency: {
2440
+ name: 'Pharos',
2441
+ symbol: 'PHAROS',
2442
+ decimals: 18,
2443
+ },
2444
+ chainId: 1672,
2445
+ isTestnet: false,
2446
+ explorerUrl: 'https://pharos.socialscan.io/tx/{hash}',
2447
+ rpcEndpoints: ['https://rpc.pharos.xyz'],
2448
+ eurcAddress: null,
2449
+ usdcAddress: '0xC879C018dB60520F4355C26eD1a6D572cdAC1815',
2450
+ usdtAddress: null,
2451
+ cctp: {
2452
+ domain: 31,
2453
+ contracts: {
2454
+ v2: {
2455
+ type: 'split',
2456
+ tokenMessenger: '0x28b5a0e9C621a5BadaA536219b3a228C8168cf5d',
2457
+ messageTransmitter: '0x81D40F21F12A8F0E3252Bccb954D722d4c464B64',
2458
+ confirmations: 1,
2459
+ fastConfirmations: 1,
2460
+ },
2461
+ },
2462
+ forwarderSupported: {
2463
+ source: false,
2464
+ destination: false,
2465
+ },
2466
+ },
2467
+ kitContracts: {
2468
+ bridge: BRIDGE_CONTRACT_EVM_MAINNET,
2469
+ },
2470
+ });
2471
+
2472
+ /**
2473
+ * Pharos Atlantic Testnet chain definition
2474
+ * @remarks
2475
+ * This represents the official test network for the Pharos blockchain.
2476
+ * Pharos is a modular, full-stack parallel Layer 1 blockchain with
2477
+ * sub-second finality and EVM compatibility.
2478
+ */
2479
+ defineChain({
2480
+ type: 'evm',
2481
+ chain: Blockchain.Pharos_Testnet,
2482
+ name: 'Pharos Atlantic',
2483
+ title: 'Pharos Atlantic Testnet',
2484
+ nativeCurrency: {
2485
+ name: 'Pharos',
2486
+ symbol: 'PHAROS',
2487
+ decimals: 18,
2488
+ },
2489
+ chainId: 688689,
2490
+ isTestnet: true,
2491
+ explorerUrl: 'https://atlantic.pharosscan.xyz/tx/{hash}',
2492
+ rpcEndpoints: ['https://atlantic.dplabs-internal.com'],
2493
+ eurcAddress: null,
2494
+ usdcAddress: '0xcfC8330f4BCAB529c625D12781b1C19466A9Fc8B',
2495
+ usdtAddress: null,
2496
+ cctp: {
2497
+ domain: 31,
2498
+ contracts: {
2499
+ v2: {
2500
+ type: 'split',
2501
+ tokenMessenger: '0x8FE6B999Dc680CcFDD5Bf7EB0974218be2542DAA',
2502
+ messageTransmitter: '0xE737e5cEBEEBa77EFE34D4aa090756590b1CE275',
2503
+ confirmations: 1,
2504
+ fastConfirmations: 1,
2505
+ },
2506
+ },
2507
+ forwarderSupported: {
2508
+ source: false,
2509
+ destination: false,
2510
+ },
2511
+ },
2512
+ kitContracts: {
2513
+ bridge: BRIDGE_CONTRACT_EVM_TESTNET,
2514
+ },
2515
+ });
2516
+
2321
2517
  /**
2322
2518
  * Plume Mainnet chain definition
2323
2519
  * @remarks
@@ -2600,7 +2796,7 @@ const Sei = defineChain({
2600
2796
  },
2601
2797
  chainId: 1329,
2602
2798
  isTestnet: false,
2603
- explorerUrl: 'https://seitrace.com/tx/{hash}?chain=pacific-1',
2799
+ explorerUrl: 'https://seiscan.io/tx/{hash}',
2604
2800
  rpcEndpoints: ['https://evm-rpc.sei-apis.com'],
2605
2801
  eurcAddress: null,
2606
2802
  usdcAddress: '0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392',
@@ -2658,7 +2854,7 @@ const SeiTestnet = defineChain({
2658
2854
  },
2659
2855
  chainId: 1328,
2660
2856
  isTestnet: true,
2661
- explorerUrl: 'https://seitrace.com/tx/{hash}?chain=atlantic-2',
2857
+ explorerUrl: 'https://testnet.seiscan.io/tx/{hash}',
2662
2858
  rpcEndpoints: ['https://evm-rpc-testnet.sei-apis.com'],
2663
2859
  eurcAddress: null,
2664
2860
  usdcAddress: '0x4fCF1784B31630811181f670Aea7A7bEF803eaED',