Skip to main content
Welcoming cross-network users means supporting the wallets they already use. On Kaia, SODAX works through the EVM: any wallet that can sign Ethereum-format transactions on Kaia mainnet (chain ID 8217), 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

  • Legacy account key. Kaia accounts can replace their key, or use multisig and role-based keys. Ethereum-format transactions only work from accounts with the AccountKeyLegacy type, whose address is derived from their key. Kaia creates accounts with that type, so EVM wallet accounts qualify unless the owner has updated the account key. An updated account can still hold KAIA and tokens, but it cannot sign SODAX transactions.

React apps: @sodax/wallet-sdk-react

The React package wraps each chain family’s native wallet SDK (wagmi for EVM networks, including Kaia) behind a uniform connector interface with a single persisted store.
Mount the provider with the chains you serve. Kaia 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 Kaia when your user acts. useEvmSwitchChain({ xChainId: ChainKeys.KAIA_MAINNET }) returns isWrongChain and a handleSwitchChain callback to prompt the switch.

Bridging to SDK calls

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

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.