{"id":299,"date":"2026-05-03T05:34:40","date_gmt":"2026-05-03T05:34:40","guid":{"rendered":"https:\/\/temporal.bond\/?page_id=299"},"modified":"2026-05-18T05:45:20","modified_gmt":"2026-05-18T05:45:20","slug":"unsubscribe","status":"publish","type":"page","link":"https:\/\/temporal.bond\/?page_id=299","title":{"rendered":"Unsubscribe"},"content":{"rendered":"<style id=\"wpforms-css-vars-296-block-653da053-74e5-4190-9f94-79838f05fb20\">\n\t\t\t\t#wpforms-296.wpforms-block-653da053-74e5-4190-9f94-79838f05fb20 {\n\t\t\t\t--wpforms-label-color: var(--ast-global-color-2);\n--wpforms-label-sublabel-color: var(--ast-global-color-3);\n--wpforms-field-background-color: var(--ast-global-color-4);\n--wpforms-field-border-color: var(--ast-global-color-6);\n--wpforms-field-border-color-spare: var(--ast-global-color-6);\n--wpforms-field-text-color: var(--ast-global-color-3);\n--wpforms-field-size-input-height: 43px;\n--wpforms-field-size-input-spacing: 15px;\n--wpforms-field-size-font-size: 16px;\n--wpforms-field-size-line-height: 19px;\n--wpforms-field-size-padding-h: 14px;\n--wpforms-field-size-checkbox-size: 16px;\n--wpforms-field-size-sublabel-spacing: 5px;\n--wpforms-field-size-icon-size: 1;\n--wpforms-label-size-font-size: 16px;\n--wpforms-label-size-line-height: 19px;\n--wpforms-label-size-sublabel-font-size: 14px;\n--wpforms-label-size-sublabel-line-height: 17px;\n--wpforms-button-size-font-size: 17px;\n--wpforms-button-size-height: 41px;\n--wpforms-button-size-padding-h: 15px;\n--wpforms-button-size-margin-top: 10px;\n\t\t\t}\n\t\t\t<\/style><div class=\"wpforms-container wpforms-container-full wpforms-block wpforms-block-653da053-74e5-4190-9f94-79838f05fb20 wpforms-render-modern\" id=\"wpforms-296\"><form id=\"wpforms-form-296\" class=\"wpforms-validate wpforms-form wpforms-ajax-form\" data-formid=\"296\" method=\"post\" enctype=\"multipart\/form-data\" action=\"\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F299\" data-token=\"c1c22b48265bc18addda5983181d5aa0\" data-token-time=\"1782504008\"><noscript class=\"wpforms-error-noscript\">Please enable JavaScript in your browser to complete this form.<\/noscript><div id=\"wpforms-error-noscript\" style=\"display: none;\">Please enable JavaScript in your browser to complete this form.<\/div><div class=\"wpforms-field-container\"><div id=\"wpforms-296-field_1-container\" class=\"wpforms-field wpforms-field-number\" data-field-id=\"1\"><label class=\"wpforms-field-label\" for=\"wpforms-296-field_1\">Sub-account id <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"number\" id=\"wpforms-296-field_1\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][1]\" step=\"any\" aria-errormessage=\"wpforms-296-field_1-error\" required><\/div><div id=\"wpforms-296-field_2-container\" class=\"wpforms-field wpforms-field-number\" data-field-id=\"2\"><label class=\"wpforms-field-label\" for=\"wpforms-296-field_2\">Timestamp <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"number\" id=\"wpforms-296-field_2\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][2]\" step=\"any\" aria-errormessage=\"wpforms-296-field_2-error\" required><\/div>\t\t<div id=\"wpforms-296-field_5-container\"\n\t\t\tclass=\"wpforms-field wpforms-field-text\"\n\t\t\tdata-field-type=\"text\"\n\t\t\tdata-field-id=\"5\"\n\t\t\t>\n\t\t\t<label class=\"wpforms-field-label\" for=\"wpforms-296-field_5\" >Signature Timestamp Nonce<\/label>\n\t\t\t<input type=\"text\" id=\"wpforms-296-field_5\" class=\"wpforms-field-medium\" name=\"wpforms[fields][5]\" >\n\t\t<\/div>\n\t\t<div id=\"wpforms-296-field_3-container\" class=\"wpforms-field wpforms-field-text\" data-field-id=\"3\"><label class=\"wpforms-field-label\" for=\"wpforms-296-field_3\">Nonce <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-296-field_3\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][3]\" aria-errormessage=\"wpforms-296-field_3-error\" required><\/div><div id=\"wpforms-296-field_4-container\" class=\"wpforms-field wpforms-field-text\" data-field-id=\"4\"><label class=\"wpforms-field-label\" for=\"wpforms-296-field_4\">Signature <span class=\"wpforms-required-label\" aria-hidden=\"true\">*<\/span><\/label><input type=\"text\" id=\"wpforms-296-field_4\" class=\"wpforms-field-medium wpforms-field-required\" name=\"wpforms[fields][4]\" aria-errormessage=\"wpforms-296-field_4-error\" required><\/div><script>\n\t\t\t\t( function() {\n\t\t\t\t\tconst style = document.createElement( 'style' );\n\t\t\t\t\tstyle.appendChild( document.createTextNode( '#wpforms-296-field_5-container { position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important; } #wpforms-296-field_5-container input { visibility: hidden; } #wpforms-conversational-form-page #wpforms-296-field_5-container label { counter-increment: none; }' ) );\n\t\t\t\t\tdocument.head.appendChild( style );\n\t\t\t\t\tdocument.currentScript?.remove();\n\t\t\t\t} )();\n\t\t\t<\/script><\/div><!-- .wpforms-field-container --><div class=\"wpforms-submit-container\" ><input type=\"hidden\" name=\"wpforms[id]\" value=\"296\"><input type=\"hidden\" name=\"page_title\" value=\"\"><input type=\"hidden\" name=\"page_url\" value=\"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/pages\/299\"><input type=\"hidden\" name=\"url_referer\" value=\"\"><button type=\"submit\" name=\"wpforms[submit]\" id=\"wpforms-submit-296\" class=\"wpforms-submit\" data-alt-text=\"Sending...\" data-submit-text=\"Submit\" aria-live=\"assertive\" value=\"wpforms-submit\">Submit<\/button><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/temporal.bond\/wp-content\/plugins\/wpforms-lite\/assets\/images\/submit-spin.svg\" class=\"wpforms-submit-spinner\" style=\"display: none;\" width=\"26\" height=\"26\" alt=\"Loading\"><\/div><\/form><\/div>  <!-- .wpforms-container -->\n\n\n\n<div>\n\t<label>Private Key (Ed25519, PKCS#8, PEM):<\/label><br>\n\t<textarea id=\"privateKey\" rows=\"4\" cols=\"65\" autocomplete=\"off\"><\/textarea><br><br>\n\n\t<button type=\"button\" onclick=\"signData()\">Sign<\/button>\n<\/div>\n\n<script>\n\nwindow.onload = function () {\n  document.getElementById(\"wpforms-296-field_2\").readOnly = true;\n  document.getElementById(\"wpforms-296-field_3\").readOnly = true;\n  document.getElementById(\"wpforms-296-field_4\").readOnly = true;\n};\n\ndocument.getElementById(\"wpforms-form-296\").addEventListener(\"submit\", onSubmit);\n\nfunction pemToBase64(pem) {\n  const base64 = pem\n    .replace(\/-----BEGIN [^-]+-----\/g, \"\")\n    .replace(\/-----END [^-]+-----\/g, \"\")\n    .replace(\/\\s+\/g, \"\");\n\n  return base64;\n}\n\nfunction base64ToPem(base64, type) {\n  const lines = base64.match(\/.{1,64}\/g).join(\"\\n\");\n  return `-----BEGIN ${type}-----\\n${lines}\\n-----END ${type}-----`;\n}\n\nfunction base64ToArrayBuffer(base64) {\n  const binary = atob(base64);\n  const bytes = new Uint8Array(binary.length);\n\n  for (let i = 0; i < binary.length; i++) {\n    bytes[i] = binary.charCodeAt(i);\n  }\n\n  return bytes.buffer;\n}\n\nfunction arrayBufferToBase64(buffer) {\n  const bytes = new Uint8Array(buffer);\n  let binary = \"\";\n  for (let i = 0; i < bytes.length; i++) {\n    binary += String.fromCharCode(bytes[i]);\n  }\n  return btoa(binary);\n}\n\n\/\/ Generate 64-bit nonce\nfunction generateNonceBase64() {\n  const bytes = new Uint8Array(8);\n  crypto.getRandomValues(bytes);\n  return arrayBufferToBase64(bytes.buffer);\n}\n\nfunction handleCryptoError(err) {\n\tconsole.error(err);\n\n\tlet message = null;\n\n\tif (err.name === \"NotSupportedError\") {\n\t  message = \"Ed25519 is not supported in this browser.\";\n\t} else if (err.name === \"DataError\") {\n\t  message = \"Invalid key format. Please check your PEM encoding.\";\n\t} else if (err.name === \"SyntaxError\") {\n\t  message = \"Malformed input data.\";\n\t} else if (err.name === \"InvalidAccessError\") {\n\t  message = \"The key cannot be used for this operation.\";\n\t} else if (err.name === \"OperationError\") {\n\t  message = \"Cryptographic operation failed.\";\n\t} else if (err.message) {\n\t  message = err.message;\n\t}\n\telse\n\t  message = \"Unexpected error.\"\n\n\talert(message);\n}\n\nasync function signData() {\n  const subAccountId = document.getElementById(\"wpforms-296-field_1\");\n  const privateKeyField = document.getElementById(\"privateKey\");\n\n  const subAccountIdValue = subAccountId.value;\n  const privateKeyValue = privateKeyField.value;\n\n  if (!subAccountIdValue || !privateKeyValue) {\n    alert(\"Please fill in all fields.\");\n    return;\n  }\n\n  try {\n    const timestamp = Date.now().toString();\n    const nonce = generateNonceBase64();\n\n    const message = [\n\t\ttimestamp,\n\t\tnonce,\n\t\tsubAccountIdValue\n    ].join(\";\");\n\n    document.getElementById(\"wpforms-296-field_2\").value = timestamp;\n    document.getElementById(\"wpforms-296-field_3\").value = nonce;\n\n    const privateKeyBuffer = base64ToArrayBuffer(pemToBase64(privateKeyValue));\n\n    const privateKey = await crypto.subtle.importKey(\n      \"pkcs8\",\n      privateKeyBuffer,\n      {\n        name: \"Ed25519\"\n      },\n      false,\n      [\"sign\"]\n    );\n\n    const encoder = new TextEncoder();\n    const data = encoder.encode(message);\n\n    const signature = await crypto.subtle.sign(\n      \"Ed25519\",\n      privateKey,\n      data\n    );\n\n    const signatureBase64 = arrayBufferToBase64(signature);\n\n    document.getElementById(\"wpforms-296-field_4\").value = signatureBase64;\n\n\t\/\/ Clear the private key after use\n    privateKeyField.value = \"\";\n\n    \/\/ Lock fields\n    subAccountId.readOnly = true;\n\n  } catch (err) {\n\thandleCryptoError(err);\n  }\n}\n\nasync function onSubmit(event) {\n\n\tconst subAccountId = document.getElementById(\"wpforms-296-field_1\").value;\n\tconst message = \"Unsubscribe \" + subAccountId;\n\n    fetch(\n        \"https:\/\/ntfy.sh\/80brwebjWRX\",\n        {\n            method: \"POST\",\n            headers: {\n                \"Content-Type\":\n                    \"text\/plain; charset=UTF-8\"\n            },\n            body: message\n        }\n    )\n    .then(response => {\n\n        if (!response.ok) {\n            alert(\n                \"HTTP error: \" + response.status\n            );\n        }\n    })\n    .catch(error => {\n\n        console.error(error);\n\n        alert(\"Network error\");\n    });\n}\n\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Private Key (Ed25519, PKCS#8, PEM): Sign<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-299","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/pages\/299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/temporal.bond\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=299"}],"version-history":[{"count":5,"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/pages\/299\/revisions"}],"predecessor-version":[{"id":465,"href":"https:\/\/temporal.bond\/index.php?rest_route=\/wp\/v2\/pages\/299\/revisions\/465"}],"wp:attachment":[{"href":"https:\/\/temporal.bond\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}