Nostric
Simple Nostr client running on the ICP. Using vetkeys for secure storing private keys on-chain.
Install / Use
/learn @nostric-devs/NostricREADME
Nostric
Nostric is yet a very simple Nostr client running on the Internet Computer Protocol (ICP). We started this project as a submission to the Vetkey challenge bounty released by the DFINITY foundation. The main idea is to store Nostr private keys encrypted in the backend of the application. This makes managing private keys secure and also improves UX as an user does not need to use any Chrome extensions to sign posts.
However, there we see more synergies between Nostr and ICP and it would be great to continue with this project to deliver a fully featured Nostr client and eventually relay server as well.
Supported features
Our client currently supports these features:
- Generate PK, SK
- Create a profile
- Update profile
- NIP-01 kind:1 Post publish
- NIP-01 kind:0 User Metadata publish
Canisters
Current architecture consists of 4 canisters for local development:
- frontend canister
- backend canister
- vetkd_system_api canister
- internet identity canister (for local developlment only)
Deploy locally
- Get a clone of this repository:
git clone https://github.com/lukasvozda/nostric.git
- Install DFX and install Mops
- Run npm install to install JS dependencies:
npm install
- Start your local replica:
dfx start --clean
- Now run in the new shell execute the deploy script (if you are going to deploy it locally also run script to deploy
ckbtc_ledgercanister):
bash deploy-local-ckbtc.sh
dfx deploy
If your src/declarations folder does not create run:
dfx generate
- Run your development server:
npm run dev
Related Skills
himalaya
346.4kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
346.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
taskflow
346.4kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
frontend-design
107.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
