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

# LightLink FAQ

> The questions LightLink engineers actually ask about integrating SODAX.

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

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

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

#### Which assets are supported on LightLink?

Two answers, and the difference matters. On LightLink itself, <span data-sodax-config="count" data-metric="chain-swap-tokens" data-chain="lightlink">14</span> assets are live for swaps: ETH plus LightLink ERC-20 tokens, including bnUSD, SODA, USDC, LL, and `.LL` versions of assets from other networks. <span data-sodax-config="count" data-metric="chain-money-market-tokens" data-chain="lightlink">16</span> assets work in the money market, and that list includes tokens the swap list does not.

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

#### Are SODAX transactions gasless on LightLink?

No. LightLink's Enterprise Mode makes transactions gasless for contracts a project registers and pays for, but the SDK sends SODAX transactions on LightLink as standard EVM transactions. Users pay gas in ETH, so the signing account needs ETH on LightLink, even when it is swapping or supplying another token.

#### Is LL the gas token?

No. ETH is LightLink's native gas token. LL is an ERC-20 token on LightLink, swapped and approved like any other ERC-20.

#### Why is my BTC.LL amount off by 10^10?

Because `.LL` tokens use 18 decimals, while BTC uses 8 on Bitcoin. An amount built with 8 decimals is 10^10 too small on LightLink. Build every amount from `token.decimals` of the LightLink token itself.

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

For ERC-20 tokens, yes, including LL and the `.LL` tokens. `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 LightLink Phoenix mainnet RPC. The SODAX config uses LightLink's replicator, `https://replicator.phoenix.lightlink.io/rpc/v1`; 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, LightLink 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 LightLink 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.