<!--
{
  "availability" : [
    "iOS: 11.0.0 -",
    "iPadOS: 11.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.15.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "NetworkExtension",
  "identifier" : "/documentation/NetworkExtension/NEDNSProxyManager/providerProtocol",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Network Extension"
    ],
    "preciseIdentifier" : "c:objc(cs)NEDNSProxyManager(py)providerProtocol"
  },
  "title" : "providerProtocol"
}
-->

# providerProtocol

The provider-specific portion of the DNS proxy configuration.

```
var providerProtocol: NEDNSProxyProviderProtocol? { get set }
```

## Discussion

As the author of the DNS proxy, you decide what configuration the proxy needs. For example, if your proxy requires the IP addresses of servers to which DNS traffic can be redirected, you can use an array of strings to hold these values.

Initially, you store this array in the configuration profile, as described in [Configuration Profile Reference](https://developer.apple.com/library/archive/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010206). When you want to inspect or modify this data, you call [`loadFromPreferences(completionHandler:)`](/documentation/NetworkExtension/NEDNSProxyManager/loadFromPreferences(completionHandler:)) to pull the configuration into memory. You access this memory through the proxy manager’s [`providerProtocol`](/documentation/NetworkExtension/NEDNSProxyManager/providerProtocol) property.

---

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)