Data Structures
Notify Subscription
{
  "topic": string,
  "account": string,
  "relay": {
    "protocol": string,
    "data": string
  },
  "metadata": Metadata,
  "scope": Record<string, NotifyNotificationType>,
  "expiry": number,
  "unreadNotificationCount": number,
}
Notify Notification
{
  // ID of the notification
  id: string,
  // Unix ms timestamp when the notification was sent
  sent_at: number,
  // Notification type which matches the scope of notify subscription
  type: string,
  // Short message used in the title of the notification
  title: string,
  // Long messages used in the body of the notification
  body: string,
  // Image URL used to display with the notification. If null, the app's icon from Notify Config is used instead
  icon: string | null,
  // Redirect URL for call-to-action related to notification. If null, there is no link
  url: string | null,
  // If the notification was read or not
  is_read: boolean,
}
Notify Message
{
  // ID of the notification
  id: string,
  // Unix ms timestamp when the notification was sent
  sent_at: number,
  // Notification type which matches the scope of notify subscription
  type: string,
  // Short message used in the title of the notification
  title: string,
  // Long messages used in the body of the notification
  body: string,
  // Image URL used to display with the notification. If empty, the app's icon from Notify Config is used instead
  icon: string,
  // Redirect URL for call-to-action related to notification. If empty, there is no link
  url: string,
  // If the notification was read or not
  is_read: boolean,
}
Notify Notification Record
{
  "id": string,
  "topic": string,
  "publishedAt": Int64,
  "message": NotifyNotification
}
Notify Server Subscriptions
NotifyServerSubscription[]
NotifyServerSubscription:
{
  appDomain: string, // App domain that the subscription refers to
  appAuthenticationKey: string, // did:key encoded ed25519 app authentication key
  symKey: string, // Symetric key used for notify topic. sha256 to get notify topic to manage the subscription and call wc_notifySubscriptionUpdate and wc_notifySubscriptionDelete
  account: Account, // CAIP-10 account
  scope: string[], // Array of notification types enabled for this subscription
  expiry: number, // Unix timestamp of expiration
  unreadNotificationCount: number, // Number of unread notifications
}
Notify Registration Params
NotifyRegistrationParams
{
  payload: Cacao.Payload,
  privateIdentityKey: string,
}
Notify Notification Type
NotifyNotificationType
{
  "description": string, 
  "id": string,
  "enabled": boolean,
  "name": string,
  "imageUrls": {
    "sm": string,
    "md": string,
    "lg": string,
  }
}