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.
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
Just start the dApp:
cd app/nostr-mint
npm i && NETWORK=testnet npm run dev
Or visit: nostr-binding.vercel.app
offckb node
Required offckb version >= 0.2.2
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 haveriscv64
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
- Debian / Ubuntu:
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.
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.
cd app/nostr-mint
npm i && NETWORK=devnet npm run dev
offckb deposit --network devnet <Your-nostr-account-corresponding-address> <AmountInShannon>
This workspace was bootstrapped with ckb-script-templates.