Skip to main content
This page takes you from zero to a cross-network swap sourced from Hedera. No new contracts, no approval for native HBAR, one signed transaction for your user.
Building with an AI assistant? Add the SODAX Builders MCP (https://builders.sodax.com/mcp) to Claude, Cursor, or any MCP-capable tool and it can pull live token lists, real quotes, and these docs while it writes your integration.

1. Install

2. Create a Hedera wallet provider

Hedera is an EVM network to the SDK, so it uses the same EvmWalletProvider as every other EVM network, keyed by ChainKeys.HEDERA_MAINNET. The account behind it must have an ECDSA (secp256k1) key: ED25519 accounts cannot sign EVM transactions.
Building in React? @sodax/wallet-sdk-react connects EVM wallets for you and hands back a ready-made provider via useWalletProvider. See Wallets.

3. Look up supported tokens

Token addresses and decimals come from the SDK config, so you never hard-code them. On Hedera this matters more than usual: HTS token addresses are the EVM form of a native token ID, and HBAR uses 8 decimals.

4. Quote and swap

swap() runs the full lifecycle: it creates the intent on Hedera, verifies the transaction landed, relays it to the hub, and notifies the solver to fill on the destination network.
ok means the intent was created, relayed to the hub, and the solver notified, not that it was filled. Poll sodax.swaps.getStatus({ intent_tx_hash: intentDeliveryInfo.dstTxHash }) until the status is SolverIntentStatusCode.SOLVED, which is the only success signal. The main quickstart has the full polling loop, including why NOT_FOUND is not terminal. A few things to know on Hedera:
  • HBAR needs no approval. It is the native token. Swapping an HTS token (USDC, bnUSD, and the rest) needs an ERC-20 allowance first; see Approvals.
  • Amounts follow token.decimals. HBAR is 8 decimals in the SDK even though Hedera’s EVM layer counts native value in 18. The SDK scales msg.value for you; never scale it yourself.
  • Swapping into Hedera? The recipient account must be able to receive the output token. See Receiving tokens on Hedera.

Next steps