A cli util for generating nostr events
Go to file
@RandyMcMillan 44787b4a86 .github/workflows/c-cpp.yml: init config 2022-11-21 10:31:59 -08:00
.github/workflows .github/workflows/c-cpp.yml: init config 2022-11-21 10:31:59 -08:00
deps embed libsecp256k1 build 2022-08-08 15:46:36 -07:00
devtools Add missing file 2022-08-09 07:51:04 -07:00
scripts scripts/nostr-query/relay-note: update relay to wss://relay.damus.io 2022-08-16 11:48:49 -07:00
.envrc direnv envrc 2022-07-13 10:40:33 -07:00
.gitignore direnv envrc 2022-07-13 10:40:33 -07:00
.gitmodules embed libsecp256k1 build 2022-08-08 15:46:36 -07:00
COPYING add license 2022-08-17 07:53:45 -07:00
Makefile o p t i m i z e 2022-08-30 08:10:40 -07:00
README.md readme: add a few more examples 2022-09-07 08:33:15 -07:00
aes.c encrypted dms 2022-04-14 19:30:27 -07:00
aes.h encrypted dms 2022-04-14 19:30:27 -07:00
base64.c encrypted dms 2022-04-14 19:30:27 -07:00
base64.h encrypted dms 2022-04-14 19:30:27 -07:00
compiler.h initial commit 2022-04-14 07:52:29 -07:00
configurator.c initial commit 2022-04-14 07:52:29 -07:00
cursor.h initial commit 2022-04-14 07:52:29 -07:00
default.nix nix build 2022-04-20 17:15:25 -07:00
endian.h initial commit 2022-04-14 07:52:29 -07:00
hex.h initial commit 2022-04-14 07:52:29 -07:00
nostril.c add mine-pubkey to docs 2022-10-20 11:34:17 -07:00
proof.h add proof-of-work mining 2022-04-15 10:30:52 -07:00
random.h encrypted dms 2022-04-14 19:30:27 -07:00
sha256.c initial commit 2022-04-14 07:52:29 -07:00
sha256.h initial commit 2022-04-14 07:52:29 -07:00
shell.nix add --mine-pubkey 2022-08-28 14:34:58 -07:00

README.md

nostril

A cli util for creating nostr events

Installation

Fedora

$ sudo dnf install libtool automake
$ make

# Optional - install to system PATH

$ sudo make install

Usage

usage: nostril [OPTIONS]

  OPTIONS

      --content                       the content of the note
      --dm <hex pubkey>               make an encrypted dm to said pubkey. sets kind and tags.
      --envelope                      wrap in ["EVENT",...] for easy relaying
      --kind <number>                 set kind
      --created-at <unix timestamp>   set a specific created-at time
      --sec <hex seckey>              set the secret key for signing, otherwise one will be randomly generated
      --pow <difficulty>              number of leading 0 bits of the id to mine
      --tag <key> <value>             add a tag
      -e <event_id>                   shorthand for --tag e <event_id>
      -p <pubkey>                     shorthand for --tag p <pubkey>

Examples

Generate an event:

$ ./nostril --sec <key> --content "this is a message"
{
  "id": "da9c36bb8206e748cf136af2a43613a5ee113cb5906a09a8d3df5386039d53ab",
  "pubkey": "4f6fa8547cf2888415522918175ea0bc0eb473287c5bd7cc459ca440bdf87d97",
  "created_at": 1660750302,
  "kind": 1,
  "tags": [],
  "content": "this is a message",
  "sig": "3e4d7d93522e54f201a22944d4d37eb4505ef1cf91c278a3f7d312b772a6c6509d1e11f146d5a003265ae10411a20057bade2365501872d2f2f24219730eed87"
}

Wrap event to send to a relay:

$ ./nostril --envelope --sec <key> --content "hello"
[
  "EVENT",
  {
    "id": "ed378d3fdda785c091e9311c6e6eeb075db349a163c5e38de95946f6013a8001",
    "pubkey": "fd3fdb0d0d8d6f9a7667b53211de8ae3c5246b79bdaf64ebac849d5148b5615f",
    "created_at": 1649948103,
    "kind": 1,
    "tags": [],
    "content": "hello",
    "sig": "9d9a49bbc66d4782030b24c71416965e790214d02a54ab132d960c2b02def0371c3d93e5a60a285c55e99721599d1332450731e2c6bb1114b96b591c6967f872"
  }
]

Send to a relay:

$ ./nostril --envelope --sec <key> --content "this is a message" | websocat wss://relay.damus.io

Send a nip04 DM:

$ ./nostril --envelope --dm <pubkey> --sec <key> --content "this is a secret" | websocat wss://relay.damus.io

Mine a pubkey:

$ ./nostril --mine-pubkey --pow <difficulty>

Reply to an event. nip10 compliant, includes the thread_id:

$ ./nostril --envelope --sec <key> --content "this is reply message" --tag e <thread_id> --tag e <note_id> | websocat wss://relay.damus.io