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

# Optimism FAQ

> The questions Optimism engineers actually ask about integrating SODAX.

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

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

Your user signs one EVM transaction on Optimism 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 Optimism settle as ordinary ETH 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 Optimism?

Two answers, and the difference matters. On Optimism itself, <span data-sodax-config="count" data-metric="chain-swap-tokens" data-chain="0xa.optimism">9</span> assets are live for swaps, ETH plus ERC-20 tokens including USDC, USDT, OP, and bnUSD. <span data-sodax-config="count" data-metric="chain-money-market-tokens" data-chain="0xa.optimism">8</span> assets work in the money market, ETH among them; the two lists overlap but are not identical.

But your users are not limited to the Optimism-side list. Every swap is cross-network, so from Optimism 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](/optimism/networks-and-assets).

#### Is anything different from integrating SODAX on Ethereum?

Only the fee model. Optimism takes the generic SODAX EVM path, with no chain-specific code in the SDK. OP Mainnet charges an L1 data fee in ETH on top of execution gas, and `estimateGas` returns execution gas units only, so leave ETH headroom when you size a transaction. See [Fees](/optimism/swaps#fees).

#### 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 ETH needs no approval.

#### Which RPC endpoint should I use?

Any OP Mainnet JSON-RPC endpoint. The SODAX config uses the public `https://mainnet.optimism.io`, which Optimism documents as [rate limited](https://docs.optimism.io/op-mainnet/network-information/connecting-to-op); for production traffic, use a provider endpoint. Pass it through `rpcUrl` on `EvmWalletProvider`, per chain in the `@sodax/wallet-sdk-react` config, and in the `Sodax` constructor under `chains[ChainKeys.OPTIMISM_MAINNET].rpcUrl` for the SDK's own reads.

#### Is there a testnet?

No. SODAX is mainnet-only on every network, Optimism 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 Optimism's network fees in ETH. 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.