Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions .beads/ss-dx5.14.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[
{
"id": "ss-dx5.14",
"title": "Integrate World Chain (chainId: 480, ETH, OP Stack L2)",
"description": "TVL: $51.6M | RPC: https://worldchain-mainnet.gateway.tenderly.co | Explorer: https://worldscan.org | Token Support: All | Pattern B (RPC-only) | Worldcoin ecosystem",
"notes": "\nLogo: https://assets.relay.link/icons/480/light.png (dark: dark.png)\nCoinGecko platform: world-chain\nCoinGecko native ID: ethereum\nArch: OP Stack L2 (Worldcoin ecosystem)\nNative token: ETH (18 decimals)\nSLIP44: 60 (Ethereum)\nETH-native: YES — affects test ordering + market-service counts\nViem: ✅ worldchain (id: 480) — import { worldchain } from \"viem/chains\"\nAcross: ✅ SUPPORTED (chainId: 480)\nZerion ID: \"world-chain\" (hyphenated)\n\n--- PHASE 1 LEARNED CHECKLIST (MANDATORY) ---\n[ ] adapter.json: Create packages/caip/src/adapters/coingecko/generated/eip155_480/adapter.json → {\"eip155:480/slip44:60\":\"ethereum\"}\n[ ] Wire adapter.json: Import+export from packages/caip/src/adapters/coingecko/generated/index.ts\n[ ] getCoingeckoSupportedChainIds: Add worldChainChainId (feature-flagged) in src/lib/coingecko/utils.ts\n[ ] Zerion: Add \"world-chain\" to ZERION_CHAINS + ZERION_CHAINS_MAP in packages/types/src/zerion.ts\n[ ] Across: ✅ Add [worldChainChainId]: worldchain.id to chainIdToAcrossChainId\n[ ] ETH test ordering: ✅ REQUIRED — add eip155:480/slip44:60 to ethereum array in index.test.ts\n[ ] Market-service counts: ✅ REQUIRED — bump counts + add destructuring in coingecko.test.ts\n[ ] generateRelatedAssetIndex: Add eip155:480/slip44:60 → eip155:1/slip44:60 to manualRelatedAssetIndex\n\n--- RELAY ACTIVATION ---\n[ ] Add [worldChainChainId]: worldchain.id to chainIdToRelayChainId\n[ ] Add native asset case in relayTokenToAssetId.ts\n--- ASSET DATA REGEN ---\n[ ] Create scripts/generateAssetData/worldchain/index.ts\n[ ] Add case to scripts/generateAssetData/coingecko.ts\n[ ] Add import + getAssets call to generateAssetData.ts\n--- DRAFT PR ---\n[ ] Branch: feat/integrate-worldchain-relay (off develop)\n[ ] gh pr create --draft\n[ ] yarn lint --fix \u0026\u0026 yarn type-check must pass\n",
"status": "open",
"priority": 2,
"issue_type": "task",
"owner": "[email protected]",
"created_at": "2026-02-17T10:56:00Z",
"created_by": "NeOMakinG",
"updated_at": "2026-02-17T22:43:02Z",
"labels": [
"evm",
"op-stack",
"relay",
"tier-2"
],
"dependencies": [
{
"id": "ss-dx5",
"title": "Add support for missing Relay.link EVM chains",
"description": "Master epic tracking integration of ALL chains supported by Relay.link that ShapeShift web doesn't currently support. Enables cross-chain bridging capabilities via Relay infrastructure. See https://github.com/shapeshift/web/issues/11902 for full details. All new EVM chains will use Pattern B (RPC-only + getKnownTokens) since no ShapeShift unchained indexer infrastructure exists for these chains.",
"notes": "=== FROM ISSUE COMMENTS ===\n\nLOGO PATTERN: https://assets.relay.link/icons/{chainId}/light.png (dark: dark.png)\n\nARCHITECTURE GROUPS:\n- OP Stack (standard): Ink, Unichain, BOB, Mode, Hemi, World Chain, Soneium, Zircuit, Lisk, Cyber, Blast, Zora, Redstone, Shape, Superseed, Manta Pacific\n- zkEVM (special handling): Scroll, zkSync Era, Linea, Polygon zkEVM, Taiko, Abstract\n- Arbitrum Orbit: ApeChain, Xai, Sanko\n- Non-ETH gas (10 chains): Mantle(MNT), Metis(METIS), Cronos(CRO), Ronin(RON), Sonic(S), Flow(FLOW), Berachain(BERA), Plume(PLUME), Story(IP), Stable(gUSDT)\n\nCRITICAL CHAINS:\n1. Celo (42220): Native token is BOTH native AND ERC20. Relay uses wrapped CELO. Check relayTransactionMetadata.assetRequiringApproval\n2. Blast (81457): Rebasing ETH from L1 staking yield. USDB also rebases. Handle in balance displays.\n3. Ethereal (5064014): NOT in viem. Needs custom chain definition.\n4. zkSync Era (324) + Abstract (2741): Type 113 (EIP-712) transactions. Use viem zksync chainConfig.\n5. Linea (59144): Custom linea_estimateGas RPC method.\n6. Sei (1329): Parallelized EVM + CosmWasm interop. CoinGecko uses sei-v2 NOT sei.\n\nCOINGECKO GOTCHAS: sei-\u003esei-v2, plume-\u003eplume-network, zksync-\u003ezksync, metis-\u003emetis-andromeda, morph-\u003emorph-l2, gravity-\u003egravity-alpha, boba-\u003eboba, zora-\u003ezora-network, funkichain-\u003efunki, Superposition (capital S). BOB/Zero Network have null chain_identifier. 11 chains not on CoinGecko at all.\n\nPER-CHAIN CHECKLIST: [ ] chain-adapters [ ] caip [ ] asset-service [ ] feature-flag [ ] plugin [ ] env-config [ ] icon/logo\n\n=== RELAY SWAPPER INTEGRATION (per chain) ===\n\nFILE 1: packages/swapper/src/swappers/RelaySwapper/constant.ts\n - Add to chainIdToRelayChainId map: [newChainChainId]: \u003cviem_chain\u003e.id (or numeric chain ID)\n - Import the caip chainId (e.g., scrollChainId) from @shapeshiftoss/caip\n - Import viem chain from viem/chains (or use raw numeric ID if not in viem)\n - The reverse map relayChainIdToChainId auto-generates via invert()\n\nFILE 2: packages/swapper/src/swappers/RelaySwapper/utils/relayTokenToAssetId.ts\n - Add case CHAIN_REFERENCE.NewChainMainnet: with ASSET_REFERENCE.NewChain + ASSET_NAMESPACE.slip44\n\nNO CHANGES NEEDED (for EVM chains):\n - getRelayAssetAddress.ts (uses generic isNativeEvmAsset + DEFAULT_RELAY_EVM_TOKEN_ADDRESS)\n - getRelayDefaultUserAddress.ts (falls through to DEFAULT_RELAY_EVM_USER_ADDRESS default)\n\nUPSTREAM DEPS REQUIRED (in @shapeshiftoss packages):\n - @shapeshiftoss/caip: export newChainChainId, CHAIN_REFERENCE.NewChainMainnet, ASSET_REFERENCE.NewChain\n - @shapeshiftoss/types: KnownChainIds.NewChainMainnet\n - @shapeshiftoss/chain-adapters: NewChain chain adapter class\n - viem/chains: chain config (or custom if not in viem)\n\nRELAY API: https://api.relay.link (env: VITE_RELAY_API_URL) - no per-chain config needed\n\n=== ASSET DATA REGENERATION (per chain) ===\n\nAfter integrating each chain, run a partial assets data regen to populate the token list.\n\nFILE 1 (CREATE): scripts/generateAssetData/\u003cchainname\u003e/index.ts\n Pattern (identical for all EVM chains):\n import { \u003cchainname\u003eChainId } from '@shapeshiftoss/caip'\n import type { Asset } from '@shapeshiftoss/types'\n import { \u003cchainname\u003e, unfreeze } from '@shapeshiftoss/utils'\n import * as coingecko from '../coingecko'\n export const getAssets = async (): Promise\u003cAsset[]\u003e =\u003e {\n const assets = await coingecko.getAssets(\u003cchainname\u003eChainId)\n return [...assets, unfreeze(\u003cchainname\u003e)]\n }\n\nFILE 2 (MODIFY): scripts/generateAssetData/coingecko.ts\n - Import \u003cchainname\u003eChainId from @shapeshiftoss/caip\n - Import \u003cchainname\u003e native asset from @shapeshiftoss/utils\n - Add case in the switch: case \u003cchainname\u003eChainId: return { assetNamespace: ASSET_NAMESPACE.erc20, category: adapters.chainIdToCoingeckoAssetPlatform(chainId), explorer/explorerAddressLink/explorerTxLink from \u003cchainname\u003e utils }\n - NOTE: chains not on CoinGecko will only have the native asset (no ERC20 token list)\n\nFILE 3 (MODIFY): scripts/generateAssetData/generateAssetData.ts\n - Import: import * as \u003cchainname\u003e from './\u003cchainname\u003e'\n - Call: const \u003cchainname\u003eAssets = await \u003cchainname\u003e.getAssets()\n - Spread into unfilteredAssetData: ...\u003cchainname\u003eAssets\n\nCOMMAND: yarn generate:asset-data\n This regenerates: src/generated/asset-data.json + related-asset-index + manifest + compressed assets\n\n=== DRAFT PR CREATION (final step per chain) ===\n\nAfter all code changes are complete for a chain, open a draft PR using the repo template.\n\nBRANCH NAMING: feat/integrate-\u003cchainname\u003e-relay (e.g. feat/integrate-scroll-relay)\n\nCOMMAND:\n gh pr create --draft --title 'feat: integrate \u003cChainName\u003e (chainId: \u003cid\u003e) via Relay' --body \"$(cat \u003c\u003c'PREOF'\n ## Description\n\n Add \u003cChainName\u003e (chainId: \u003cid\u003e) as a second-class EVM chain in ShapeShift Web with Relay bridge support.\n\n **Changes:**\n - Plugin registration in src/plugins/\u003cchainname\u003e/\n - Feature flag `\u003cChainName\u003e` in preferencesSlice\n - Relay swapper chain mapping in RelaySwapper/constant.ts\n - Asset data generation via CoinGecko (`\u003ccoingecko_platform_id\u003e`)\n - Environment config for RPC URL\n\n **Chain details:**\n - TVL: \u003ctvl\u003e\n - Native token: \u003ctoken\u003e (18 decimals)\n - Architecture: \u003carch_type\u003e\n - RPC: \u003crpc_url\u003e\n - Explorer: \u003cexplorer_url\u003e\n\n ## Issue (if applicable)\n\n Part of #11902\n\n ## Risk\n\n Low risk — new chain behind feature flag (`\u003cChainName\u003e`), no existing functionality affected.\n\n \u003e New chain plugin + Relay bridge mapping. No modifications to existing chain logic.\n\n ## Testing\n\n ### Engineering\n\n 1. Enable feature flag: set `VITE_FEATURE_\u003cCHAINNAME\u003e=true` in .env\n 2. Verify chain appears in supported chains list\n 3. Verify native token balance loads (connect wallet with \u003ctoken\u003e on \u003cChainName\u003e)\n 4. Verify Relay bridge quote works: bridge ETH from Ethereum → \u003cChainName\u003e\n 5. Run `yarn lint --fix \u0026\u0026 yarn type-check` — must pass\n\n ### Operations\n\n - [x] :checkered_flag: My feature is behind a flag and doesn't require operations testing (yet)\n\n ## Screenshots (if applicable)\n\n N/A — chain integration, no UI changes.\n PREOF\n )\"\n\nNOTE: Replace all \u003cplaceholders\u003e with actual chain values from the bead description/notes.\nNOTE: Use --draft flag to create as draft PR.\nNOTE: Branch off develop (main branch is develop, not main).",
"status": "open",
"priority": 0,
"issue_type": "epic",
"owner": "[email protected]",
"created_at": "2026-02-17T10:55:02Z",
"created_by": "NeOMakinG",
"updated_at": "2026-02-17T11:21:27Z",
"external_ref": "gh-11902",
"dependency_type": "parent-child"
}
],
"parent": "ss-dx5"
}
]
1 change: 1 addition & 0 deletions .claude/contracts/second-class-evm-chain.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ All integration points required when adding a new second-class EVM chain to Shap
- `src/config.ts` - `VITE_FEATURE_<CHAIN>` validation (`bool({ default: false })`) + `VITE_<CHAIN>_NODE_URL` validation (must use `url()`, NOT `str()`)
- `src/test/mocks/store.ts` - Mock default
- `src/vite-env.d.ts` - Type declarations
- **RPC URL research**: Check https://chainlist.org/chain/<chainId> for public RPC endpoints as a fallback when official docs don't provide one. Always verify the endpoint works with `curl -s -X POST <url> -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'` before committing. Avoid endpoints requiring API keys in `.env.development`.
- `.env` - Production default (usually `false`)
- `.env.development` - Dev default (usually `true`)

Expand Down
2 changes: 2 additions & 0 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ VITE_MEGAETH_NODE_URL=https://mainnet.megaeth.com/rpc
VITE_LINEA_NODE_URL=https://rpc.linea.build
VITE_SCROLL_NODE_URL=https://rpc.scroll.io/
VITE_KATANA_NODE_URL=https://rpc.katana.network
VITE_WORLDCHAIN_NODE_URL=https://worldchain-mainnet.g.alchemy.com/public
VITE_HEMI_NODE_URL=https://rpc.hemi.network/rpc
VITE_SONIC_NODE_URL=https://rpc.soniclabs.com
VITE_UNICHAIN_NODE_URL=https://mainnet.unichain.org
Expand Down Expand Up @@ -310,6 +311,7 @@ VITE_FEATURE_CETUS_SWAP=false
VITE_FEATURE_SUNIO_SWAP=true
VITE_FEATURE_MONAD=true
VITE_FEATURE_PLASMA=true
VITE_FEATURE_WORLDCHAIN=false
VITE_HYPEREVM_NODE_URL=https://rpc.hyperliquid.xyz/evm
VITE_FEATURE_HYPEREVM=true
VITE_FEATURE_MANTLE=false
Expand Down
2 changes: 2 additions & 0 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ VITE_BASE_NODE_URL=https://dev-api.base.shapeshift.com/api/v1/jsonrpc
VITE_MONAD_NODE_URL=https://rpc.monad.xyz
VITE_PLASMA_NODE_URL=https://rpc.plasma.to
VITE_KATANA_NODE_URL=https://rpc.katana.network
VITE_WORLDCHAIN_NODE_URL=https://worldchain-mainnet.g.alchemy.com/public
VITE_HEMI_NODE_URL=https://rpc.hemi.network/rpc
VITE_SONIC_NODE_URL=https://rpc.soniclabs.com
VITE_UNICHAIN_NODE_URL=https://mainnet.unichain.org
Expand Down Expand Up @@ -114,6 +115,7 @@ VITE_FEATURE_LINEA=true
VITE_FEATURE_BERACHAIN=true
VITE_FEATURE_SCROLL=true
VITE_FEATURE_KATANA=true
VITE_FEATURE_WORLDCHAIN=true
VITE_FEATURE_HEMI=true
VITE_FEATURE_SONIC=true
VITE_FEATURE_UNICHAIN=true
Expand Down
10 changes: 10 additions & 0 deletions headers/csps/chains/worldchain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { loadEnv } from 'vite'

import type { Csp } from '../../types'

const mode = process.env.MODE ?? process.env.NODE_ENV ?? 'development'
const env = loadEnv(mode, process.cwd(), '')

export const csp: Csp = {
'connect-src': [env.VITE_WORLDCHAIN_NODE_URL],
}
2 changes: 2 additions & 0 deletions headers/csps/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import { csp as thorchain } from './chains/thorchain'
import { csp as ton } from './chains/ton'
import { csp as tron } from './chains/tron'
import { csp as unichain } from './chains/unichain'
import { csp as worldchain } from './chains/worldchain'
import { csp as zcash } from './chains/zcash'
import { csp as chatwoot } from './chatwoot'
import { csp as customTokenImport } from './customTokenImport'
Expand Down Expand Up @@ -154,6 +155,7 @@ export const csps = [
monad,
near,
plasma,
worldchain,
sonic,
trustwallet,
coincap,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"eip155:480/slip44:60":"ethereum"}
2 changes: 2 additions & 0 deletions packages/caip/src/adapters/coingecko/generated/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import monad from "./eip155_143/adapter.json";
import hyperevm from "./eip155_999/adapter.json";
import plasma from "./eip155_9745/adapter.json";
import katana from "./eip155_747474/adapter.json";
import worldchain from "./eip155_480/adapter.json";
import hemi from "./eip155_43111/adapter.json";
import linea from "./eip155_59144/adapter.json";
import bob from "./eip155_60808/adapter.json";
Expand Down Expand Up @@ -56,6 +57,7 @@ export {
hyperevm,
plasma,
katana,
worldchain,
hemi,
linea,
mode,
Expand Down
7 changes: 7 additions & 0 deletions packages/caip/src/adapters/coingecko/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,12 @@ describe('adapters:coingecko', () => {
assetNamespace: 'slip44',
assetReference: ASSET_REFERENCE.MegaEth,
})
const ethOnWorldChain = toAssetId({
chainNamespace,
chainReference: CHAIN_REFERENCE.WorldChainMainnet,
assetNamespace: 'slip44',
assetReference: ASSET_REFERENCE.WorldChain,
})
const ethOnHemi = toAssetId({
chainNamespace,
chainReference: CHAIN_REFERENCE.HemiMainnet,
Expand Down Expand Up @@ -117,6 +123,7 @@ describe('adapters:coingecko', () => {
ethOnArbitrum,
ethOnBase,
ethOnBob,
ethOnWorldChain,
ethOnHemi,
ethOnLinea,
ethOnMode,
Expand Down
6 changes: 6 additions & 0 deletions packages/caip/src/adapters/coingecko/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ import {
tonChainId,
tronChainId,
unichainChainId,
worldChainChainId,
} from '../../constants'
import * as adapters from './generated'

Expand All @@ -64,6 +65,7 @@ export enum CoingeckoAssetPlatform {
Plasma = 'plasma',
Ink = 'ink',
Katana = 'katana',
WorldChain = 'world-chain',
Hemi = 'hemi',
Mantle = 'mantle',
Linea = 'linea',
Expand Down Expand Up @@ -136,6 +138,8 @@ export const chainIdToCoingeckoAssetPlatform = (chainId: ChainId): string => {
return CoingeckoAssetPlatform.Plasma
case CHAIN_REFERENCE.KatanaMainnet:
return CoingeckoAssetPlatform.Katana
case CHAIN_REFERENCE.WorldChainMainnet:
return CoingeckoAssetPlatform.WorldChain
case CHAIN_REFERENCE.HemiMainnet:
return CoingeckoAssetPlatform.Hemi
case CHAIN_REFERENCE.MantleMainnet:
Expand Down Expand Up @@ -267,6 +271,8 @@ export const coingeckoAssetPlatformToChainId = (
return hyperEvmChainId
case CoingeckoAssetPlatform.Plasma:
return plasmaChainId
case CoingeckoAssetPlatform.WorldChain:
return worldChainChainId
case CoingeckoAssetPlatform.Katana:
return katanaChainId
case CoingeckoAssetPlatform.Mantle:
Expand Down
3 changes: 3 additions & 0 deletions packages/caip/src/adapters/coingecko/utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,9 @@ describe('adapters:coingecko:utils', () => {
'eip155:9745': {
'eip155:9745/slip44:60': 'plasma',
},
'eip155:480': {
'eip155:480/slip44:60': 'ethereum',
},
'eip155:4326': {
'eip155:4326/slip44:60': 'ethereum',
},
Expand Down
17 changes: 17 additions & 0 deletions packages/caip/src/adapters/coingecko/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ import {
tronChainId,
unichainAssetId,
unichainChainId,
worldChainAssetId,
worldChainChainId,
zecChainId,
} from '../../constants'
import {
Expand Down Expand Up @@ -299,6 +301,20 @@ export const parseData = (coins: CoingeckoCoin[]): AssetMap => {
}
}

if (Object.keys(platforms).includes(CoingeckoAssetPlatform.WorldChain)) {
try {
const assetId = toAssetId({
chainNamespace: CHAIN_NAMESPACE.Evm,
chainReference: CHAIN_REFERENCE.WorldChainMainnet,
assetNamespace: 'erc20',
assetReference: platforms[CoingeckoAssetPlatform.WorldChain],
})
prev[worldChainChainId][assetId] = id
} catch {
// unable to create assetId, skip token
}
}

if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Mantle)) {
try {
const assetId = toAssetId({
Expand Down Expand Up @@ -558,6 +574,7 @@ export const parseData = (coins: CoingeckoCoin[]): AssetMap => {
[berachainChainId]: { [berachainAssetId]: 'berachain-bera' },
[cronosChainId]: { [cronosAssetId]: 'crypto-com-chain' },
[katanaChainId]: { [katanaAssetId]: 'katana' },
[worldChainChainId]: { [worldChainAssetId]: 'ethereum' },
[hemiChainId]: { [hemiAssetId]: 'ethereum' },
[scrollChainId]: { [scrollAssetId]: 'ethereum' },
[sonicChainId]: { [sonicAssetId]: 'sonic-3' },
Expand Down
9 changes: 9 additions & 0 deletions packages/caip/src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const plasmaAssetId: AssetId = 'eip155:9745/slip44:60'
export const mantleAssetId: AssetId = 'eip155:5000/slip44:60'
export const inkAssetId: AssetId = 'eip155:57073/slip44:60'
export const megaethAssetId: AssetId = 'eip155:4326/slip44:60'
export const worldChainAssetId: AssetId = 'eip155:480/slip44:60'
export const berachainAssetId: AssetId = 'eip155:80094/slip44:60'
export const cronosAssetId: AssetId = 'eip155:25/slip44:60'
export const katanaAssetId: AssetId = 'eip155:747474/slip44:60'
Expand Down Expand Up @@ -94,6 +95,7 @@ export const plasmaChainId: ChainId = 'eip155:9745'
export const mantleChainId: ChainId = 'eip155:5000'
export const inkChainId: ChainId = 'eip155:57073'
export const megaethChainId: ChainId = 'eip155:4326'
export const worldChainChainId: ChainId = 'eip155:480'
export const berachainChainId: ChainId = 'eip155:80094'
export const cronosChainId: ChainId = 'eip155:25'
export const katanaChainId: ChainId = 'eip155:747474'
Expand Down Expand Up @@ -158,6 +160,7 @@ export const CHAIN_REFERENCE = {
MantleMainnet: '5000', // https://chainlist.org/chain/5000
InkMainnet: '57073',
MegaEthMainnet: '4326',
WorldChainMainnet: '480', // https://worldscan.org
BerachainMainnet: '80094',
CronosMainnet: '25',
KatanaMainnet: '747474', // https://docs.katana.network
Expand Down Expand Up @@ -218,6 +221,7 @@ export const ASSET_REFERENCE = {
Berachain: '60', // evm chain which uses ethereum derivation path as common practice
Cronos: '60', // evm chain which uses ethereum derivation path as common practice
Katana: '60', // evm chain which uses ethereum derivation path as common practice
WorldChain: '60', // evm chain which uses ethereum derivation path as common practice
Hemi: '60', // evm chain which uses ethereum derivation path as common practice
Linea: '60', // evm chain which uses ethereum derivation path as common practice
Scroll: '60', // evm chain which uses ethereum derivation path as common practice
Expand Down Expand Up @@ -260,6 +264,7 @@ export const VALID_CHAIN_IDS: ValidChainMap = Object.freeze({
CHAIN_REFERENCE.BerachainMainnet,
CHAIN_REFERENCE.CronosMainnet,
CHAIN_REFERENCE.KatanaMainnet,
CHAIN_REFERENCE.WorldChainMainnet,
CHAIN_REFERENCE.HemiMainnet,
CHAIN_REFERENCE.LineaMainnet,
CHAIN_REFERENCE.ScrollMainnet,
Expand Down Expand Up @@ -340,4 +345,8 @@ export const FEE_ASSET_IDS = [
starknetAssetId,
tonAssetId,
zecAssetId,
hyperEvmAssetId,
plasmaAssetId,
worldChainAssetId,
katanaAssetId,
]
Loading
Loading