Introduction
Project Name: DecentraTransfer
Submitting Individual: Seifeddine Seghaier
I am an independent developer with expertise in React, Node.js, and Python, specifically focused on privacy, encryption, and decentralized data handling. DecentraTransfer will be my first project built on the Sia ecosystem, utilizing my background in IT development to create a robust, user-centric utility.
Project Overview
DecentraTransfer is a self-hostable web application for sharing files. It mirrors the convenience of services like WeTransfer but replaces centralized company servers with the Sia network.
The workflow is simple: a user drops a file into the browser, the file is encrypted locally on their device, and it is then uploaded to Sia via the official Storage SDK. The user receives a share link containing the decryption key in the URL fragment. Access can be time-limited using native SDK expirations or further secured with a password-derived key layer.
The MVP will include:
-
File uploads and pinning via the Sia Storage SDK Python.
-
Zero-Knowledge Encryption: AES-256-GCM in-browser encryption.
-
Client-Side Key Management: Decryption keys reside in the URL fragment, ensuring they are never sent to the server.
-
Performance Optimization: Use of Web Workers to handle cryptographic operations without freezing the UI.
-
Password Protection: Optional PBKDF2-derived key layering.
-
Self-Hosting Suite: A Docker-ready FastAPI backend for single-operator deployment.
Mission Alignment
Most file-sharing services require users to trust a central provider with their data. DecentraTransfer eliminates this requirement by ensuring the server operator never sees the plaintext or the keys. This architecture perfectly aligns with the Foundation’s mission of user-owned data. By combining browser-level encryption with Sia’s decentralized storage, DecentraTransfer ensures that even if an instance is compromised, the user’s data remains private and accessible only to those with the link.
Why This Fits the indexd Direction
DecentraTransfer is built directly on the new Sia Storage SDK, following the officially supported integration path. It offers a distinct deployment model compared to existing tools: it is designed for an operator to run their own private instance. Furthermore, it introduces a unique password-protection layer not found in similar client-side-only proposals, providing a meaningful difference for high-security use cases.
Grant Specifics
Total requested funding: $7,200 USD
| Timeline | Budget | Milestones & Deliverables |
|---|---|---|
| Month 1 | $2,400 |
Backend & SDK Integration • Implement indexer onboarding flow and secure App Key storage. • Develop core upload/download orchestration using the Sia Python SDK. • Deliverable: Functional API for pinning and sharing objects on the Sia network. |
| Month 2 | $2,400 |
Cryptography & Performance • Implement AES-256-GCM in-browser encryption via Web Crypto API. • Integrate Web Workers for multi-threaded encryption of large files. • Build password-derived key layer (PBKDF2) for wrapped key security. • Deliverable: End-to-end Zero-Knowledge encryption loop. |
| Month 3 | $2,400 |
Frontend, UX & Public Release • Build React/Tailwind dashboard with drag-and-drop interface. • Implement real-time progress tracking and URL-fragment link generation. • Develop recipient "Download & Decrypt" landing page. • Dockerize the full stack, write documentation, and conduct final security audits. • Deliverable: Live instance and open-source release. |
Timeline: 3 Months.
High-Level Architecture
-
Client Layer: A React interface that handles local encryption via Web Workers. This offloads heavy math from the main thread, keeping the UI at 60 FPS.
-
Application Layer: A FastAPI backend that orchestrates Sia SDK calls (upload, pin_object, share_object). It handles metadata but never the decryption keys.
-
Storage Layer: The Sia network, providing erasure-coded storage across independent providers.
Security Practices
-
URL Fragment Protection: Decryption keys are placed in the URL hash (#), which browsers never transmit in HTTP requests.
-
Double Layer Encryption: Data is encrypted in the browser (AES-256-GCM) before being further encrypted and sharded by the Sia SDK.
-
Password Layering: Optional password-derived key (PBKDF2) wraps the file key for multi-factor link security.
-
Secure Onboarding: Follows official SDK approval flows; the recovery phrase is never stored by the application.
Potential Risks
- Resource Constraints: Large file processing will be managed through Web Workers and chunked processing to prevent browser memory exhaustion.
Development Information
-
Open Source: Yes, MIT License.
-
Repository: https://github.com/Seghaier-dev/DecentraTransfer
-
Reports: I agree to submit monthly progress reports.
Contact Information
-
Email: [email protected]
-
GitHub: Seghaier-dev
-
Sia Forum: @Seghaier-Seifeddine