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

# Get Whitelist

> One whitelist with its recorded members, and optionally its live state on chain

Returns one whitelist your instance keeps or manages, with the members its record holds. Pass `wallets` to read, for those wallets, whether the list admits them right now, together with the list's live owner, pending owner and managers.

The members come from the record: the confirm calls and [Rescan Whitelist](/endpoints/lending/rescan-access-list) write them. A wallet listed or removed by a transaction nobody confirmed appears only after a rescan, so check `live.verified` before acting on one wallet. A removed wallet stays in `members` with `listed: false`.

A list another instance keeps is returned when a verified wallet of your instance owns or manages it on chain, or is named by its pending transfer. Its `list` then carries `own: false` and `name: null`. See [Lists another instance keeps](/endpoints/lending/list-access-lists#lists-another-instance-keeps).

## Path Parameters

<ParamField path="listId" type="string" required>
  The whitelist ID from [List Whitelists](/endpoints/lending/list-access-lists): 1 to 64 letters, digits, `-` or `_`.
</ParamField>

## Query Parameters

<ParamField query="wallets" type="string">
  Up to 200 addresses, comma-separated or as a repeated parameter, to read live from the list. Omit it to skip the chain read, and `live` is then absent.
</ParamField>

## Response Fields

<ResponseField name="data" type="object">
  <Expandable>
    <ResponseField name="list" type="object">The list as on [List Whitelists](/endpoints/lending/list-access-lists). A list your instance keeps has the `lists` shape with `own: true`. One another instance keeps has the `managed` shape.</ResponseField>

    <ResponseField name="members" type="array">
      Recorded members, listed wallets first, then by address. At most 5,000.

      <Expandable>
        <ResponseField name="walletAddress" type="string">The wallet, lowercased.</ResponseField>
        <ResponseField name="listed" type="boolean">`true` while the record holds it as listed, `false` once a removal was recorded.</ResponseField>
        <ResponseField name="lastTxHash" type="string">The transaction that set the current state, or `null`.</ResponseField>
        <ResponseField name="updatedBy" type="string">The sender the list's event names, lowercased: the owner or manager that signed, or the whitelist factory for a wallet listed at creation. `null` when unknown.</ResponseField>
        <ResponseField name="updatedAt" type="string">ISO 8601.</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="membersTotal" type="integer">Every recorded member row, listed or not.</ResponseField>
    <ResponseField name="membersTruncated" type="boolean">`true` when `membersTotal` exceeds the rows returned.</ResponseField>

    <ResponseField name="live" type="object">
      Present when `wallets` was sent. Read from the list contract in one call.

      <Expandable>
        <ResponseField name="owner" type="string">The owner on chain, lowercased. `null` when the read failed.</ResponseField>
        <ResponseField name="pendingOwner" type="string">The wallet a pending transfer names, or `null`.</ResponseField>
        <ResponseField name="managers" type="object">Whether each recorded manager and each verified wallet of your instance is a manager now, keyed by lowercased address. `null` for an answer that could not be read.</ResponseField>
        <ResponseField name="verified" type="object">Whether the list admits each address in `wallets`, keyed by lowercased address. This is the answer every gate the list serves receives. `null` for an answer that could not be read.</ResponseField>
        <ResponseField name="ownedByThisInstance" type="boolean">Whether the owner is a verified wallet of your instance. `null` when the read failed.</ResponseField>
        <ResponseField name="readFailed" type="boolean">`true` when the list could not be read. The other fields are then empty, and say nothing about the list.</ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.trusset.org/lending-external-securities-v2/api/access-lists/cmv2k8q1d0004l70a3n6p2w9e?wallets=0x6a6cba16dad34f7ea7ecbcdbf050f8146b942d6b" \
    -H "X-API-Key: trusset_your_key_here"
  ```

  ```typescript TypeScript theme={null}
  const wallet = '0x6a6cba16dad34f7ea7ecbcdbf050f8146b942d6b';
  const res = await fetch(
    `https://api.trusset.org/lending-external-securities-v2/api/access-lists/${listId}?wallets=${wallet}`,
    { headers: { 'X-API-Key': 'trusset_your_key_here' } }
  );
  const { data } = await res.json();
  if (data.live.readFailed) throw new Error('Whitelist unreadable, retry');
  const admitted = data.live.verified[wallet] === true;
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "success": true,
    "data": {
      "list": {
        "id": "cmv2k8q1d0004l70a3n6p2w9e",
        "name": "Depositors Q4",
        "purpose": "DEPOSITOR",
        "address": "0x7d31e6b09a4c25f8e1b73d0a6c94e2f58b1a0c37",
        "ownerWallet": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
        "pendingOwnerWallet": null,
        "managers": ["0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93"],
        "memberCount": 148,
        "archived": false,
        "createdTxHash": "0x3f6c0e7a91d24b58c06e1f9a7b3d25e48c17a0f9d63e2b51a84c7f0e9d16b23a",
        "createdBlock": 9384120,
        "syncedBlock": 9402377,
        "createdAt": "2026-10-08T14:02:11.000Z",
        "updatedAt": "2026-10-09T08:15:40.000Z",
        "own": true
      },
      "members": [
        {
          "walletAddress": "0x6a6cba16dad34f7ea7ecbcdbf050f8146b942d6b",
          "listed": true,
          "lastTxHash": "0x8b1e4d2c7a9f05e36d1b8c4a2f7e90d35c6b1a8f4e2d7c09b3a6f1e5d8c2b4a7",
          "updatedBy": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
          "updatedAt": "2026-10-08T14:20:03.000Z"
        }
      ],
      "membersTotal": 151,
      "membersTruncated": false,
      "live": {
        "owner": "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52",
        "pendingOwner": null,
        "managers": {
          "0x4e91a7c05d3b62f18a0c94e7db2358f1c60a4e93": true,
          "0x1234f9a07c6b53d81e2a4f70c9b385d6014a7e52": false
        },
        "verified": {
          "0x6a6cba16dad34f7ea7ecbcdbf050f8146b942d6b": true
        },
        "ownedByThisInstance": true,
        "readFailed": false
      }
    }
  }
  ```

  ```json Error - Not Found theme={null}
  {
    "success": false,
    "error": {
      "code": "ACCESS_LIST_NOT_FOUND",
      "message": "No whitelist with this id belongs to this instance or is managed by one of its wallets on this network."
    }
  }
  ```
</ResponseExample>

## Error Codes

| Code | HTTP | Cause |
| - | - | - |
| `VALIDATION_ERROR` | `400` | `wallets` names more than 200 addresses, or one that is not 0x followed by 40 hex characters |
| `INVALID_ADDRESS` | `400` | An address in `wallets` is the zero address or fails its EIP-55 checksum |
| `ACCESS_LIST_NOT_FOUND` | `404` | No whitelist with this ID is kept by your instance, or owned, managed or pending to one of its wallets, on this network |
| `ACCESS_LIST_READ_FAILED` | `500` | The list could not be read and no more specific code applied |
| `ACCESS_LISTS_NOT_CONFIGURED` | `503` | The whitelist factory is not deployed on this network |
| `ACCESS_LIST_UNREADABLE` | `503` | The list belongs to another instance and whether your wallets still manage it could not be read. Retry shortly |
| `SERVICE_UNAVAILABLE` | `503` | Your instance's verified wallets could not be read. Retry shortly |


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