Skip to content

Hanssen0/nostr-binding

 
 

Repository files navigation

Nostr binding on CKB

Warning

This repository is still in the proof-of-concept stage.

This repository contains the scripts for the Nostr binding protocol on CKB. A special Nostr event(Nostr asset Event) is binding on a corresponding unique Cell on CKB, making only one Nostr account owning the Nostr asset Event.

We also build a very simple POC demo of the Nostr binding protocol in the /app directory. Check out the README.md about how to run it.

Docs

A short presentation for the Bitcoin hackathon to explain the idea of the Nostr binding protocol

Light paper to describe the Nostr binding protocol

Spec for implementation

Run Demo

On Testnet

Just start the dApp:

cd app/nostr-mint
npm i && NETWORK=testnet npm run dev 

Or visit: nostr-binding.vercel.app

On Local Devnet

1. Start Devnet

offckb node

Required offckb version >= 0.2.2

2. Prepare Scripts

The following dependencies are required for building the Scripts:

  • git, make, sed, bash, sha256sum and others Unix utilities. Refer to the documentation for your operating systems for how to install them. Chances are your system might already have them.
  • Rust: Rust 1.75 installed via rustup should work. Make sure you have riscv64 target installed via: rustup target add riscv64imac-unknown-none-elf
  • Clang: make sure you have clang 16+(18 is recommended) installed, sample installation steps for selected platforms are:
    • Debian / Ubuntu: wget https://apt.llvm.org/llvm.sh && chmod +x llvm.sh && sudo ./llvm.sh 18 && rm llvm.sh
    • Fedora 39+: sudo dnf -y install clang
    • Archlinux: sudo pacman --noconfirm -Syu clang
    • macOS: brew install llvm@18
    • Windows(with [Scoop](scoop install llvm yasm)): scoop install llvm yasm

Run the following commands to build the Scripts:

make build

The script binaries are located in build/release

cd build/release && ls -hl && cd ../..

> total 704
> -rwxr-xr-x  1 staff   170K Jun 28 11:32 nostr-binding
> -rwxr-xr-x  1 staff   176K Jun 28 11:32 nostr-lock

Reproducible build via docker:

bash scripts/reproducible_build_docker

Deploy reproducible binaries on testnet and mainnet.

3. Deploy Scripts

cd app/nostr-mint
offckb deploy --network devnet

The deployed script info is auto-updated in the offckb.config.ts file in the app so you can use it directly.

4. Start the DApp

cd app/nostr-mint
npm i && NETWORK=devnet npm run dev 

5. Deposit CKB to Nostr Account

offckb deposit --network devnet <Your-nostr-account-corresponding-address> <AmountInShannon>

This workspace was bootstrapped with ckb-script-templates.

About

connect blockchain with nostr

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 47.7%
  • TypeScript 41.0%
  • Makefile 6.5%
  • Shell 3.2%
  • JavaScript 1.6%