nostriphant/nip-01

Nostr NIP-01 implementation in PHP

Maintainers

Package info

github.com/nostriphant/nip-01

pkg:composer/nostriphant/nip-01

Statistics

Installs: 1 654

Dependents: 5

Suggesters: 0

Stars: 0

Open Issues: 1

2.3.1 2026-02-16 18:26 UTC

This package is auto-updated.

Last update: 2026-02-16 18:27:17 UTC


README

Nostr NIP-01 implementation in PHP, currently this contains only the private/public key related code. This package requires the secp256k1-nostr-php extension to be installed. Follow their installation instructions first.

Key usage

use nostriphant\NIP01\Key;

$private_key = Key::fromHex('435790f13406085d153b10bd9e00a9f977e637f10ce37db5ccfc5d3440c12d6c');

$public_key = $private_key(Key::public());

$hash = hash('sha256', 'Hello World');
$signature = $private_key(Key::signer($hash));

if (Key::verify($public_key, $signature, $hash)) {
    echo 'Signature belongs to hash';
}

Message usage

use nostriphant\NIP01\Message;

$message = Message::count(1);
print $message; // prints "['COUNT',1]"

use nostriphant\NIP01\Message;
use nostriphant\NIP01\Event;

$rumor = new Rumor(
    pubkey: $sender_pubkey,
    created_at: time(),
    kind: 14,
    content: 'Hello!!',
    tags: [['p', $recipient_pubkey]]
);
$message = Message::event($rumor($private_key));
print $message; // prints "['EVENT',{...}]"