<!--
{
  "availability" : [
    "iOS: 26.4.0 -",
    "iPadOS: 26.4.0 -",
    "macCatalyst: 26.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "WiFiAware",
  "identifier" : "/documentation/WiFiAware/WASharedSecret/ProtocolName/init(_:)-648hd",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "Wi-Fi Aware"
    ],
    "preciseIdentifier" : "s:9WiFiAware14WASharedSecretV12ProtocolNameVyAESg10Foundation4DataVcfc"
  },
  "title" : "init(_:)"
}
-->

# init(_:)

Creates a custom protocol with the provided unique string.

```
init?(_ data: Data)
```

## Parameters

`data`

The data to use as the underlying protocol name, which must be greater than or equal to 3 bytes.

## Return Value

A new [`WASharedSecret.ProtocolName`](/documentation/WiFiAware/WASharedSecret/ProtocolName), or `nil` if the provided data was too short.

## Discussion

Custom protocols need to specify data that identifies the protocol that will use the shared secret. Set the same value on the local and remote devices in order to generate the same shared secret.

---

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)