project screenshot 1
project screenshot 2
project screenshot 3

0xbsidian

0xbsidian is an obsidian plugin that enables collaboration on documents by on chain identities. Doc data are content-adressed, stored and encrypted with LIT.

0xbsidian

Created At

HackFS 2024

Winner of

Lit Protocol - Participation Prize

Prize Pool

Filecoin - Honorable Mentions

Prize Pool

Project Description

Obsidian is an elegantly designed note-taking app with a thriving community plugin system. The 0xbsidian plugin enables collaboration on files within a 'pod' using content-addressed storage, a blockchain for anchoring the current state and administering permissions, and Lit Protocol for encryption.

P2P file sharing is unreliable without a network that stores data independently of human peers being online. IPFS and Filecoin are well-suited to provide this support.

Lit Protocol encryption is a great fit for this use case, as it allows for including and excluding users without re-encrypting the data.

I appreciate the combination of these three protocols, each addressing specific concerns. However, hybrid, multi-purpose tools built on top of them tend to create lock-in.

Overall, Obsidian offers a wonderful UX for a subset of users, with its templating and "frontmatter" capabilities. This could potentially extend into document management, content management, and more.

How it's Made

Blockchain I opted for Arbitrum Sepolia. Smart Contracts have been deployed for a factory to create modular smart contracts - following account abstraction best practices. In addition there is a factory to create contracts for a 'pod' that is the folder structure that is being shared and collaborated upon.

I tried to deploy my own IPC subnet locally, but abandoned due to time constraints. Using IPC would be great as the pod contract would then be able to negotiate its own (aggregated) storage deal.

Storage I ended up using a self hosted kubo node. I tried Lighthouse, but that is a pinning service plus the podsi /aggregated deals management, which i would want to explore setting up myself. These pinning services don't fit my use case as the only way to get data out is through a gateway. That is nice for serving the web, but not for file sharing or as a data layer for dapps.

LIT Unfortunately, i couldn't finish it in time. Very late i found out that the access controls do not support Arbitrum Sepolia where my contracts are. I will deploy to Sepolia and proceed, but making the demo has priority now. The pod includes the access controls, so they're send along to be used by the newly invited users. These user addresses are included within the pod contract.

background image mobile

Join the mailing list

Get the latest news and updates