> ## 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.

# Avalanche FAQ

> The questions Avalanche engineers actually ask about integrating SODAX.

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

No. SODAX's Avalanche 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 Avalanche actually settle?

Your user signs one EVM transaction on the C-Chain 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 Avalanche settle as ordinary AVAX or ERC-20 balances at the recipient's C-Chain address. If an intent is never filled, it can be cancelled and the funds recovered.

#### Which assets are supported on Avalanche?

Two answers, and the difference matters. On Avalanche itself, <span data-sodax-config="count" data-metric="chain-swap-tokens" data-chain="0xa86a.avax">7</span> assets are live: AVAX plus C-Chain ERC-20 tokens, including bnUSD, SODA, and USDC. <span data-sodax-config="count" data-metric="chain-money-market-tokens" data-chain="0xa86a.avax">5</span> of these also work in the money market.

But your users are not limited to the Avalanche-side list. Every swap is cross-network, so from Avalanche 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 `sodax.config` at runtime, or see the live tables in [Networks & Assets](/avalanche/networks-and-assets).

#### Does SODAX work with the X-Chain or P-Chain?

No. SODAX on Avalanche runs on the C-Chain, the Primary Network's EVM chain. AVAX on the X-Chain or P-Chain has to be moved to the C-Chain before it can be swapped or supplied through SODAX.

#### Is there anything Avalanche-specific in the SDK?

No. Avalanche goes through the same EVM code path as every other EVM spoke: `EvmWalletProvider`, ERC-20 approvals, and the standard intent flow. If your integration already works on another EVM network, switching the chain key to `ChainKeys.AVALANCHE_MAINNET` and the RPC URL is the whole change.

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

For ERC-20 tokens, yes. `isAllowanceValid` checks the allowance and `approve` sets it, the same as on any EVM network. Native AVAX needs no approval.

#### Which RPC endpoint should I use?

Any Avalanche C-Chain RPC for mainnet. The SODAX config uses the public endpoint, `https://api.avax.network/ext/bc/C/rpc`; pass your own through `rpcUrl` on `EvmWalletProvider`, or per chain in the `@sodax/wallet-sdk-react` config.

#### Is there a testnet?

No. SODAX is mainnet-only on every network, Avalanche 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 C-Chain network fees in AVAX. 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.