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

# Configuration & networks

> Required read clients, wallet clients, deployment defaults, and optional indexing.

## Supply the network and your read client

```tsx theme={null}
<CTokenProvider network="baseSepolia" publicClient={publicClient}>
  {children}
</CTokenProvider>
```

Supply a viem `publicClient` for the selected chain. Deployments and USDC are preconfigured; indexing defaults off. React uses your `walletClient` prop or the surrounding wagmi connection.

| Setting | Base Sepolia | Base |
| - | - | - |
| `network` | `baseSepolia` | `base` |
| Chain ID | 84532 | 8453 |
| Factory | `0x6f9a0ECD77C3Dade8Dc14a507cAbABFD746575f8` | Same address, on Base |
| Vault | `0x35A38eFec618cD1924CBf4FB84bE187323Fa7E55` | Same address, on Base |
| Session verifier | `0x8D762303c41F822D3f38f8CE0f0fD1855d602c2A` | Same address, on Base |
| Default USDC | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `0x833589fcd6edb6e08f4c7c32d4f71b54bda02913` |
| Hosted indexer, after opt-in | `https://api.ctoken.testnet.inco.org/api` | `https://api.ctoken.inco.org/api` |
| Explorer | `https://sepolia.basescan.org` | `https://basescan.org` |

Use the matching HTTPS indexer URL, including `/api`. Only price responses carry a chain ID; history and assets rely on your URL selecting the correct chain.

## All client options

`CTokenClientOptions` applies in both Node and browsers.

| Option | Type | Default / behavior |
| - | - | - |
| `network` | `NetworkName` | Required: `base` or `baseSepolia`. |
| `walletClient` | viem `WalletClient` | Optional for public metadata; required for wallet balance reads, signatures, and writes. Account belongs on this client. |
| `contracts` | `ContractsOverride` | Optional `{ wrapperFactory?, vault? }`; each missing field retains its network default. |
| `sessionVerifier` | `Address` | Network verifier above. Override for your deployment. |
| `publicClient` | viem `PublicClient` | Required. SDK contract reads, multicalls, explicit unwrap gas estimation, and receipt polling use this client. Must declare the expected chain. |
| `indexer` | boolean or `IndexerOptions` | Omitted/false: off. true or `{}`: hosted default. `{ url, timeoutMs? }`: custom service. Include `/api` in the URL if your ingress requires it. |
| `indexer.timeoutMs` | positive integer | 15000; maximum 120000. Total deadline per indexer HTTP request, including retries and body parsing. |
| `incoRpcUrls` | HTTP(S) string array | Lightning extracts HTTP URLs from the public transport, including fallback transports. Required explicitly when none can be extracted. |
| `confirmations` | positive integer | 5 for final wrap/send/unwrap receipts. Approval and wrapper creation wait for 1 inclusion. |
| `sessionTtlHours` | positive finite number | 4 hours. |

Configure your paid read endpoint in `publicClient`; keep server credentials behind an application proxy. The wallet signs and submits transactions and may use its transport for transaction preparation.

Pass an application-owned wallet client. Raw `privateKey` and standalone `account` options reject with `INVALID_CONFIG`.

## Optional React overrides

```tsx theme={null}
<CTokenProvider
  network="baseSepolia"
  contracts={{ wrapperFactory: customFactory }}
  sessionVerifier={customVerifier}
  publicClient={publicClient}
  indexer={{ url: customIndexerUrl }}
  tokens={myTokens}
>
  {children}
</CTokenProvider>
```

Override only what you need. `tokens={[]}` disables built-in tokens. Changed contract addresses appear in the widget’s **Custom contracts** panel with explorer links; RPC/indexer URLs stay out of that panel.


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