Pricing Marketplace P2P Encrypted Chat Desktop App Browser Extension
Upload a file

Creator Marketplace

Browse premium content from creators worldwide

Every file is encrypted end-to-end and securely delivered. Sellers keep 91% of every sale.

-- files for sale
-- creators
Starting at $--

Start Selling on FileShot

Set a price on any upload and start earning instantly. Zero-knowledge encryption protects your content until the buyer pays.

You keep 91%
End-to-end encrypted
Instant Stripe payouts
Set up in seconds

How it works: Upload any file, toggle "Sell this file" on, set your price (free or paid), and connect your Stripe account. Buyers pay securely through Stripe and your file is delivered instantly.

Upload & Sell Earnings Dashboard
'; iframe.className = 'mp-code-preview'; iframe.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:inherit;pointer-events:none;z-index:1;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)'; el.insertBefore(iframe, el.firstChild); } else if (ext === 'css' || ext === 'scss' || ext === 'less') { // CSS: extract color swatches + code var swatchDiv = document.createElement('div'); swatchDiv.className = 'mp-code-preview'; swatchDiv.style.cssText = 'position:absolute;inset:0;margin:0;padding:8px 10px;font-size:.55rem;line-height:1.4;color:rgba(255,255,255,.8);background:rgba(0,0,0,.6);overflow:hidden;border-radius:inherit;pointer-events:none;z-index:1;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)'; var colorRe = /(#(?:[0-9a-f]{3,8}))\b|(\brgba?\([^)]+\))|(\bhsla?\([^)]+\))/gi; var colors = [], seen = {}, cm; while ((cm = colorRe.exec(text)) !== null && colors.length < 16) { var cv = (cm[1] || cm[2] || cm[3]).toLowerCase(); if (!seen[cv]) { seen[cv] = 1; colors.push(cv); } } var swatchStr = ''; if (colors.length) { swatchStr = '
'; for (var ci = 0; ci < colors.length; ci++) { swatchStr += ''; } swatchStr += '
'; } var snippet = text.slice(0, 200).trim().replace(/&/g,'&').replace(//g,'>'); swatchDiv.innerHTML = swatchStr + '
' + snippet + '
'; el.insertBefore(swatchDiv, el.firstChild); } else { // Other text: raw code snippet var snippet = text.slice(0, 320).trim(); if (snippet) { var pre = document.createElement('pre'); pre.className = 'mp-code-preview'; pre.style.cssText = 'position:absolute;inset:0;margin:0;padding:10px 12px;font-size:.6rem;line-height:1.5;color:rgba(255,255,255,.8);background:rgba(0,0,0,.6);overflow:hidden;white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,monospace;border-radius:inherit;pointer-events:none;z-index:1;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)'; pre.textContent = snippet; el.insertBefore(pre, el.firstChild); } } } catch (textErr) { /* best-effort */ } } } catch(e) { /* best-effort */ } } mpThumbWorkerRunning = false; } function renderEmpty() { return '
' + '' + '

No files found

' + '

No paid files match your current filters. Be the first to list your files for sale.

' + 'Upload & Sell' + '
'; } function renderPagination(page, pages) { if (pages <= 1) return ''; var h = ''; h += ''; // Show page numbers (max 7) var start = Math.max(1, page - 3); var end = Math.min(pages, start + 6); if (end - start < 6) start = Math.max(1, end - 6); for (var i = start; i <= end; i++) { if (i === page) { h += ''; } else { h += ''; } } h += ''; return h; } function showLoading() { document.getElementById('mpGrid').innerHTML = '
Loading marketplace...
'; document.getElementById('mpPag').innerHTML = ''; } function loadMarketplace() { showLoading(); var url = API + '/files/marketplace?page=' + currentPage + '&sort=' + currentSort + '&type=' + currentType; if (currentQuery) url += '&q=' + encodeURIComponent(currentQuery); fetch(url) .then(function(r) { return r.json(); }) .then(function(data) { // Stats document.getElementById('statFiles').textContent = data.stats.totalFiles; document.getElementById('statSellers').textContent = data.stats.totalSellers; document.getElementById('statMinPrice').textContent = data.stats.minPrice === 0 ? 'Free' : '$' + data.stats.minPrice.toFixed(2); // Grid var grid = document.getElementById('mpGrid'); if (!data.files || data.files.length === 0) { document.getElementById('mpGrid').innerHTML = renderEmpty(); document.getElementById('mpPag').innerHTML = ''; return; } else { var html = ''; data.files.forEach(function(f, i) { html += renderCard(f, i); }); grid.innerHTML = html; // Staggered reveal requestAnimationFrame(function() { var cards = grid.querySelectorAll('.mp-card'); cards.forEach(function(card, idx) { setTimeout(function() { card.classList.add('in'); }, idx * 50); }); // Start ZKE thumbnail processing for seller's own files setTimeout(enqueueMarketplaceThumbJobs, 300); }); } // Pagination document.getElementById('mpPag').innerHTML = renderPagination(data.pagination.page, data.pagination.pages); }) .catch(function(err) { console.error('[Marketplace]', err); document.getElementById('mpGrid').innerHTML = renderEmpty(); document.getElementById('mpPag').innerHTML = ''; }); } // -- Event bindings -- // Type filter dropdown document.getElementById('mpTypeSelect').addEventListener('change', function() { currentType = this.value; currentPage = 1; loadMarketplace(); }); // Sort dropdown document.getElementById('mpSort').addEventListener('change', function() { currentSort = this.value; currentPage = 1; loadMarketplace(); }); // Search with debounce document.getElementById('mpSearch').addEventListener('input', function() { var val = this.value.trim(); clearTimeout(searchTimer); searchTimer = setTimeout(function() { currentQuery = val; currentPage = 1; loadMarketplace(); }, 350); }); // Pagination (global) window.mpPage = function(p) { if (p < 1) return; currentPage = p; loadMarketplace(); window.scrollTo({ top: document.getElementById('mpGrid').offsetTop - 100, behavior: 'smooth' }); }; // Initial load loadMarketplace(); })();