<!--
{
  "availability" : [
    "iOS: 16.1.0 -",
    "iPadOS: 16.1.0 -",
    "macCatalyst: 16.1.0 -",
    "macOS: 13.0.0 -",
    "tvOS: 16.1.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 9.1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Matter",
  "identifier" : "/documentation/Matter/MTRDeviceController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Matter"
    ],
    "preciseIdentifier" : "c:objc(cs)MTRDeviceController"
  },
  "title" : "MTRDeviceController"
}
-->

# MTRDeviceController

```
class MTRDeviceController
```

## Topics

### Initializers

[`-  initWithParameters:error:`](/documentation/Matter/MTRDeviceController/init(parameters:))

### Instance Properties

[`controllerNodeID`](/documentation/Matter/MTRDeviceController/controllerNodeID-6a04u)

[`controllerNodeId`](/documentation/Matter/MTRDeviceController/controllerNodeId-6a03y)

[`running`](/documentation/Matter/MTRDeviceController/isRunning)

[`uniqueIdentifier`](/documentation/Matter/MTRDeviceController/uniqueIdentifier)

### Instance Methods

[`-  addServerEndpoint:`](/documentation/Matter/MTRDeviceController/add(_:))

[`-  attestationChallengeForDeviceID:`](/documentation/Matter/MTRDeviceController/attestationChallenge(forDeviceID:))

[`-  cancelCommissioningForNodeID:error:`](/documentation/Matter/MTRDeviceController/cancelCommissioning(forNodeID:))

[`-  commissionDevice:commissioningParams:error:`](/documentation/Matter/MTRDeviceController/commissionDevice(_:commissioningParams:))

[`-  commissionNodeWithID:commissioningParams:error:`](/documentation/Matter/MTRDeviceController/commissionNode(withID:commissioningParams:))

[`-  computePaseVerifier:iterations:salt:`](/documentation/Matter/MTRDeviceController/computePaseVerifier(_:iterations:salt:))

[`-  continueCommissioningDevice:ignoreAttestationFailure:error:`](/documentation/Matter/MTRDeviceController/continueCommissioningDevice(_:ignoreAttestationFailure:))

[`-  deviceBeingCommissionedWithNodeID:error:`](/documentation/Matter/MTRDeviceController/deviceBeingCommissioned(withNodeID:))

[`-  fetchAttestationChallengeForDeviceId:`](/documentation/Matter/MTRDeviceController/fetchAttestationChallenge(forDeviceId:))

[`-  getBaseDevice:queue:completionHandler:`](/documentation/Matter/MTRDeviceController/getBaseDevice(_:queue:completionHandler:))

[`-  getDeviceBeingCommissioned:error:`](/documentation/Matter/MTRDeviceController/getDeviceBeingCommissioned(_:))

[`-  openPairingWindow:duration:error:`](/documentation/Matter/MTRDeviceController/openPairingWindow(_:duration:))

[`-  openPairingWindowWithPIN:duration:discriminator:setupPIN:error:`](/documentation/Matter/MTRDeviceController/openPairingWindow(withPIN:duration:discriminator:setupPIN:))

[`-  pairDevice:address:port:setupPINCode:error:`](/documentation/Matter/MTRDeviceController/pairDevice(_:address:port:setupPINCode:))

[`-  pairDevice:discriminator:setupPINCode:error:`](/documentation/Matter/MTRDeviceController/pairDevice(_:discriminator:setupPINCode:))

[`-  pairDevice:onboardingPayload:error:`](/documentation/Matter/MTRDeviceController/pairDevice(_:onboardingPayload:))

[`-  preWarmCommissioningSession`](/documentation/Matter/MTRDeviceController/preWarmCommissioningSession())

[`-  removeServerEndpoint:queue:completion:`](/documentation/Matter/MTRDeviceController/remove(_:queue:completion:))

[`-  setDeviceControllerDelegate:queue:`](/documentation/Matter/MTRDeviceController/setDeviceControllerDelegate(_:queue:))

[`-  setNocChainIssuer:queue:`](/documentation/Matter/MTRDeviceController/setNocChainIssuer(_:queue:))

[`-  setPairingDelegate:queue:`](/documentation/Matter/MTRDeviceController/setPairingDelegate(_:queue:))

[`-  setupCommissioningSessionWithPayload:newNodeID:error:`](/documentation/Matter/MTRDeviceController/setupCommissioningSession(with:newNodeID:))

[`-  setupCommissioningSessionWithDiscoveredDevice:payload:newNodeID:error:`](/documentation/Matter/MTRDeviceController/setupCommissioningSession(withDiscoveredDevice:payload:newNodeID:))

[`-  shutdown`](/documentation/Matter/MTRDeviceController/shutdown())

[`-  startBrowseForCommissionables:queue:`](/documentation/Matter/MTRDeviceController/startBrowse(forCommissionables:queue:))

[`-  stopBrowseForCommissionables`](/documentation/Matter/MTRDeviceController/stopBrowseForCommissionables())

[`-  stopDevicePairing:error:`](/documentation/Matter/MTRDeviceController/stopDevicePairing(_:))

### Type Methods

[`+  computePASEVerifierForSetupPasscode:iterations:salt:error:`](/documentation/Matter/MTRDeviceController/computePASEVerifier(forSetupPasscode:iterations:salt:))

[`+  decodeXPCReadParams:`](/documentation/Matter/MTRDeviceController/decodeXPCReadParams(_:))

[`+  decodeXPCResponseValues:`](/documentation/Matter/MTRDeviceController/decodeXPCResponseValues(_:))

[`+  decodeXPCSubscribeParams:`](/documentation/Matter/MTRDeviceController/decodeXPCSubscribeParams(_:))

[`+  encodeXPCReadParams:`](/documentation/Matter/MTRDeviceController/encodeXPCReadParams(_:))

[`+  encodeXPCResponseValues:`](/documentation/Matter/MTRDeviceController/encodeXPCResponseValues(_:))

[`+  encodeXPCSubscribeParams:`](/documentation/Matter/MTRDeviceController/encodeXPCSubscribeParams(_:))

[`+  sharedControllerWithID:xpcConnectBlock:`](/documentation/Matter/MTRDeviceController/sharedController(withID:xpcConnect:)-5yhq4)

[`+  sharedControllerWithId:xpcConnectBlock:`](/documentation/Matter/MTRDeviceController/sharedController(withId:xpcConnect:)-6rg64)

[`+  xpcInterfaceForClientProtocol`](/documentation/Matter/MTRDeviceController/xpcInterfaceForClientProtocol())

[`+  xpcInterfaceForServerProtocol`](/documentation/Matter/MTRDeviceController/xpcInterfaceForServerProtocol())

## Relationships

### Conforms To

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`Equatable`](/documentation/Swift/Equatable)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)