Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

zeemscript/block-roll

DevOps & Self-hosting

A self-hosted, non-custodial file storage and sharing platform with Stellar payments and on-chain file notarization.

160
157
TypeScript
1 day old

What it is

BlockRoll is a file storage and sharing product built around user-held control: files are encrypted, sharing is configured per file, and authentication is wallet-based. Alongside storage, it adds two Stellar-backed features: a premium plan paid in USDC through the Freighter wallet, and a "File Notary" that hashes a file locally and writes the hash to Stellar with a ManageData operation, so anyone can later re-hash the file and check the on-chain record.

The repository bundles a Next.js frontend, a TypeScript/Express server with REST and WebSocket endpoints, Solidity contracts managed with Foundry, a WhatsApp FAQ bot powered by Google Gemini, and a small SDK suite (React, Vue, CDN). It targets developers who want to run or extend a file-storage service rather than end users looking for a hosted product.

Getting started

Prerequisites are Node.js v18+, Foundry, MongoDB, and a Web3 wallet; the WhatsApp bot additionally needs a Gemini API key. Install dependencies module by module:

cd contracts && forge install
cd ../clients && npm install
cd ../server && npm install && cp .env.example .env
cd ../whatsapp && npm install && cp env.example .env
cd ../blockroll-kit && npm install

Configure server/.env with MongoDB, JWT and BlockDAG settings, and add GEMINI_API_KEY to the WhatsApp env file. Then run the parts you need:

cd contracts && forge test
cd ../clients && npm run dev
cd ../server && npm run dev
cd ../whatsapp && npm run dev

The first WhatsApp start requires scanning a QR code. For Stellar settings, the frontend uses new-frontend/.env.example and currently runs on Testnet. Note that the README's install steps reference a clients directory while the Stellar code lives under new-frontend, so the exact frontend entry point should be confirmed in the repository before starting.

Using the SDKs

The React SDK exposes a hook: const { uploadFile } = useBlockRoll(); await uploadFile({ file, accessType: 'private' });. A CDN bundle is also advertised via a <script> tag with an API key passed to the BlockRoll constructor. API keys are tied to a wallet; documentation is spread across the kit's design, architecture and example files.

Constraints

  • Requires self-managed MongoDB, a configured server environment and deployed contracts; this is not a drop-in hosted service.
  • Stellar payments and notarization are currently on Testnet; production use would require switching network and keys.
  • No license is declared in the repository, so redistribution and commercial use terms are unclear.
  • The README's security claims ("bank-level", a 95/100 rating) are the author's own characterization and not independently verified here.

HotRepo's take

BlockRoll was recorded on the TypeScript new-project list on 2026-11-05, showing 160 stars and 158 forks, with the full reported gain occurring within roughly the first half-day of that window. That fork-to-star ratio is unusual for a project this young and often corresponds to template-based or automated activity rather than organic adoption, so the numbers should not be read as evidence of a real user base. The substantive part is the combination of client-side Stellar hashing for notarization and a wallet-signed USDC payment flow, both of which are concrete and locally inspectable in the repository.

Project source and documentation

Written by AI from the project's README, updated . The project's own docs are the source of truth.