Skip to main content
Works with
This package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
This package works with Browsers
JSR Score70%
License
Unlicense
Downloads348/wk
Published2 months ago (2.23.3)

Tools for developing Nostr clients.

Classes

c
nip77.Negentropy(
storage: NegentropyStorageVector,
frameSizeLimit?: number
)
No documentation available
  • _bound(
    timestamp: number,
    id?: Uint8Array
    ): { timestamp: number; id: Uint8Array; }
    No documentation available
  • decodeBound(encoded: WrappedBuffer): { timestamp: number; id: Uint8Array; }
    No documentation available
  • decodeTimestampIn(encoded: WrappedBuffer): number
    No documentation available
  • encodeBound(key: { timestamp: number; id: Uint8Array; }): WrappedBuffer
    No documentation available
  • encodeTimestampOut(timestamp: number): WrappedBuffer
    No documentation available
  • exceededFrameSizeLimit(n: number): boolean
    No documentation available
  • No documentation available
  • getMinimalBound(
    prev: { timestamp: number; id: Uint8Array; },
    curr: { timestamp: number; id: Uint8Array; }
    ): { timestamp: number; id: Uint8Array; }
    No documentation available
  • initiate(): string
    No documentation available
  • No documentation available
  • No documentation available
  • reconcile(
    queryMsg: string,
    onhave?: (id: string) => void,
    onneed?: (id: string) => void
    ): string | null
    No documentation available
  • splitRange(
    lower: number,
    upper: number,
    upperBound: { timestamp: number; id: Uint8Array; },
    o: WrappedBuffer
    ): void
    No documentation available
  • storage: NegentropyStorageVector
    No documentation available
c
No documentation available
  • _binarySearch(
    arr: { timestamp: number; id: Uint8Array; }[],
    first: number,
    last: number,
    cmp: (a: { timestamp: number; id: Uint8Array; }) => boolean
    ): number
    No documentation available
  • _checkBounds(
    begin: number,
    end: number
    ): void
    No documentation available
  • _checkSealed(): void
    No documentation available
  • findLowerBound(
    begin: number,
    end: number,
    bound: { timestamp: number; id: Uint8Array; }
    ): number
    No documentation available
  • fingerprint(
    begin: number,
    end: number
    ): Uint8Array
    No documentation available
  • getItem(i: number): { timestamp: number; id: Uint8Array; }
    No documentation available
  • insert(
    timestamp: number,
    id: string
    ): void
    No documentation available
  • items: { timestamp: number; id: Uint8Array; }[]
    No documentation available
  • iterate(
    begin: number,
    end: number,
    cb: (
    item: { timestamp: number; id: Uint8Array; },
    i: number
    ) => boolean
    ): void
    No documentation available
  • seal(): void
    No documentation available
  • sealed: boolean
    No documentation available
  • size(): number
    No documentation available
  • unseal(): void
    No documentation available
c
nip77.NegentropySync(
relay: AbstractRelay,
storage: NegentropyStorageVector,
filter: Filter,
params?: { label?: string; onhave?: (id: string) => void; onneed?: (id: string) => void; onclose?: (errReason?: string) => void; }
)
No documentation available
  • close(): void
    No documentation available
  • filter: Filter
    No documentation available
  • neg: Negentropy
    No documentation available
  • onhave: (id: string) => void
    No documentation available
  • onneed: (id: string) => void
    No documentation available
  • relay: AbstractRelay
    No documentation available
  • start(): Promise<void>
    No documentation available
  • storage: NegentropyStorageVector
    No documentation available
  • subscription: Subscription
    No documentation available
c
Relay(
url: string,
options?: Pick<
AbstractRelayConstructorOptions,
"enablePing" | "enableReconnect"
>
)
No documentation available
  • connect(
    url: string,
    options?: Pick<
    AbstractRelayConstructorOptions,
    "enablePing" | "enableReconnect"
    >
    ): Promise<Relay>
    No documentation available
c
SimplePool(options?: Pick<
AbstractPoolConstructorOptions,
"enablePing" | "enableReconnect"
>
)
No documentation available

Functions

f
fj.getHex64(
json: string,
field: string
): string
No documentation available
f
fj.getInt(
json: string,
field: string
): number
No documentation available
f
fj.getSubscriptionId(json: string): string | null
No documentation available
f
fj.matchEventId(
json: string,
id: string
): boolean
No documentation available
f
fj.matchEventKind(
json: string,
kind: number
): boolean
No documentation available
f
fj.matchEventPubkey(
json: string,
pubkey: string
): boolean
No documentation available
f
getEventHash(event: UnsignedEvent): string
No documentation available
f
getFilterLimit(filter: Filter): number

Calculate the intrinsic limit of a filter. This function returns a positive integer, or Infinity if there is no intrinsic limit.

f
kinds.classifyKind(kind: number): KindClassification

Determine the classification of this kind of event if known, or unknown.

f
kinds.isAddressableKind(kind: number): boolean

Events are addressable, which means that, for each combination of pubkey, kind and the d tag, only the latest event is expected to be stored by relays, older versions are expected to be discarded.

f
kinds.isEphemeralKind(kind: number): boolean

Events are ephemeral, which means they are not expected to be stored by relays.

f
kinds.isKind<T extends number>(
event: unknown,
kind: T | Array<T>
): event is NostrEvent & { kind: T; }
No documentation available
f
kinds.isRegularKind(kind: number): boolean

Events are regular, which means they're all expected to be stored by relays.

f
kinds.isReplaceableKind(kind: number): boolean

Events are replaceable, which means that, for each combination of pubkey and kind, only the latest event is expected to (SHOULD) be stored by relays, older versions are expected to be discarded.

f
matchFilter(
filter: Filter,
event: Event
): boolean
No documentation available
f
matchFilters(
filters: Filter[],
event: Event
): boolean
No documentation available
f
mergeFilters(...filters: Filter[]): Filter
No documentation available
f
nip04.decrypt(
secretKey: string | Uint8Array,
pubkey: string,
data: string
): string
No documentation available
f
nip04.encrypt(
secretKey: string | Uint8Array,
pubkey: string,
text: string
): string
No documentation available
f
nip05.isNip05(value?: string | null): value is Nip05
No documentation available
f
nip05.isValid(
pubkey: string,
nip05: Nip05
): Promise<boolean>
No documentation available
f
nip05.queryProfile(fullname: string): Promise<ProfilePointer | null>
No documentation available
f
nip05.searchDomain(
domain: string,
query?: string
): Promise<{ [name: string]: string; }>
No documentation available
f
nip05.useFetchImplementation(fetchImplementation: unknown): void
No documentation available
f
nip10.parse(event: Pick<Event, "tags">): { root: EventPointer | undefined; reply: EventPointer | undefined; mentions: EventPointer[]; quotes: EventPointer[]; profiles: ProfilePointer[]; }
No documentation available
f
nip11.fetchRelayInformation(url: string): Promise<RelayInformation>
No documentation available
f
nip11.useFetchImplementation(fetchImplementation: any): void
No documentation available
f
nip13.getPow(hex: string): number

Get POW difficulty from a Nostr hex ID.

f
nip13.minePow(
unsigned: UnsignedEvent,
difficulty: number
): Omit<Event, "sig">

Mine an event with the desired POW. This function mutates the event. Note that this operation is synchronous and should be run in a worker context to avoid blocking the main thread.

f
nip17.wrapEvent(
senderPrivateKey: Uint8Array,
recipient: Recipient,
message: string,
conversationTitle?: string,
replyTo?: ReplyTo
): NostrEvent
No documentation available
f
nip17.wrapManyEvents(
senderPrivateKey: Uint8Array,
recipients: Recipient[],
message: string,
conversationTitle?: string,
replyTo?: ReplyTo
): NostrEvent[]
No documentation available
f
nip18.finishRepostEvent(
t: RepostEventTemplate,
reposted: Event,
relayUrl: string,
privateKey: Uint8Array
): Event
No documentation available
f
nip18.getRepostedEvent(
event: Event,
unnamed 1?: GetRepostedEventOptions
): undefined | Event
No documentation available
f
nip18.getRepostedEventPointer(event: Event): undefined | EventPointer
No documentation available
f
nip19.decode(code: string): DecodedResult
7 overloads
No documentation available
f
nip19.decodeNostrURI(nip19code: string): ReturnType<decode> | { type: "invalid"; data: null; }
No documentation available
f
nip19.encodeBytes<Prefix extends string>(
prefix: Prefix,
bytes: Uint8Array
): `${Prefix}1${string}`
No documentation available
f
nip19.naddrEncode(addr: AddressPointer): NAddr
No documentation available
f
nip19.neventEncode(event: EventPointer): NEvent
No documentation available
f
nip19.noteEncode(hex: string): Note
No documentation available
f
nip19.nprofileEncode(profile: ProfilePointer): NProfile
No documentation available
f
nip19.npubEncode(hex: string): NPub
No documentation available
f
nip19.nsecEncode(key: Uint8Array): NSec
No documentation available
f
nip21.parse(uri: string): NostrURI

Parse and decode a Nostr URI.

f
nip21.test(value: unknown): value is `nostr:${string}`

Test whether the value is a Nostr URI.

f
nip25.finishReactionEvent(
t: ReactionEventTemplate,
reacted: Event,
privateKey: Uint8Array
): Event
No documentation available
f
nip25.getReactedEventPointer(event: Event): undefined | EventPointer
No documentation available
f
nip27.parse(content: string | NostrEvent): Iterable<Block>
No documentation available
f
nip28.channelCreateEvent(
t: ChannelCreateEventTemplate,
privateKey: Uint8Array
): Event | undefined
No documentation available
f
nip28.channelHideMessageEvent(
t: ChannelHideMessageEventTemplate,
privateKey: Uint8Array
): Event | undefined
No documentation available
f
nip28.channelMessageEvent(
t: ChannelMessageEventTemplate,
privateKey: Uint8Array
): Event
No documentation available
f
nip28.channelMetadataEvent(
t: ChannelMetadataEventTemplate,
privateKey: Uint8Array
): Event | undefined
No documentation available
f
nip28.channelMuteUserEvent(
t: ChannelMuteUserEventTemplate,
privateKey: Uint8Array
): Event | undefined
No documentation available
f
nip30.matchAll(content: string): Iterable<CustomEmojiMatch>

Find all custom emoji shortcodes.

f
nip30.regex(): RegExp

Regex to find emoji shortcodes in content.

f
nip30.replaceAll(
content: string,
replacer: (match: CustomEmoji) => string
): string

Replace all emoji shortcodes in the content.

f
nip39.useFetchImplementation(fetchImplementation: any): void
No documentation available
f
nip39.validateGithub(
pubkey: string,
username: string,
proof: string
): Promise<boolean>
No documentation available
f
nip42.makeAuthEvent(
relayURL: string,
challenge: string
): EventTemplate

creates an EventTemplate for an AUTH event to be signed.

f
nip44.decrypt(
payload: string,
conversationKey: Uint8Array
): string
No documentation available
f
nip44.encrypt(
plaintext: string,
conversationKey: Uint8Array,
nonce?: Uint8Array
): string
No documentation available
f
nip44.getConversationKey(
privkeyA: Uint8Array,
pubkeyB: string
): Uint8Array
No documentation available
f
nip47.makeNwcRequestEvent(
pubkey: string,
secretKey: Uint8Array,
invoice: string
): Promise<VerifiedEvent>
No documentation available
f
nip47.parseConnectionString(connectionString: string): NWCConnection
No documentation available
f
nip54.normalizeIdentifier(name: string): string
No documentation available
f
nip57.getSatoshisAmountFromBolt11(bolt11: string): number
No documentation available
f
nip57.getZapEndpoint(metadata: Event): Promise<null | string>
No documentation available
f
nip57.makeZapReceipt(unnamed 0: { zapRequest: string; preimage?: string; bolt11: string; paidAt: Date; }): EventTemplate
No documentation available
f
nip57.makeZapRequest(params: ProfileZap | EventZap): EventTemplate
No documentation available
f
nip57.useFetchImplementation(fetchImplementation: any): void
No documentation available
f
nip57.validateZapRequest(zapRequestString: string): string | null
No documentation available
f
nip59.createRumor(
event: Partial<UnsignedEvent>,
privateKey: Uint8Array
): Rumor
No documentation available
f
nip59.createSeal(
rumor: Rumor,
privateKey: Uint8Array,
recipientPublicKey: string
): NostrEvent
No documentation available
f
nip59.createWrap(
seal: NostrEvent,
recipientPublicKey: string
): NostrEvent
No documentation available
f
nip59.unwrapEvent(
wrap: NostrEvent,
recipientPrivateKey: Uint8Array
): Rumor
No documentation available
f
nip59.unwrapManyEvents(
wrappedEvents: NostrEvent[],
recipientPrivateKey: Uint8Array
): Rumor[]
No documentation available
f
nip59.wrapEvent(
event: Partial<UnsignedEvent>,
senderPrivateKey: Uint8Array,
recipientPublicKey: string
): NostrEvent
No documentation available
f
nip59.wrapManyEvents(
event: Partial<UnsignedEvent>,
senderPrivateKey: Uint8Array,
recipientsPublicKeys: string[]
): NostrEvent[]
No documentation available
f
nip98.getToken(
loginUrl: string,
httpMethod: string,
sign: (e: EventTemplate) => Promise<Event> | Event,
includeAuthorizationScheme?: boolean,
payload?: Record<string, any>
): Promise<string>

Generate token for NIP-98 flow.

f
nip98.hashPayload(payload: any): string

Calculates the hash of a payload.

f
nip98.unpackEventFromToken(token: string): Promise<Event>

Unpacks an event from a token.

f
nip98.validateEvent(
event: Event,
url: string,
method: string,
body?: any
): Promise<boolean>

Validates a Nostr event for the NIP-98 flow.

f
nip98.validateEventKind(event: Event): boolean

Validates the kind of an event.

f
nip98.validateEventMethodTag(
event: Event,
method: string
): boolean

Validates if the given event has a method tag that matches the specified method.

f
nip98.validateEventPayloadTag(
event: Event,
payload: any
): boolean

Validates the event payload tag against the provided payload.

f
nip98.validateEventTimestamp(event: Event): boolean

Validates the timestamp of an event.

f
nip98.validateEventUrlTag(
event: Event,
url: string
): boolean

Validates if the given URL matches the URL tag of the event.

f
nip98.validateToken(
token: string,
url: string,
method: string
): Promise<boolean>

Validate token for NIP-98 flow.

f
parseReferences(evt: Event): Reference[]
No documentation available
f
serializeEvent(evt: UnsignedEvent): string
No documentation available
f
sortEvents(events: Event[]): Event[]

Sort events in reverse-chronological order by the created_at timestamp, and then by the event id (lexicographically) in case of ties. This mutates the array.

f
utils.binarySearch<T>(
arr: T[],
compare: (b: T) => number
): [number, boolean]
No documentation available
f
utils.insertEventIntoAscendingList(
sortedArray: NostrEvent[],
event: NostrEvent
): NostrEvent[]
No documentation available
f
utils.insertEventIntoDescendingList(
sortedArray: NostrEvent[],
event: NostrEvent
): NostrEvent[]
No documentation available
f
utils.mergeReverseSortedLists(
list1: NostrEvent[],
list2: NostrEvent[]
): NostrEvent[]
No documentation available
f
utils.normalizeURL(url: string): string
No documentation available
f
validateEvent<T>(event: T): event is T & UnsignedEvent
No documentation available

Interfaces

I
No documentation available
  • amount: number
    No documentation available
  • unit: "msat"
    No documentation available
I

Relay Information Document

  • contact: string
    No documentation available
  • description: string
    No documentation available
  • name: string
    No documentation available
  • pubkey: string
    No documentation available
  • software: string
    No documentation available
  • supported_nips: number[]
    No documentation available
  • version: string
    No documentation available
I

Community Preferences

I

Some relays may be governed by the arbitrary laws of a nation state. This may limit what content can be stored in cleartext on those relays. All clients are encouraged to use encryption to work around this limitation.

I
No documentation available
I

A URL pointing to an image to be used as an icon for the relay. Recommended to be squared in shape.

  • icon: string
    No documentation available
I

These are limitations imposed by the relay on clients. Your client should expect that requests which exceed these practical_ limitations are rejected or fail immediately.

I

Relays that require payments may want to expose their fee schedules.

  • fees: Fees
    No documentation available
  • payments_url: string
    No documentation available
I
No documentation available
  • kinds: number[]
    No documentation available
I

Event Retention

  • retention: AnyRetentionDetails[]
    No documentation available
I
No documentation available
  • count: number | null
    No documentation available
  • kinds: (number | number[])[]
    No documentation available
  • time: number | null
    No documentation available
I
No documentation available
  • period: number
    No documentation available
I

Parsed Nostr URI data.

  • decoded:
    { type: "nevent"; data: EventPointer; }
    | { type: "nprofile"; data: ProfilePointer; }
    | { type: "naddr"; data: AddressPointer; }
    | { type: "npub"; data: string; }
    | { type: "nsec"; data: Uint8Array; }
    | { type: "note"; data: string; }

    Decoded bech32 string, according to NIP-19.

  • uri: `nostr:${string}`

    Full URI including the nostr: protocol.

  • value: string

    The bech32-encoded data (eg npub1...).

I
No documentation available
  • content: string | ChannelMetadata
    No documentation available
  • created_at: number
    No documentation available
  • tags: string[][]
    No documentation available
I
No documentation available
I
No documentation available
I
No documentation available
  • about: string
    No documentation available
  • name: string
    No documentation available
  • picture: string
    No documentation available
I
No documentation available
I
No documentation available
  • content: string | { reason: string; }
    No documentation available
  • created_at: number
    No documentation available
  • No documentation available
  • tags: string[][]
    No documentation available
I

Represents a Nostr custom emoji.

  • name: string

    The matched emoji name without colons.

  • shortcode: `:${string}:`

    The matched emoji name with colons.

I

Match result for a custom emoji in text content.

  • end: number

    Index where the emoji ends in the text content.

  • start: number

    Index where the emoji begins in the text content.

I
No documentation available
  • finalizeEvent(
    event: EventTemplate,
    secretKey: Uint8Array
    ): VerifiedEvent
    No documentation available
  • generateSecretKey(): Uint8Array
    No documentation available
  • getPublicKey(secretKey: Uint8Array): string
    No documentation available
  • verifyEvent(event: Event): event is VerifiedEvent
    No documentation available
I

An event whose signature has been verified.

Namespaces

N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available
N
No documentation available

Type Aliases

T
Event = NostrEvent
No documentation available
T
EventTemplate = Pick<Event, "kind" | "tags" | "content" | "created_at">
No documentation available
T
Filter = { [key: `#${string}`]: string[] | undefined; ids?: string[]; kinds?: number[]; authors?: string[]; since?: number; until?: number; limit?: number; search?: string; }
No documentation available
  • authors: string[]
    No documentation available
  • ids: string[]
    No documentation available
  • kinds: number[]
    No documentation available
  • limit: number
    No documentation available
  • search: string
    No documentation available
  • since: number
    No documentation available
  • until: number
    No documentation available
T
kinds.KindClassification =
"regular"
| "replaceable"
| "ephemeral"
| "parameterized"
| "unknown"

Classification of the event kind.

T
nip05.Nip05 = `${string}@${string}`
No documentation available
T
nip11.RelayInformation =
BasicRelayInformation
& Partial<Retention>
& { limitation?: Partial<Limitations>; }
& Partial<ContentLimitations>
& Partial<CommunityPreferences>
& Partial<PayToRelay>
& Partial<Icon>
No documentation available
T
nip18.GetRepostedEventOptions = { skipVerification?: boolean; }
No documentation available
T
nip18.RepostEventTemplate = { tags?: string[][]; content?: ""; created_at: number; }
No documentation available
  • Pass an empty string to NOT include the stringified JSON of the reposted event. Any other content will be ignored and replaced with the stringified JSON of the reposted event.

  • created_at: number
    No documentation available
  • tags: string[][]

    Pass only non-nip18 tags if you have to. Nip18 tags ('e' and 'p' tags pointing to the reposted event) will be added automatically.

T
nip19.AddressPointer = { identifier: string; pubkey: string; kind: number; relays?: string[]; }
No documentation available
  • identifier: string
    No documentation available
  • kind: number
    No documentation available
  • pubkey: string
    No documentation available
  • relays: string[]
    No documentation available
T
nip19.DecodedNaddr = { type: "naddr"; data: AddressPointer; }
No documentation available
  • data: AddressPointer
    No documentation available
  • type: "naddr"
    No documentation available
T
nip19.DecodedNevent = { type: "nevent"; data: EventPointer; }
No documentation available
  • data: EventPointer
    No documentation available
  • type: "nevent"
    No documentation available
T
nip19.DecodedNote = { type: "note"; data: string; }
No documentation available
  • data: string
    No documentation available
  • type: "note"
    No documentation available
T
nip19.DecodedNprofile = { type: "nprofile"; data: ProfilePointer; }
No documentation available
  • data: ProfilePointer
    No documentation available
  • type: "nprofile"
    No documentation available
T
nip19.DecodedNpub = { type: "npub"; data: string; }
No documentation available
  • data: string
    No documentation available
  • type: "npub"
    No documentation available
T
nip19.DecodedNsec = { type: "nsec"; data: Uint8Array; }
No documentation available
  • data: Uint8Array
    No documentation available
  • type: "nsec"
    No documentation available
T
nip19.DecodedResult =
DecodedNevent
| DecodedNprofile
| DecodedNaddr
| DecodedNpub
| DecodedNsec
| DecodedNote
No documentation available
T
nip19.EventPointer = { id: string; relays?: string[]; author?: string; kind?: number; }
No documentation available
  • author: string
    No documentation available
  • id: string
    No documentation available
  • kind: number
    No documentation available
  • relays: string[]
    No documentation available
T
nip19.NAddr = `naddr1${string}`
No documentation available
T
nip19.Ncryptsec = `ncryptsec1${string}`
No documentation available
T
nip19.NEvent = `nevent1${string}`
No documentation available
T
nip19.Note = `note1${string}`
No documentation available
T
nip19.NProfile = `nprofile1${string}`
No documentation available
T
nip19.NPub = `npub1${string}`
No documentation available
T
nip19.NSec = `nsec1${string}`
No documentation available
T
nip19.ProfilePointer = { pubkey: string; relays?: string[]; }
No documentation available
  • pubkey: string
    No documentation available
  • relays: string[]
    No documentation available
T
nip25.ReactionEventTemplate = { tags?: string[][]; content?: string; created_at: number; }
No documentation available
  • content: string
    No documentation available
  • created_at: number
    No documentation available
  • tags: string[][]

    Pass only non-nip25 tags if you have to. Nip25 tags ('e' and 'p' tags from reacted event) will be added automatically.

T
nip27.Block =
{ type: "text"; text: string; }
| { type: "reference"; pointer: ProfilePointer | AddressPointer | EventPointer; }
| { type: "url"; url: string; }
| { type: "relay"; url: string; }
| { type: "image"; url: string; }
| { type: "video"; url: string; }
| { type: "audio"; url: string; }
| { type: "emoji"; shortcode: string; url: string; }
| { type: "hashtag"; value: string; }
No documentation available
T
NostrEvent = { kind: number; tags: string[][]; content: string; created_at: number; pubkey: string; id: string; sig: string; [verifiedSymbol]?: boolean; }
No documentation available
  • content: string
    No documentation available
  • created_at: number
    No documentation available
  • id: string
    No documentation available
  • kind: number
    No documentation available
  • pubkey: string
    No documentation available
  • sig: string
    No documentation available
  • tags: string[][]
    No documentation available
  • No documentation available
T
UnsignedEvent = Pick<
Event,
"kind" | "tags" | "content" | "created_at" | "pubkey"
>
No documentation available

Variables

v
No documentation available
v
No documentation available
v
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
kinds.Date: 31922
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
kinds.Time: 31923
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
No documentation available
v
T
kinds.Zap: 9735
No documentation available
v
T
No documentation available
v
T
No documentation available
v

NIP-05 regex. The localpart is optional, and should be assumed to be _ otherwise.

v
No documentation available
v
No documentation available
v

Bech32 regex.

v
No documentation available
v
nip19.NostrTypeGuard: { isNProfile: (value?: string | null) => value is NProfile; isNEvent: (value?: string | null) => value is NEvent; isNAddr: (value?: string | null) => value is NAddr; isNSec: (value?: string | null) => value is NSec; isNPub: (value?: string | null) => value is NPub; isNote: (value?: string | null) => value is Note; isNcryptsec: (value?: string | null) => value is Ncryptsec; }
No documentation available
  • isNAddr: (value?: string | null) => value is NAddr
    No documentation available
  • isNEvent: (value?: string | null) => value is NEvent
    No documentation available
  • isNProfile: (value?: string | null) => value is NProfile
    No documentation available
  • isNPub: (value?: string | null) => value is NPub
    No documentation available
  • isNSec: (value?: string | null) => value is NSec
    No documentation available
  • isNcryptsec: (value?: string | null) => value is Ncryptsec
    No documentation available
  • isNote: (value?: string | null) => value is Note
    No documentation available
v

Nostr URI regex, eg nostr:npub1...

v

Regex for a single emoji shortcode.

v
nip44.v2: { utils: { getConversationKey; calcPaddedLen; }; encrypt; decrypt; }
No documentation available
  • No documentation available
  • No documentation available
  • utils: { getConversationKey; calcPaddedLen; }
    No documentation available
v
utils.utf8Decoder: TextDecoder
No documentation available
v
utils.utf8Encoder: TextEncoder
No documentation available
v

Designates a verified event signature.

v
No documentation available

Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@nostr/tools

Import symbol

import * as mod from "@nostr/tools";
or

Import directly with a jsr specifier

import * as mod from "jsr:@nostr/tools";