{"id":249264,"date":"2025-11-01T04:41:18","date_gmt":"2025-11-01T04:41:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/inkdna-fingerprinted-downloads\/"},"modified":"2025-11-01T04:45:03","modified_gmt":"2025-11-01T04:45:03","slug":"inkdna-fingerprinted-downloads","status":"publish","type":"plugin","link":"https:\/\/es.wordpress.org\/plugins\/inkdna-fingerprinted-downloads\/","author":23356330,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.1.4","stable_tag":"0.1.4","tested":"6.8.5","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"InkDNA \u2013 Fingerprinted Downloads","header_author":"InkDNA","header_description":"Per-buyer fingerprinting of WooCommerce downloadable files (PDF\/images). Integrates with Woo download flow and marks files via the InkDNA API.","assets_banners_color":"ffffff","last_updated":"2025-11-01 04:45:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/inkdnafingerprint.com\/docs.html","header_author_uri":"https:\/\/inkdnafingerprint.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":171,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.4":{"tag":"0.1.4","author":"ashton4321","date":"2025-11-01 04:45:03"}},"upgrade_notice":{"0.1.3":"<p>Configure <strong>Settings \u2192 InkDNA<\/strong> with your API Key. Downloads are fingerprinted automatically when buyers click. Verification is done outside WordPress (see docs).<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3387896,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3387896,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1156x652.png":{"filename":"banner-1156x652.png","revision":3387913,"resolution":"1156x652","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.4"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page with API Key field and domain registration notice.","2":"Order download links annotated for fingerprinting."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[5440,282,146995,600,3241],"plugin_category":[45,54],"plugin_contributors":[250073],"plugin_business_model":[],"class_list":["post-249264","plugin","type-plugin","status-publish","hentry","plugin_tags-downloads","plugin_tags-ecommerce","plugin_tags-fingerprinting","plugin_tags-security","plugin_tags-watermark","plugin_category-ecommerce","plugin_category-security-and-spam-protection","plugin_contributors-ashton4321","plugin_committers-ashton4321"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/inkdna-fingerprinted-downloads\/assets\/icon-128x128.png?rev=3387896","icon_2x":"https:\/\/ps.w.org\/inkdna-fingerprinted-downloads\/assets\/icon-256x256.png?rev=3387896","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Developer docs: https:\/\/inkdnafingerprint.com\/docs<\/p>\n\n<p>Adds an invisible, per-buyer fingerprint to each download\u2014no DRM.<\/p>\n\n<p><strong>Highlights<\/strong>\n* DRM-free: Buyers get normal PDFs\/images.\n* Per-buyer fingerprints: Embedded at download time.\n* Screenshot-resilient: Survives common transforms (marking PDFs; detecting PDFs &amp; images).\n* Privacy-aware: Marking happens server-side on your store. The plugin calls the InkDNA API from the server and writes a temporary marked copy locally.\n* Works with Woo downloadable products (no catalog changes).<\/p>\n\n<blockquote>\n  <p>This plugin uses a fixed InkDNA API base endpoint: https:\/\/ashtonx24-inkdna.hf.space<\/p>\n<\/blockquote>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to your InkDNA API from the server.<\/p>\n\n<p><strong>Service host<\/strong>\n- https:\/\/ashtonx24-inkdna.hf.space (API base)<\/p>\n\n<p><strong>What is sent (server \u2192 API)<\/strong>\n- For local product files: <code>POST \/mark<\/code> with the PDF file as multipart\/form-data.\n- For remote product URLs: <code>POST \/mark\/url<\/code> with JSON body <code>{ \"url\": \"&lt;source pdf url&gt;\" }<\/code>.\n- Headers on both requests: <code>X-Order-Id<\/code> (the WooCommerce order ID) and <code>X-API-Key<\/code> (set in Settings \u2192 InkDNA).<\/p>\n\n<p><strong>When it is sent<\/strong>\n- Only when a buyer initiates a download. The store server calls the InkDNA API, receives a fingerprinted PDF, stores it temporarily under <code>wp-content\/uploads\/inkdna-fingerprinted-downloads\/<\/code>, and serves that local file to the buyer.<\/p>\n\n<p><strong>What returns<\/strong>\n- A fingerprinted (marked) PDF, unique per order.<\/p>\n\n<p><strong>Service policies<\/strong>\n- Terms: https:\/\/inkdnafingerprint.com\/terms.html\n- Privacy: https:\/\/inkdnafingerprint.com\/privacy.html\n- Refunds: https:\/\/inkdnafingerprint.com\/refunds.html\n- EULA: https:\/\/inkdnafingerprint.com\/eula.html<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the ZIP and <strong>Activate<\/strong> the plugin.<\/li>\n<li>Go to <strong>Settings \u2192 InkDNA<\/strong> and set:\n\n<ul>\n<li><strong>API Key<\/strong> (the key assigned\/created for your shop)<\/li>\n<li>API Base (default https:\/\/ashtonx24-inkdna.hf.space) and your API Key. The plugin performs server-side marking on download.<\/li>\n<\/ul><\/li>\n<li>In WooCommerce, create a <strong>Downloadable<\/strong> product and attach a PDF.<\/li>\n<li>Place a test order and download. Each download is uniquely fingerprinted via the InkDNA loader + API.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='do%20i%20need%20an%20inkdna%20account%3F'><h3>Do I need an InkDNA account?<\/h3><\/dt>\n<dd><p>Yes \u2014 you or your tenant must have an InkDNA tenant and API Key. The plugin requires that API Key to enable stamping.<\/p><\/dd>\n<dt id='what%20file%20types%20are%20supported%3F'><h3>What file types are supported?<\/h3><\/dt>\n<dd><p><strong>Marking:<\/strong> PDFs<br \/>\n<strong>Detecting:<\/strong> PDFs and images (PNG\/JPEG) \u2014 <strong>handled outside WordPress<\/strong> (see \u201cHow do I verify a leak?\u201d).<\/p><\/dd>\n<dt id='file%20size%20limits%3F'><h3>File size limits?<\/h3><\/dt>\n<dd><p>Server defaults typically allow ~25\u2013100 MB (configurable). WordPress\/PHP upload limits may also apply.<\/p><\/dd>\n<dt id='is%20this%20drm%3F'><h3>Is this DRM?<\/h3><\/dt>\n<dd><p>No. Files remain standard PDFs\/images. We embed a robust, invisible fingerprint so you can attribute leaks even after edits\/screenshots.<\/p><\/dd>\n<dt id='does%20this%20store%20my%20files%20or%20customer%20data%3F'><h3>Does this store my files or customer data?<\/h3><\/dt>\n<dd><p>The plugin stores a temporary, per-order fingerprinted PDF under wp-content\/uploads\/inkdna-fingerprinted-downloads\/ in order to serve the download. No API keys are exposed to the browser.<\/p><\/dd>\n<dt id='how%20do%20i%20verify%20a%20leak%3F'><h3>How do I verify a leak?<\/h3><\/dt>\n<dd><p>Use the <strong>Verify<\/strong> page at your InkDNA endpoint (e.g., <code>\/verify.html<\/code>) or the hosted verification tool documented at https:\/\/inkdnafingerprint.com\/docs. Upload the suspect file and review the signed evidence JSON.<\/p><\/dd>\n<dt id='caching%2Fcdn%3F'><h3>Caching\/CDN?<\/h3><\/dt>\n<dd><p>Do not CDN-cache the API responses; each PDF is unique per buyer. Re-downloads use the local marked copy cached by the plugin in <code>\/wp-content\/uploads\/inkdna-fingerprinted-downloads\/<\/code>.<\/p><\/dd>\n<dt id='do%20i%20have%20to%20send%20an%20order%20id%3F'><h3>Do I have to send an Order ID?<\/h3><\/dt>\n<dd><p>Yes. The fingerprint is bound to the order identifier. If omitted at marking time, later verification can still estimate but won\u2019t be provable to a specific purchase.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Documentation sync and upload-path fix.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Marking-only plugin: removed in-admin verification to keep the extension lean and review-safe.<\/li>\n<li>Fixed API base <code>https:\/\/ashtonx24-inkdna.hf.space<\/code>; marking is performed server-side (no client loader required).<\/li>\n<li>Updated docs and external-services section for transparency.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Added \u201cExternal services\u201d section and developer docs link.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Minor copy updates.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: per-buyer fingerprinting via external API.<\/li>\n<\/ul>","raw_excerpt":"Per-buyer fingerprints for downloads (PDF\/images). DRM-free and screenshot-resilient. WooCommerce compatible.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/249264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=249264"}],"author":[{"embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ashton4321"}],"wp:attachment":[{"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=249264"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=249264"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=249264"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=249264"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=249264"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=249264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}