<!--
{
  "availability" : [
    "iOS: 12.0.0 -",
    "iPadOS: 12.0.0 -",
    "macCatalyst: 14.0.0 -",
    "macOS: 11.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices/ASCredentialIdentityStore",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "c:objc(cs)ASCredentialIdentityStore"
  },
  "title" : "ASCredentialIdentityStore"
}
-->

# ASCredentialIdentityStore

A container that your extension fills to provide credentials through the QuickType bar.

```
class ASCredentialIdentityStore
```

## Overview

Make credential identities available to users directly as AutoFill suggestions by adding them to the [`shared`](/documentation/AuthenticationServices/ASCredentialIdentityStore/shared) instance of the identity store. You can add identities during configuration in your extension’s override of the [`prepareInterfaceForExtensionConfiguration()`](/documentation/AuthenticationServices/ASCredentialProviderViewController/prepareInterfaceForExtensionConfiguration()) method. You can also update the shared store from within your extension’s host app.

Be sure to update the shared store whenever your app’s database changes to avoid showing stale identities as AutoFill suggestions. Take advantage of the incremental change methods [`saveCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/saveCredentialIdentities(_:completion:)-1bbx6) and [`removeCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/removeCredentialIdentities(_:completion:)-67lcw) to avoid rewriting the entire store every time you need to make a change.

You can fetch previously saved credential identities with [`credentialIdentities(forService:credentialIdentityTypes:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/credentialIdentities(forService:credentialIdentityTypes:)). Call this method when preparing to store a credential to check whether your app has a saved credential for this domain.

When the user disables your extension, the system clears and disables your shared store. So before making updates, check to see that the store’s enabled to avoid unnecessary activity:

```swift
let store = ASCredentialIdentityStore.shared
store.getState { state in
    if state.isEnabled {
        // Add, remove, or update identities.
    }
}
```

## Topics

### Getting the shared store

[`shared`](/documentation/AuthenticationServices/ASCredentialIdentityStore/shared)

The shared credential identity store.

### Checking the state of the store

[`getState(_:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/getState(_:))

Gets the state of the credential identity store.

[`ASCredentialIdentityStoreState`](/documentation/AuthenticationServices/ASCredentialIdentityStoreState)

A representation of the state of a credential identity store.

### Adding and removing credential identities

[`saveCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/saveCredentialIdentities(_:completion:)-1bbx6)

Save the supplied credential identities to the store.

[`replaceCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/replaceCredentialIdentities(_:completion:))

Replaces existing credential identities with new credential identities.

[`removeAllCredentialIdentities(_:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/removeAllCredentialIdentities(_:))

Removes all existing credential identities from the store.

[`removeCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/removeCredentialIdentities(_:completion:)-67lcw)

Remove the given credential identities from the store.

[`ASCredentialIdentity`](/documentation/AuthenticationServices/ASCredentialIdentity)

A protocol that credential identity classes conform to that uniquely identifies credentials.

[`ASPasskeyCredentialIdentity`](/documentation/AuthenticationServices/ASPasskeyCredentialIdentity)

A description that uniquely identifies a particular passkey credential.

[`ASPasswordCredentialIdentity`](/documentation/AuthenticationServices/ASPasswordCredentialIdentity)

A description that uniquely identifies a particular password credential.

### Fetching saved credential identities

[`credentialIdentities(forService:credentialIdentityTypes:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/credentialIdentities(forService:credentialIdentityTypes:))

Retrieves an array of all previously saved credential identities in the store for your extension.

[`getCredentialIdentitiesForService:credentialIdentityTypes:completionHandler:`](/documentation/AuthenticationServices/ASCredentialIdentityStore/getCredentialIdentitiesForService:credentialIdentityTypes:completionHandler:)

Retrieves an array of all previously saved credential identities in the store for your extension.

[`ASCredentialServiceIdentifier`](/documentation/AuthenticationServices/ASCredentialServiceIdentifier)

An identifier representing a particular service for which the user needs a credential, like a web site.

[`ASCredentialIdentityStore.IdentityTypes`](/documentation/AuthenticationServices/ASCredentialIdentityStore/IdentityTypes)

The defined identity types for use in retrieving credentials.

### Recognizing errors

[`ASCredentialIdentityStoreError`](/documentation/AuthenticationServices/ASCredentialIdentityStoreError)

A credential identity store error.

[`ASCredentialIdentityStoreErrorDomain`](/documentation/AuthenticationServices/ASCredentialIdentityStoreErrorDomain)

The domain for a credential identity store error.

[`ASCredentialIdentityStoreError.Code`](/documentation/AuthenticationServices/ASCredentialIdentityStoreError/Code)

Constants that represent credential identity store error codes.

### Deprecated methods

[`saveCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/saveCredentialIdentities(_:completion:)-5vs4m)

Saves the given credential identities to the store.

[`replaceCredentialIdentities(with:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/replaceCredentialIdentities(with:completion:))

Replaces existing credential identities with new credential identities.

[`removeCredentialIdentities(_:completion:)`](/documentation/AuthenticationServices/ASCredentialIdentityStore/removeCredentialIdentities(_:completion:)-2ygnf)

Removes the given credential identities from the store.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)