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

# List Borrow Assets

> List the curated settlement assets available for new markets

Returns the settlement assets Trusset curates for your instance type, plus the decimal bounds enforced on custom assets. Use this to populate a borrow asset selector before calling [Deploy Market](/endpoints/external-securities-lending/deploy-market).

A market's borrow asset is the token lenders deposit, borrowers receive, and all debt is denominated in. It is fixed at deployment and cannot be changed afterwards.

<Info>
  You are not limited to this list. Any ERC-20 with 6 to 18 decimals can be passed as `borrowAssetAddress` at deployment. The contract is validated on-chain at that point: it must have deployed bytecode and readable `decimals()` and `balanceOf()`. Omitting `borrowAssetAddress` selects USDC.
</Info>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="assets" type="array">
      Curated assets for the instance type bound to your API key.

      <Expandable>
        <ResponseField name="address" type="string">Checksummed token address.</ResponseField>
        <ResponseField name="symbol" type="string">Token symbol.</ResponseField>
        <ResponseField name="name" type="string">Human-readable token name.</ResponseField>
        <ResponseField name="decimals" type="integer">Token decimals. Every amount you send or receive for this market's settlement side is a decimal string parsed at this precision.</ResponseField>
        <ResponseField name="mintable" type="boolean">Whether the token exposes a faucet on development networks.</ResponseField>
        <ResponseField name="isDefault" type="boolean">True for USDC, the asset selected when `borrowAssetAddress` is omitted.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="custom" type="object">
      <Expandable>
        <ResponseField name="minDecimals" type="integer">Minimum decimals accepted for a custom borrow asset. Currently 6.</ResponseField>
        <ResponseField name="maxDecimals" type="integer">Maximum decimals accepted for a custom borrow asset. Currently 18.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/lending-external-securities/api/markets/borrow-assets" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const res = await fetch(
    'https://api.trusset.org/lending-external-securities/api/markets/borrow-assets',
    { headers: { 'X-API-Key': 'trusset_your_key_here' } }
  );
  const { data } = await res.json();
  const usdc = data.assets.find(a => a.isDefault);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "assets": [
        {
          "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
          "symbol": "USDC",
          "name": "USD Coin",
          "decimals": 6,
          "mintable": false,
          "isDefault": true
        },
        {
          "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "symbol": "USDT",
          "name": "Tether USD",
          "decimals": 6,
          "mintable": false,
          "isDefault": false
        },
        {
          "address": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
          "symbol": "DAI",
          "name": "Dai Stablecoin",
          "decimals": 18,
          "mintable": false,
          "isDefault": false
        }
      ],
      "custom": {
        "minDecimals": 6,
        "maxDecimals": 18
      }
    }
  }
  ```
</ResponseExample>

## Custom Asset Rejections

When you pass a `borrowAssetAddress` that fails validation, [Deploy Market](/endpoints/external-securities-lending/deploy-market) returns one of:

| Code                                | Cause                                                       |
| ----------------------------------- | ----------------------------------------------------------- |
| `INVALID_BORROW_ASSET`              | Not a well-formed Ethereum address                          |
| `BORROW_ASSET_NOT_CONTRACT`         | No deployed bytecode at the address on the resolved network |
| `BORROW_ASSET_NOT_ERC20`            | `decimals()` or `balanceOf()` could not be read             |
| `BORROW_ASSET_DECIMALS_UNSUPPORTED` | Decimals outside the 6 to 18 range                          |
