> For the complete documentation index, see [llms.txt](https://city-protocol.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://city-protocol.gitbook.io/docs/software-development-kit/swap/read-methods.md).

# Read Methods

#### getQuote

Returns a read-only price estimate from the aggregator. Use this for quoting expected output in your UI before a user commits to a swap. The SDK automatically resolves common token symbols (`USDC`, `USDT`, `ETH`, `SOL`, `native`) into chain-specific addresses.

```
const quote = await swapClient.getQuote({
  chainIndex: "1",
  fromToken: "USDC",
  toToken: "WETH",
  readableAmount: "100",
  tokenDecimals: 6,
  swapMode: "exactIn",
});
```

#### getSupportedChains

Lists all chains supported by the aggregator. Useful for populating chain pickers.

```
const chains = await swapClient.getSupportedChains();
```

#### getLiquidity

Lists available liquidity sources for a given chain.

```
const sources = await swapClient.getLiquidity({
  chainIndex: "1",
});
```

#### checkApprovals

Checks the current ERC-20 allowance for a wallet against the aggregator spender. You can optionally pass a `spender` address to check against a custom target.

```
const approvals = await swapClient.checkApprovals({
  chainIndex: "1",
  address: "0xYourWallet",
  tokenAddress: "USDC",
});
```
