Skip to main content
Welcoming cross-network users means supporting the wallets they already use. On HyperEVM, SODAX works with any wallet that can sign EVM transactions on HyperEVM mainnet (chain ID 999), such as MetaMask. On the networks your users arrive from, it is Phantom, Suiet, Lobstr, and more. SODAX gives you both through one interface, so wallet plumbing never becomes the integration.

Account requirements

  • The network may need adding. If a user’s wallet does not list HyperEVM yet, they add it as a custom network: chain ID 999, RPC URL https://rpc.hyperliquid.xyz/evm, currency symbol HYPE. Hyperliquid’s onboarding guide walks through it.
  • HYPE for gas, held on HyperEVM. HYPE is HyperEVM’s native gas token. HYPE in the user’s HyperCore spot balance does not pay HyperEVM gas until it is transferred to HyperEVM.

React apps: @sodax/wallet-sdk-react

The React package wraps each chain family’s native wallet SDK (wagmi for EVM networks, including HyperEVM) behind a uniform connector interface with a single persisted store.
Mount the provider with the chains you serve. HyperEVM is an entry under EVM, alongside any other EVM network you support:
Then connect and read accounts with the same three hooks for every chain family:
One EVM connection covers every EVM network, so the wallet may be on a different network than HyperEVM when your user acts. useEvmSwitchChain({ xChainId: ChainKeys.HYPEREVM_MAINNET }) returns isWrongChain and a handleSwitchChain callback to prompt the switch.

Bridging to SDK calls

useWalletProvider({ xChainId: ChainKeys.HYPEREVM_MAINNET }) returns a typed IEvmWalletProvider ready to pass into any @sodax/sdk method. The swap and money market calls take it directly.

Showing balances

Balances read through SODAX (for example useXBalances from @sodax/dapp-kit) are HyperEVM balances. They do not include what the user holds in HyperCore spot or perps, so label the figure as the HyperEVM balance.

Scripts and backends: EvmWalletProvider

Outside React, construct the provider from @sodax/wallet-sdk-core directly:
EvmWalletDefaults lets you tune behavior per provider: sendTransaction, waitForTransactionReceipt, publicClient, walletClient, and transport.