# Connectors A connector is a signing backend: it determines how an operation runs and which custodian holds your account keys. Each is constructed and authenticated on its own, then passed to the client constructed by `simpleXRPL` in a `signers` array. `simpleXRPL` supports these connectors: - [Local](/docs/simplexrpl/references/connectors/local) - [External](/docs/simplexrpl/references/connectors/external) - [Ripple Custody](/docs/simplexrpl/references/connectors/ripple-custody) - [Palisade](/docs/simplexrpl/references/connectors/palisade) Every connector implements the `Custodian` interface. Once constructed, it exposes these fields and methods: ## Fields | Field | Type | Description | | --- | --- | --- | | `kind` | [`CustodianKind`](/docs/simplexrpl/references/types#custodiankind) | The backend the connector adapts: `local`, `ripple-custody`, `palisade-custody`, or `external`. | | `primary` | [`AccountRef`](/docs/simplexrpl/references/types#accountref) | The connector's primary account reference. Used when a vertical operation runs without an explicit account. | | `primary.address` | `string` | The primary account's XRPL r-address. | | `primary.custodianRef` | [`CustodianRef`](/docs/simplexrpl/references/types#custodianref) | *(Optional)* The connector's opaque native id for the account. | ## Methods ### listAccounts() List the accounts the connector holds. #### Signature ```ts connector.listAccounts(): Promise ``` #### Parameters `listAccounts` takes no arguments. #### Returns Resolves to an array of [Account](/docs/simplexrpl/references/types#account) records the connector discovered and can sign for. #### Example ```ts const accounts = await connector.listAccounts() console.log(accounts.map((account) => account.address)) ```