> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sodax.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> SODAX is mainnet-only (no testnet chains or RPC endpoints exist) with a hub-and-spoke architecture; Sonic is the hub. SODAX is non-custodial protocol/software: it routes and settles; independent solvers on the marketplace fill — never say 'our solver', 'the SODAX solver', that SODAX trades, takes custody, or fills orders. For frontend/React integrations, prefer @sodax/dapp-kit hooks over calling @sodax/sdk directly. SDK operations — the methods that build, submit or await a transaction, and the API/quote calls — return Result<T, E> ({ ok: true, value } or { ok: false, error }): check result.ok, never wrap them in try/catch or branch on error.message; discriminate on the narrow error.code union instead. Synchronous config getters (getPartnerFee, getSupportedSwapTokens, getVault, ...) return their value directly, not a Result.

# Polygon FAQ

> The questions Polygon engineers actually ask about integrating SODAX.

#### Do I need to write or deploy a contract?

No. SODAX's Polygon spoke contracts are already deployed; your integration is TypeScript against `@sodax/sdk` (or the React packages on top of it). You write no on-chain code and hold no admin key for any part of the flow.

#### How does a swap from Polygon actually settle?

Your user signs one EVM transaction on Polygon that creates an intent. The SODAX relayer carries proof of that transaction to the hub network (Sonic), a solver fills the intent on the destination network, and the output lands at the recipient address there. Swaps into Polygon settle as ordinary POL or ERC-20 balances at the recipient's address. If an intent is never filled, it can be cancelled and the funds recovered.

#### Which assets are supported on Polygon?

Two answers, and the difference matters. On Polygon itself, <span data-sodax-config="count" data-metric="chain-swap-tokens" data-chain="0x89.polygon">8</span> assets are live for swaps: POL plus ERC-20 tokens, including USDC, bnUSD, and SODA. <span data-sodax-config="count" data-metric="chain-money-market-tokens" data-chain="0x89.polygon">6</span> assets work in the money market, POL among them. The two lists overlap but are not identical: some money market tokens on Polygon are not swappable there.

But your users are not limited to the Polygon-side list. Every swap is cross-network, so from Polygon they can reach all <span data-sodax-config="count" data-metric="swap-tokens">166</span> assets across every SODAX-supported network. Both lists grow as the backend config adds them; read them from the SDK at runtime, or see the live tables in [Networks & Assets](/polygon/networks-and-assets).

#### Is the native token MATIC or POL?

POL. Polygon replaced MATIC with POL as the gas token of Polygon PoS, and the SODAX config lists the native token as `POL`, 18 decimals, at the zero address. There is no `MATIC` entry to look up.

#### Why does `isAllowanceValid` fail with a 401 error?

Usually the RPC endpoint. Pass an endpoint you control when you construct the SDK: `new Sodax({ chains: { [ChainKeys.POLYGON_MAINNET]: { rpcUrl } } })`. Set the same endpoint on `EvmWalletProvider` and in the `@sodax/wallet-sdk-react` config. Polygon lists public endpoints on its [RPC endpoints page](https://docs.polygon.technology/pos/reference/rpc-endpoints/); for production traffic, use your own provider.

#### Why is my USDC not accepted?

Check the contract address. Two Polygon contracts report the symbol `USDC`, and SODAX supports only Circle's native USDC. The older bridged token, `USD Coin (PoS)`, is not in the SODAX list. See [Networks & Assets](/polygon/networks-and-assets).

#### Is there an approve step before swapping or supplying?

For ERC-20 tokens, yes. SODAX's asset manager pulls them through their ERC-20 interface, so `isAllowanceValid` checks the allowance and `approve` sets it, the same as on any EVM network. Native POL needs no approval.

#### Is there a testnet?

No. SODAX is mainnet-only on every network, Polygon included.

#### What does it cost?

Using SODAX is free: no license, no integration fee, no SDK cost. Trades carry a fixed 0.1% base fee taken by the protocol; on top of that you set your own platform fee and keep it. Your users also pay Polygon's network fees in POL. See [Monetize SDK](/developers/how-to/monetize_sdk).

#### How do I know if something went wrong?

SDK operations return `Result<T>` rather than throwing. Core swap and money market methods return typed error codes (for example `'RELAY_TIMEOUT'`, `'EXECUTION_FAILED'`) you can branch on, with structured context attached.

#### Where are the audits?

Audits for the SODAX protocol are collected on the [Audits](/developers/audits) page.

#### Can my AI coding assistant do the integration?

Largely, yes. Add the [SODAX Builders MCP](/builders-mcp) to Claude, Cursor, VS Code, Windsurf, or any MCP-capable client (`https://builders.sodax.com/mcp`) and it gets live access to the SODAX System: chains, tokens, swap quotes, money market rates, intent history, and auto-synced SDK docs. Use it to scope the integration against your own codebase first, then to write and verify the code. Setup per client is at [builders.sodax.com](https://builders.sodax.com/).

#### I want a plan specific to my protocol. Who do I talk to?

Reach the SODAX team through any platform listed at [linktr.ee/go.sodax](https://linktr.ee/go.sodax).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.