=== J-Vault Proof of Publication ===
Contributors: jvault
Tags: timestamp, proof, bitcoin, backup, content protection
Requires at least: 5.8
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Gives every post a proof of publication: a fingerprint of the text, time-stamped and anchored to Bitcoin. Optional encrypted backup copies.

== Description ==

When a post is copied, the argument is about who had it first. This plugin makes a record at the moment you publish.

For each published post the plugin calculates a SHA-256 fingerprint of the title, the publish time and the text, and sends that fingerprint to J-Vault (jvault.online). J-Vault signs a receipt, puts the fingerprint into an hourly batch and anchors the batch to the Bitcoin blockchain through OpenTimestamps. The result is a proof of publication: evidence that this exact text existed at that time.

**What you get**

* A proof of publication for every post. Free, with no post limit.
* A stamp for later edits (at most one per post per day). The first stamp is never replaced.
* One button to stamp the posts that were already on your blog.
* A small optional line under each post that links to a public check page.
* Encrypted backup copies of your posts, free for 100 posts. Copies are locked on your own site with 8 words that only you see. You can restore them as a WordPress import file.
* A proof file for every stamp that can be checked with standard OpenTimestamps tools, without J-Vault.

**What it is not**

* It is not a copyright registration.
* It does not stop anyone from copying.
* It does not prove who wrote a text. It proves that the text existed, in this exact form, at a point in time.
* A stamp made today for an old post proves the post existed today. The older publish date is stored as "date reported by the site".
* Exact copies match your fingerprint. Rewritten or translated copies do not; a person has to compare them with your original.

**How this differs from other timestamp plugins**

* The anchor is Bitcoin, through the open OpenTimestamps standard, so a proof can be checked without us.
* Besides the timestamp you get encrypted backup copies and a restore path, with a key that never leaves your site.
* No wallet, no tokens and no blockchain account are needed.

Only posts are stamped. Pages, drafts, private posts, password-protected posts, attachments and revisions are never sent.

== External services ==

This plugin connects to the J-Vault service at https://jvault.online. It cannot work without it: the service is what time-stamps the fingerprints and stores the encrypted copies.

**What is sent, and when**

* When you press Connect: the address of your site. You are sent to jvault.online to sign in with Google. J-Vault then makes one request to your site (`/?rest_route=/jvault/v1/verify`) to confirm that the request came from your dashboard.
* When a post is published, when you stamp existing posts, and once a day for edited posts: the post ID, its public address, its title, its publish time (UTC) and the SHA-256 fingerprint.
* When a backup copy is made: the post (title, text, excerpt, dates, slug, address, author name and login, categories and tags) encrypted on your site with AES-256-GCM. The key is derived from 8 words that are shown to you once and are never sent. J-Vault cannot read the copy.
* When you send a plan request from the Plans tab: the plan you chose, your number of published posts and your note.
* When you open the settings page and in background runs: the number of published posts, and the IDs of stamps whose Bitcoin status is being checked.

Nothing about your visitors is sent. The plugin loads no scripts, fonts or images from other sites.

Service provider: J-Vault. Terms of Service: https://jvault.online/terms.php . Privacy Policy: https://jvault.online/privacy.php

== Installation ==

1. In WordPress go to Plugins, Add New, Upload Plugin. Choose the zip file and press Install Now, then Activate.
2. Go to Settings, J-Vault Proof and press "Connect to J-Vault".
3. Sign in with Google on jvault.online and press "Connect and go back to WordPress".
4. Write down the 8 words shown on the settings page and press "I have written them down".
5. Optional: press "Stamp my existing posts".

== Frequently Asked Questions ==

= Does it cost anything? =

Stamps are free for every post. Backup copies are free for 100 posts. Copies for up to 200 posts cost $7 a month, up to 300 posts $10 a month; bigger sites get a price on request. Payment is arranged by email, by bank transfer or mobile wallet. Restoring copies is always free.

= What if I lose the 8 words? =

Stamps stay valid. Copies made with those words cannot be opened by anyone. You can make a new key for future copies on the settings page.

= I moved my site to a new server. What now? =

Install the plugin, press Connect, then open "Backup key" on the settings page and enter your 8 words so new copies use the same key.

= What happens if I delete the plugin? =

The plugin's settings and markers are removed from your site. Stamps already made stay valid, and your copies stay on J-Vault where you can still restore them from "My WordPress sites".

= Are images backed up? =

No. A copy holds text only. Posts with more than about 300 KB of text get a stamp but no copy.

= Why is Bitcoin confirmation "pending"? =

Fingerprints are batched every hour and a Bitcoin confirmation takes a few more hours. The stamp time is the time J-Vault received the fingerprint; the Bitcoin block confirms it afterwards.

== Screenshots ==

1. The settings page after connecting.
2. The proof line under a post.
3. The public check page.

== Changelog ==

= 1.0.2 =
* The settings page has tabs: Overview, My posts, Found a copy?, Plans.
* Found a copy?: prepares a polite removal request with your proof link. You send it from your own email.
* Plans: ask for a bigger backup plan from inside WordPress.

= 1.0.1 =
* The settings page lists your stamped posts (50 per page) and the posts that have no stamp yet.
* The Posts screen has a J-Vault filter: stamped, not stamped, no backup copy.

= 1.0.0 =
* First release.
