Skip to content

Repository files navigation

Pryvc Autofill with Proof

A Chrome extension that fills any web form from your encrypted PRYVC profile — including on sites that have never heard of PRYVC — and records a verifiable receipt of what you disclosed, to whom, and under which terms.

Install: Chrome Web Store

Why this is open source

The extension reads form fields on arbitrary pages and holds an access token. Those are exactly the capabilities that deserve scrutiny, and "trust us" is a poor answer from a company whose product is not having to trust anyone.

Everything the marketing site claims about this extension is checkable here:

Claim Where to check
Fills only when you explicitly trigger it src/background.ts — the fill path starts from a user gesture (toolbar click or context menu); there is no content_scripts auto-injection in manifest.json
It shows you the fields before anything is filled src/content.ts — the consent sheet is rendered and awaited before any value is written
Receipts record field names, never values src/content.ts — the recorded payload carries fields: string[]
The page never sees your token src/background.ts holds the token; the content script requests actions over chrome.runtime messaging and never receives it
Network access is limited to PRYVC manifest.jsonhost_permissions is api.pryvc.com only

Build it yourself

npm install
npm run build      # -> dist/ and pryvc-autofill-with-proof.zip

Then load dist/ at chrome://extensions → Developer mode → Load unpacked. Building from this source should produce functionally the same extension as the published listing.

How it works

  1. You trigger it. Toolbar button or right-click → Fill with Pryvc. There is no always-on script watching your typing.
  2. It shows its hand. A shadow-DOM sheet lists exactly which of your profile fields this form asks for. Nothing fills until you approve.
  3. It fills. Values come from GET /v1/ext/fields, decrypted server-side for that request only, held in memory, never persisted by the extension.
  4. It records a receipt. POST /v1/ext/disclosures stores field names, the page URL, a canonical fingerprint, and a snapshot of the site's privacy policy and terms as they read that day — then anchors it externally. The values you filled are not part of that record.

The receipt is a unilateral disclosure record: evidence created by the subject, for the subject, about a site that has no integration and no idea the record exists. It is written in the Share Protocol (SP/1) evidence format, so it can be verified with the independent Class V verifier rather than by asking PRYVC to vouch for itself.

Permissions, and why each is needed

Permission Reason
activeTab Read the current page's form fields — only after you invoke the extension
scripting Inject the consent sheet and perform the fill
storage Persist your access token locally
identity Complete the one-time account connection via launchWebAuthFlow
contextMenus The right-click → Fill with Pryvc entry
host_permissions: api.pryvc.com The only host the extension talks to

Note there is no broad host permission. The extension cannot read pages you haven't explicitly invoked it on.

Layout

src/background.ts   token custody, message router, API calls
src/content.ts      form detection, consent sheet, fill, receipt
src/popup.ts        connection status
src/vendor/         field mapping, device details, and the SP/1 field
                    registry, mirrored from @pryvc/sdk and kept in sync
build.mjs           esbuild -> dist/ + store zip

Reporting a security issue

Please email security@pryvc.com rather than opening a public issue.

License

Apache-2.0.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages