inkdna-fingerprint Documentation

Fingerprint PDFs on download and prove lineage later — no DRM, no PII.

Quick start (any site)

  1. Claim your key at /claim.html.
  2. Add your domain on the claim page.
  3. Paste the loader on your site:
<script src="https://inkdnafingerprint.com/plugin.js"
  data-key="pk_XXXX"
  data-observe='a[href$=".pdf"],a[data-inkdna]'
  data-mode="loose" async></script>

View a minimal example

If your API is at a different origin, add data-api="https://api.example".

WooCommerce

Download plugin (ZIP)

Other platforms

While we provide a Woo plugin and a simple CDN loader snippet, other platforms that allow inserting the loader script will work too. We focus engineering effort on the CDN loader and Woo integration; reach out if you need a custom integration.

Passing a dynamic Order ID

Order IDs make takedowns provable. The loader auto-detects them from attributes, URL params, or page hints. Use one of these:

Explicit (recommended)

<a href="/files/ebook.pdf" data-inkdna data-inkdna-order="ORDER-123">Download</a>

Auto from page (generic)

<script>(function(){
  var el = document.querySelector('#orderNo, .order-number, [data-order-number]');
  var ord = el ? (el.textContent || el.value || '').trim() : '';
  if (!ord) {
    var q = new URLSearchParams(location.search);
    ord = q.get('order') || q.get('order_id') || q.get('order-received') || q.get('oid') || '';
  }
  if (ord) {
    document.body.dataset.inkdnaOrder = ord;
    document.querySelectorAll('a[href$=".pdf"],a[data-inkdna]').forEach(function(a){
      a.dataset.inkdnaOrder = ord;
    });
  }
})();</script>

Woo (thank-you)

<script>(function(){
  var p=new URLSearchParams(location.search);
  var ord=p.get('order-received')||p.get('order')||'';
  if(ord) document.body.dataset.inkdnaOrder=ord;
})();</script>

Verification (in Woo or API)

# curl example
curl -H "X-API-Key: ink_live_xxx" -F [email protected] https://ashtonx24-inkdna.hf.space/detect/guess

Proof-of-Work Sample

Use this public demo key on the Verify page to check our stamped sample.

Demo API key: demo_live_d12KIiDxdoLLScgy9Suexow3m9oFAAwS

Download BEFORE.pdf Download AFTER.pdf Open Verify

This key only works on AFTER.pdf and cannot mark.

API used by the loader

POST /claim

GET /fp?token=…

POST /events

Troubleshooting