---
title: CredentialSession
framework: secureelementcredential
role: symbol
role_heading: Class
path: secureelementcredential/credentialsession
---

# CredentialSession

A class for performing actions on a credential stored in the Secure Element.

## Declaration

```swift
actor CredentialSession
```

## Mentioned in

Accessing and using secure element credentials

## Overview

Overview Create a credential session with the startSession() method. After you start a session, the session has three states: The framework provides SwiftUI and UIKit user interfaces for your app to display while using the wired and card emulation states. You can read the current state at any time from the state property. The eventStream property provides an AsyncStream of events from both your own actions on credentials and outside sources like detecting an NFC reader’s RF field. An app can have only one active session at a time. When your app no longer needs the credential session, call invalidate(). If your app goes into the background, the system automatically invalidates your session after a short delay. In wired mode, the system invalidates the session if it goes 15 seconds without performing a transceive(_:) call. Use a session in an app extension Certain methods in CredentialSession are only appropriate for use in apps. If you’re writing an app extension, such as for an identity service provider, use only the following methods: startSession() listCredentials() performWiredTransaction(using:over:instanceAID:) transceive(_:) endWiredMode() invalidate()

## Topics

### Verifying eligibility

- [isEligible](secureelementcredential/credentialsession/iseligible.md)

### Accessing hardware information

- [secureElementInfo](secureelementcredential/credentialsession/secureelementinfo-swift.property.md)
- [CredentialSession.SecureElementInfo](secureelementcredential/credentialsession/secureelementinfo-swift.struct.md)

### Managing the credential session life cycle

- [startSession()](secureelementcredential/credentialsession/startsession().md)
- [invalidate()](secureelementcredential/credentialsession/invalidate().md)

### Accessing the session state

- [state](secureelementcredential/credentialsession/state-swift.property.md)
- [CredentialSession.State](secureelementcredential/credentialsession/state-swift.enum.md)

### Accessing credentials

- [listCredentials()](secureelementcredential/credentialsession/listcredentials().md)
- [CredentialSession.Credential](secureelementcredential/credentialsession/credential.md)

### Acquiring exclusive foreground privileges

- [acquirePresentmentAssertion()](secureelementcredential/credentialsession/acquirepresentmentassertion().md)
- [CredentialSession.PresentmentIntentAssertion](secureelementcredential/credentialsession/presentmentintentassertion.md)

### Handling session events

- [eventStream](secureelementcredential/credentialsession/eventstream.md)
- [CredentialSession.Event](secureelementcredential/credentialsession/event.md)

### Managing a credential

- [provisionCredential(configurationUUID:name:)](secureelementcredential/credentialsession/provisioncredential(configurationuuid:name:).md)
- [deleteCredential(_:)](secureelementcredential/credentialsession/deletecredential(_:).md)

### Performing wired mode actions

- [performWiredTransaction(using:over:instanceAID:)](secureelementcredential/credentialsession/performwiredtransaction(using:over:instanceaid:).md)
- [enterWiredMode(using:)](secureelementcredential/credentialsession/enterwiredmode(using:).md)
- [transceive(_:)](secureelementcredential/credentialsession/transceive(_:).md)
- [endWiredMode()](secureelementcredential/credentialsession/endwiredmode().md)

### Performing card emulation

- [performCardEmulationTransactionWithCurrentCredential(over:options:)](secureelementcredential/credentialsession/performcardemulationtransactionwithcurrentcredential(over:options:).md)
- [performTransaction(using:over:options:)](secureelementcredential/credentialsession/performtransaction(using:over:options:).md)
- [CredentialSession.CardEmulationOptions](secureelementcredential/credentialsession/cardemulationoptions.md)
- [endCardEmulation()](secureelementcredential/credentialsession/endcardemulation().md)

### Using SwiftUI

- [configuration()](secureelementcredential/credentialsession/configuration().md)
- [CredentialTransaction.Configuration](secureelementcredential/credentialtransaction/configuration.md)

### Handling errors

- [CredentialSession.ErrorCode](secureelementcredential/credentialsession/errorcode.md)

### Infrequently-used functionality

- [init()](secureelementcredential/credentialsession/init().md)

### Structures

- [CredentialSession.ConnectivityEvent](secureelementcredential/credentialsession/connectivityevent.md)

### Enumerations

- [CredentialSession.NFCFieldInformation](secureelementcredential/credentialsession/nfcfieldinformation.md)

## Relationships

### Conforms To

- [Actor](swift/actor.md)
- [Equatable](swift/equatable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
