{"id":399377,"date":"2026-11-05T15:55:02","date_gmt":"2026-11-05T15:55:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/datesealed\/"},"modified":"2026-11-07T08:00:50","modified_gmt":"2026-11-07T08:00:50","slug":"datesealed","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/datesealed\/","author":23589676,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1.4","requires":"5.8","requires_php":"8.2","requires_plugins":null,"header_name":"DateSealed","header_author":"Lightscend Co., Ltd.","header_description":"Records the publication date of your posts on a third-party ledger. Only a SHA-256 hash is sent to DateSealed; your text and images never leave your site.","assets_banners_color":"f1f6ff","last_updated":"2026-11-07 08:00:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":134,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"egosaru","date":"2026-11-05 15:54:33","revision":3786325},"0.1.1":{"tag":"0.1.1","author":"egosaru","date":"2026-11-07 08:00:50","revision":3789157}},"upgrade_notice":{"0.1.1":"<p>Fixes lost records when the hourly limit is reached. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3786325,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3786325,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3786325,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3786325,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3786325,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3786325,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3786325,"resolution":"3","location":"assets","locale":"","width":1170,"height":630},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3786325,"resolution":"4","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"Settings: choose when to record, which post types, the badge and the service URL.","2":"The post list shows the record status of every post.","3":"The badge after a post: the date it was recorded, with a link to the record page.","4":"The record page: the signed time stamp, the Bitcoin anchoring status and the proof files you can verify yourself."}},"plugin_section":[],"plugin_tags":[2972,6225,290903,186,1357],"plugin_category":[55],"plugin_contributors":[288697],"plugin_business_model":[],"class_list":["post-399377","plugin","type-plugin","status-publish","hentry","plugin_tags-copyright","plugin_tags-proof","plugin_tags-publication-date","plugin_tags-seo","plugin_tags-timestamp","plugin_category-seo-and-marketing","plugin_contributors-egosaru","plugin_committers-egosaru"],"banners":{"banner":"https:\/\/ps.w.org\/datesealed\/assets\/banner-772x250.png?rev=3786325","banner_2x":"https:\/\/ps.w.org\/datesealed\/assets\/banner-1544x500.png?rev=3786325","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/datesealed\/assets\/icon-128x128.png?rev=3786325","icon_2x":"https:\/\/ps.w.org\/datesealed\/assets\/icon-256x256.png?rev=3786325","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/datesealed\/assets\/screenshot-1.png?rev=3786325","caption":"Settings: choose when to record, which post types, the badge and the service URL."},{"src":"https:\/\/ps.w.org\/datesealed\/assets\/screenshot-2.png?rev=3786325","caption":"The post list shows the record status of every post."},{"src":"https:\/\/ps.w.org\/datesealed\/assets\/screenshot-3.png?rev=3786325","caption":"The badge after a post: the date it was recorded, with a link to the record page."},{"src":"https:\/\/ps.w.org\/datesealed\/assets\/screenshot-4.png?rev=3786325","caption":"The record page: the signed time stamp, the Bitcoin anchoring status and the proof files you can verify yourself."}],"raw_content":"<!--section=description-->\n<p>When you publish or update a post, DateSealed calculates a SHA-256 hash of the post text (and, optionally, the featured image file) on your server and sends <strong>only that hash<\/strong> to the DateSealed service. The service returns a signed time stamp (RFC 3161) immediately and anchors the hash in a Bitcoin block through OpenTimestamps within hours. Anchored records can be verified from the Bitcoin ledger alone, even if the service disappears.<\/p>\n\n<ul>\n<li>Automatic: a new record on every publish and update; earlier records are kept as a history.<\/li>\n<li>Private: the text, images and URLs of your posts are never sent.<\/li>\n<li>Badge: a small line after the post with the record date and a link to the record page (you can turn it off).<\/li>\n<li>Admin: a \"DateSealed\" column in the post list and a box on the edit screen.<\/li>\n<\/ul>\n\n<p>Records made with this tool do not guarantee legal effect. If you need an accredited timestamp (certified by Japan's Minister of Internal Affairs and Communications), please use an accredited provider.<\/p>\n\n<h4>External service<\/h4>\n\n<p>This plugin connects to the DateSealed service (https:\/\/datesealed.com), operated by Lightscend Co., Ltd., to create and check records.<\/p>\n\n<ul>\n<li>What is sent: the SHA-256 hash (64 hexadecimal characters) of the post text, and optionally of the featured image file; the site URL appears in the User-Agent header of every request. Nothing else.<\/li>\n<li>When: when a post is published or updated (sent from WP-Cron shortly afterwards; if the hourly limit is reached, later), when you click \"Record now\", and twice a day to ask whether pending records have been anchored.<\/li>\n<li>Terms and privacy: https:\/\/datesealed.com\/terms<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>datesealed<\/code> folder to <code>\/wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Open Settings &gt; DateSealed to choose the post types and the badge.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20my%20content%20uploaded%3F\"><h3>Is my content uploaded?<\/h3><\/dt>\n<dd><p>No. Only the hash is sent.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20edit%20a%20post%3F\"><h3>What happens when I edit a post?<\/h3><\/dt>\n<dd><p>The hash changes, so a new record is created; the earlier ones stay in the history.<\/p><\/dd>\n<dt id=\"does%20it%20work%20if%20wp-cron%20is%20disabled%3F\"><h3>Does it work if WP-Cron is disabled?<\/h3><\/dt>\n<dd><p>Run <code>wp cron event run --due-now<\/code> from a real cron job.<\/p><\/dd>\n<dt id=\"how%20is%20the%20hash%20of%20the%20post%20text%20made%3F\"><h3>How is the hash of the post text made?<\/h3><\/dt>\n<dd><p>From the saved post only, so that you can make it again later and other plugins or the theme do not change it (rule 2, since 0.1.1):<\/p>\n\n<ol>\n<li>Title, a line break, then the post content as stored.<\/li>\n<li>Remove HTML comments (this removes the block editor markers), then <code>script<\/code> and <code>style<\/code> elements.<\/li>\n<li>Replace every remaining HTML tag with a space, and decode HTML entities.<\/li>\n<li>Normalize to Unicode NFC, turn every run of white space into one space, and trim both ends.<\/li>\n<li>SHA-256 of the UTF-8 bytes.<\/li>\n<\/ol><\/dd>\n<dt id=\"what%20happens%20when%20the%20hourly%20limit%20is%20reached%3F\"><h3>What happens when the hourly limit is reached?<\/h3><\/dt>\n<dd><p>The post waits and is sent automatically when the service accepts it again. The post list shows \"Waiting to record\" until then.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Fixed: a record was lost when the hourly limit was reached (for example when many posts were updated at once). Posts now wait and are sent later, and the post list shows \"Waiting to record\". Posts that were not recorded with 0.1.0 are queued again.<\/li>\n<li>Changed: the text hash is now made from the saved post only (rule 2), so other plugins and themes no longer change it and it can be made again later. The next update of each post creates one new record under the new rule; earlier records stay valid.<\/li>\n<li>Fixed: older posts whose records were still pending were not checked again.<\/li>\n<li>Removed \"Media\" from the post types, because attachments are never published.<\/li>\n<li>Added a link to the terms on the settings page.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Record the publication date of your posts on a third-party ledger. Only a SHA-256 hash is sent; your text and images stay on your site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/399377","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=399377"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/egosaru"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=399377"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=399377"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=399377"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=399377"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=399377"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=399377"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}