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, 9 assets are live for swaps, ETH plus ERC-20 tokens including USDC, USDT, OP, and bnUSD. 8 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 166 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.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, andestimateGas returns execution gas units only, so leave ETH headroom when you size a transaction. See 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, soisAllowanceValid 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 publichttps://mainnet.optimism.io, which Optimism documents as rate limited; 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.How do I know if something went wrong?
SDK operations returnResult<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 page.Can my AI coding assistant do the integration?
Largely, yes. Add the SODAX 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.