Skip to main content
This page takes you from zero to a cross-network swap sourced from Polygon. No new contracts, no approval for native POL, 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 Polygon wallet provider

Polygon uses the same EvmWalletProvider as every other EVM network, keyed by ChainKeys.POLYGON_MAINNET. Pass your own RPC endpoint rather than relying on the packaged default. This page uses https://polygon.drpc.org, the mainnet endpoint on Polygon’s RPC list; use your own provider in production.
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. Give the Sodax instance the same Polygon RPC: the SDK reads Polygon state, such as allowances, through its own client, not through your wallet provider.

4. Quote and swap

swap() runs the full lifecycle: it creates the intent on Polygon, 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 Polygon:
  • POL needs no approval. It is the native token, listed as POL (not MATIC). Swapping an ERC-20 (USDC, bnUSD, and the rest) needs an allowance first; see Approvals.
  • Amounts follow token.decimals. POL uses 18; USDC uses 6. Build every amount from the token you are sending.
  • Keep POL for gas. When swapping POL itself, do not send the whole balance.

Next steps