canary-kit 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CANARY.md CHANGED
@@ -31,6 +31,32 @@ The protocol is defined in three layers:
31
31
  monitoring)
32
32
  3. **CANARY-WORDLIST** — Spoken-word encoding optimised for voice clarity
33
33
 
34
+ ## Protocol Layering
35
+
36
+ CANARY builds on two generic protocol specifications:
37
+
38
+ - **[Spoken Token Protocol](https://github.com/TheCryptoDonkey/spoken-token/blob/main/PROTOCOL.md)**
39
+ — defines SPOKEN-DERIVE (the core HMAC-counter-to-words derivation) and SPOKEN-ENCODE
40
+ (word/PIN/hex encoding). CANARY-DERIVE is a superset of SPOKEN-DERIVE. The generic
41
+ protocol is implemented by the `spoken-token` npm package.
42
+
43
+ - **[Simple Shared Secret Groups](GROUPS.md)** — defines the group lifecycle (creation,
44
+ member management, seed rotation, sync protocol, replay protection). CANARY groups
45
+ are an application of this generic group protocol with additional duress, liveness,
46
+ and beacon extensions.
47
+
48
+ The Nostr transport binding is defined in two layers:
49
+
50
+ - **[NIP-XX: Simple Shared Secret Groups](NIP-XX.md)** — maps the generic group
51
+ protocol onto existing Nostr kinds (30078, NIP-17, 20078). Zero new event kinds.
52
+
53
+ - **[NIP-CANARY](NIP-CANARY.md)** — application profile of NIP-XX adding
54
+ CANARY-specific signal types (duress alerts, beacons) and Meshtastic fallback.
55
+
56
+ CANARY's unique contributions beyond the generic layers are: **duress detection**
57
+ (CANARY-DURESS), **liveness monitoring** (dead man's switch), **threat-profile
58
+ presets**, and **encrypted location beacons**.
59
+
34
60
  ## Motivation
35
61
 
36
62
  AI voice cloning now requires as little as three seconds of audio. A thirty-second clip
@@ -96,6 +122,12 @@ separate keys or counters.
96
122
 
97
123
  Core deterministic token derivation. The universal primitive that all other layers build on.
98
124
 
125
+ > **Generic layer:** The core derivation algorithm (HMAC-SHA256 with context and counter)
126
+ > is specified generically in the [Spoken Token Protocol](https://github.com/TheCryptoDonkey/spoken-token/blob/main/PROTOCOL.md)
127
+ > as SPOKEN-DERIVE. CANARY-DERIVE is identical to SPOKEN-DERIVE — this section
128
+ > documents it in CANARY's context for completeness. The `spoken-token` npm package
129
+ > provides a standalone implementation of the generic layer.
130
+
99
131
  ### Algorithm
100
132
 
101
133
  ```
@@ -163,6 +195,12 @@ re-sync messages) MUST enforce the following rules:
163
195
 
164
196
  ## CANARY-SYNC: Transport-Agnostic Synchronisation
165
197
 
198
+ > **Generic layer:** The core group management protocol (creation, member management,
199
+ > seed rotation, counter sync, replay protection) is specified generically in
200
+ > [Simple Shared Secret Groups](GROUPS.md). CANARY-SYNC extends it with
201
+ > application-specific message types: `beacon`, `duress-alert`, `duress-clear`,
202
+ > and `liveness-checkin`.
203
+
166
204
  CANARY-SYNC is the protocol layer for propagating group state mutations and telemetry
167
205
  across any transport without depending on Nostr or any specific relay infrastructure.
168
206
  It operates over any channel capable of delivering authenticated, ordered or unordered
package/NIP-CANARY.md CHANGED
@@ -13,6 +13,32 @@ providing group management, seed distribution, and counter synchronisation over
13
13
  Nostr relays. The core protocol (CANARY-DERIVE, CANARY-DURESS, CANARY-WORDLIST)
14
14
  is defined in the transport-agnostic [CANARY specification](CANARY.md).
15
15
 
16
+ ## Protocol Layering
17
+
18
+ NIP-CANARY is an **application profile** of [NIP-XX: Simple Shared Secret Groups](NIP-XX.md).
19
+
20
+ The generic group transport (NIP-XX) defines how to manage shared-secret groups over
21
+ Nostr using existing event kinds:
22
+ - **Kind 30078** (NIP-78) for durable group state
23
+ - **NIP-17 gift wraps** for secret distribution
24
+ - **Kind 20078** (ephemeral) for real-time signals
25
+
26
+ NIP-CANARY extends NIP-XX with CANARY-specific features:
27
+ - **Duress signal semantics** in kind 20078 payloads (`duress-alert`, `duress-clear`)
28
+ - **Encrypted location beacons** in kind 20078 payloads
29
+ - **Liveness check-in signals** for dead man's switch
30
+ - **Meshtastic fallback transport** for offline/mesh operation
31
+
32
+ The six custom event kinds defined below (38800–20800) represent the **current
33
+ implementation**. A future version of this NIP will migrate to NIP-XX's transport
34
+ mapping (zero new kinds). The custom kinds are documented here for compatibility
35
+ with existing deployments.
36
+
37
+ > **Migration path:** New implementations SHOULD use NIP-XX transport (kind 30078,
38
+ > NIP-17, kind 20078) with the `ssg/` tag prefix and CANARY-specific signal types.
39
+ > Existing implementations using kinds 38800–20800 will continue to work — clients
40
+ > MAY support both during the transition period.
41
+
16
42
  ## Nostr Canary Groups
17
43
 
18
44
  This section defines a Nostr application layer built on the CANARY protocol, providing
package/dist/nostr.d.ts CHANGED
@@ -1,17 +1,22 @@
1
1
  /**
2
- * Canary Nostr event kinds (NIP-CANARY).
2
+ * NIP-XX Nostr transport builders for Simple Shared Secret (SSG) groups.
3
3
  *
4
- * - group + memberUpdate: parameterised replaceable (30000–39999)
5
- * - seedDistribution, reseed, wordUsed: ephemeral (20000–29999)
6
- * - beacon: ephemeral (20000–29999)
4
+ * Three event kinds are used:
5
+ *
6
+ * - **kind 30078** (parameterised replaceable) — group state and stored signals.
7
+ * The d-tag uses the `ssg/` namespace prefix.
8
+ * - **kind 20078** (ephemeral) — real-time signals between group members.
9
+ * - **kind 14** (rumour / unsigned inner event) — NIP-17 gift-wrapped DMs carrying
10
+ * seed distribution, reseed, and other private payloads.
11
+ *
12
+ * Builders return unsigned events (`UnsignedEvent`). The consumer is responsible for
13
+ * signing (NIP-01), encrypting content (NIP-44), and wrapping (NIP-59) as needed.
7
14
  */
15
+ /** NIP-XX event kinds used by SSG groups. */
8
16
  export declare const KINDS: {
9
- readonly group: 38800;
10
- readonly seedDistribution: 28800;
11
- readonly memberUpdate: 38801;
12
- readonly reseed: 28801;
13
- readonly wordUsed: 28802;
14
- readonly beacon: 20800;
17
+ readonly groupState: 30078;
18
+ readonly signal: 20078;
19
+ readonly giftWrap: 1059;
15
20
  };
16
21
  /** Unsigned Nostr event (consumer signs with their own library). */
17
22
  export interface UnsignedEvent {
@@ -20,83 +25,39 @@ export interface UnsignedEvent {
20
25
  tags: string[][];
21
26
  created_at: number;
22
27
  }
23
- export interface GroupEventParams {
28
+ export interface GroupStateEventParams {
24
29
  groupId: string;
25
- name: string;
26
30
  members: string[];
27
- rotationInterval: number;
28
- wordCount: 1 | 2 | 3;
29
- wordlist: string;
30
31
  encryptedContent: string;
32
+ rotationInterval?: number;
33
+ tolerance?: number;
31
34
  expiration?: number;
32
35
  }
33
- /**
34
- * Build an unsigned kind 38800 group definition event.
35
- *
36
- * @param params - Group event parameters including groupId, name, members, and encrypted content.
37
- * @returns An {@link UnsignedEvent} ready to be signed and published.
38
- * @throws {Error} If groupId/name are invalid, member pubkeys are malformed, rotationInterval is non-positive, or wordCount is not 1/2/3.
39
- */
40
- export declare function buildGroupEvent(params: GroupEventParams): UnsignedEvent;
41
- export interface SeedDistributionParams {
42
- recipientPubkey: string;
43
- groupEventId: string;
44
- encryptedContent: string;
45
- }
46
- /**
47
- * Build an unsigned kind 28800 seed distribution event.
48
- *
49
- * @param params - Seed distribution parameters including recipient pubkey, group event ID, and encrypted seed.
50
- * @returns An {@link UnsignedEvent} ready to be signed and published.
51
- * @throws {Error} If recipientPubkey or groupEventId are not valid 64-character hex strings.
52
- */
53
- export declare function buildSeedDistributionEvent(params: SeedDistributionParams): UnsignedEvent;
54
- export interface MemberUpdateParams {
36
+ export interface StoredSignalEventParams {
55
37
  groupId: string;
56
- action: 'add' | 'remove';
57
- memberPubkey: string;
58
- reseed: boolean;
38
+ signalType: string;
59
39
  encryptedContent: string;
60
40
  }
61
- /**
62
- * Build an unsigned kind 38801 member update event (add or remove).
63
- *
64
- * @param params - Member update parameters including groupId, action ('add' | 'remove'), member pubkey, and reseed flag.
65
- * @returns An {@link UnsignedEvent} ready to be signed and published.
66
- * @throws {Error} If action is not 'add' or 'remove', or pubkey/groupId are invalid.
67
- */
68
- export declare function buildMemberUpdateEvent(params: MemberUpdateParams): UnsignedEvent;
69
- export interface ReseedParams {
70
- groupEventId: string;
71
- reason: 'member_removed' | 'compromise' | 'scheduled' | 'duress';
41
+ export interface SignalEventParams {
42
+ groupId: string;
43
+ signalType: string;
72
44
  encryptedContent: string;
73
45
  }
74
- /**
75
- * Build an unsigned kind 28801 reseed notification event.
76
- *
77
- * @param params - Reseed parameters including group event ID, reason, and encrypted new seed.
78
- * @returns An {@link UnsignedEvent} ready to be signed and published.
79
- * @throws {Error} If groupEventId is not a valid 64-character hex string or reason is invalid.
80
- */
81
- export declare function buildReseedEvent(params: ReseedParams): UnsignedEvent;
82
- export interface WordUsedParams {
83
- groupEventId: string;
46
+ export interface RumourEventParams {
47
+ recipientPubkey: string;
48
+ subject: string;
84
49
  encryptedContent: string;
50
+ groupEventId?: string;
85
51
  }
86
- /**
87
- * Build an unsigned kind 28802 word-used (burn-after-use) event.
88
- *
89
- * @param params - Word-used parameters including group event ID and encrypted content.
90
- * @returns An {@link UnsignedEvent} ready to be signed and published.
91
- * @throws {Error} If groupEventId is not a valid 64-character hex string.
92
- */
93
- export declare function buildWordUsedEvent(params: WordUsedParams): UnsignedEvent;
94
- export interface BeaconEventParams {
95
- groupId: string;
96
- encryptedContent: string;
97
- expiration?: number;
52
+ /** Plaintext payload for group configuration (kind 30078 encrypted content). */
53
+ export interface GroupConfigPayload {
54
+ description: string;
55
+ policies: {
56
+ invite_by: 'admin' | 'any_member';
57
+ reseed_by: 'admin' | 'any_admin';
58
+ };
98
59
  }
99
- /** Plaintext payload for kind 28800 (seed distribution). */
60
+ /** Plaintext payload for seed distribution (kind 14 rumour). */
100
61
  export interface SeedDistributionPayload {
101
62
  seed: string;
102
63
  /** Allows re-seeding mid-window without waiting for the next natural time rotation. */
@@ -104,31 +65,86 @@ export interface SeedDistributionPayload {
104
65
  /** The group's d-tag value (group identifier). */
105
66
  group_d: string;
106
67
  }
107
- /** Plaintext payload for kind 38800 encrypted content (group configuration). */
108
- export interface GroupEventPayload {
109
- description: string;
110
- policies: {
111
- invite_by: 'creator' | 'any_member';
112
- reseed_by: 'creator' | 'any_admin';
113
- };
114
- }
115
- /** Plaintext payload for kind 28801 (reseed notification). */
68
+ /** Plaintext payload for reseed notification (kind 14 rumour). */
116
69
  export interface ReseedPayload {
117
70
  seed: string;
118
71
  reason: 'member_removed' | 'compromise' | 'scheduled' | 'duress';
119
72
  }
120
- /** Plaintext payload for kind 28802 (word used / burn-after-use). */
73
+ /** Plaintext payload for member update (kind 14 rumour). */
74
+ export interface MemberUpdatePayload {
75
+ action: 'add' | 'remove';
76
+ member: string;
77
+ reseed: boolean;
78
+ }
79
+ /** Plaintext payload for counter advance (kind 20078 signal). */
80
+ export interface CounterAdvancePayload {
81
+ new_counter: number;
82
+ }
83
+ /** Plaintext payload for word-used / burn-after-use (kind 20078 signal). */
121
84
  export interface WordUsedPayload {
122
85
  new_counter: number;
123
86
  used_by: string;
124
87
  duress: boolean;
125
88
  }
89
+ export declare function validatePubkey(pubkey: string, label: string): void;
90
+ export declare function validateTagString(value: string, label: string): void;
91
+ export declare function validateExpiration(expiration: number): void;
92
+ export declare function validateEventId(eventId: string, label: string): void;
93
+ /**
94
+ * SHA-256 hash a group ID for use in d-tags where privacy matters.
95
+ *
96
+ * Duplicates hashGroupTag from sync-crypto.ts — kept independent to avoid
97
+ * coupling builders to sync layer.
98
+ */
99
+ export declare function hashGroupId(groupId: string): string;
100
+ /**
101
+ * Build an unsigned kind 30078 group state event.
102
+ *
103
+ * The d-tag uses plaintext `ssg/<groupId>` since content is NIP-44 encrypted.
104
+ * Includes NIP-32 labels for SSG namespace and p-tags for each member.
105
+ *
106
+ * @param params - Group state parameters.
107
+ * @returns An {@link UnsignedEvent} ready to be signed and published.
108
+ * @throws {Error} If groupId is invalid, member pubkeys are malformed, or optional
109
+ * numeric fields are out of range.
110
+ */
111
+ export declare function buildGroupStateEvent(params: GroupStateEventParams): UnsignedEvent;
112
+ /**
113
+ * Build an unsigned kind 30078 stored signal event.
114
+ *
115
+ * The d-tag uses a SHA-256 hash of the group ID (for privacy) scoped by signal type:
116
+ * `ssg/<SHA256(groupId)>:<signalType>`.
117
+ *
118
+ * Includes a 7-day NIP-40 expiration tag.
119
+ *
120
+ * @param params - Stored signal parameters.
121
+ * @returns An {@link UnsignedEvent} ready to be signed and published.
122
+ * @throws {Error} If groupId or signalType are empty.
123
+ */
124
+ export declare function buildStoredSignalEvent(params: StoredSignalEventParams): UnsignedEvent;
126
125
  /**
127
- * Build an unsigned kind 20800 beacon event.
126
+ * Build an unsigned kind 20078 ephemeral signal event.
127
+ *
128
+ * The d-tag uses a SHA-256 hash of the group ID (for privacy):
129
+ * `ssg/<SHA256(groupId)>`. A t-tag carries the signal type.
130
+ *
131
+ * No expiration tag — ephemeral events are not stored by relays.
128
132
  *
129
- * @param params - Beacon event parameters including groupId, encrypted content, and optional expiration.
133
+ * @param params - Signal parameters.
130
134
  * @returns An {@link UnsignedEvent} ready to be signed and published.
131
- * @throws {Error} If groupId is invalid or expiration is not a non-negative integer.
135
+ * @throws {Error} If groupId or signalType are empty.
136
+ */
137
+ export declare function buildSignalEvent(params: SignalEventParams): UnsignedEvent;
138
+ /**
139
+ * Build an unsigned kind 14 rumour event for NIP-17 gift wrapping.
140
+ *
141
+ * The consumer must set the `pubkey` field before computing the event ID.
142
+ * The rumour is then sealed (NIP-44 encrypt + kind 13) and gift-wrapped
143
+ * (kind 1059) by the caller.
144
+ *
145
+ * @param params - Rumour parameters including recipient and subject.
146
+ * @returns An {@link UnsignedEvent} ready for NIP-59 wrapping.
147
+ * @throws {Error} If recipientPubkey is invalid, subject is empty, or groupEventId is invalid.
132
148
  */
133
- export declare function buildBeaconEvent(params: BeaconEventParams): UnsignedEvent;
149
+ export declare function buildRumourEvent(params: RumourEventParams): UnsignedEvent;
134
150
  //# sourceMappingURL=nostr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../src/nostr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nostr.d.ts","sourceRoot":"","sources":["../src/nostr.ts"],"names":[],"mappings":"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"}
package/dist/nostr.js CHANGED
@@ -1,34 +1,34 @@
1
1
  /**
2
- * Canary Nostr event kinds (NIP-CANARY).
2
+ * NIP-XX Nostr transport builders for Simple Shared Secret (SSG) groups.
3
3
  *
4
- * - group + memberUpdate: parameterised replaceable (30000–39999)
5
- * - seedDistribution, reseed, wordUsed: ephemeral (20000–29999)
6
- * - beacon: ephemeral (20000–29999)
4
+ * Three event kinds are used:
5
+ *
6
+ * - **kind 30078** (parameterised replaceable) — group state and stored signals.
7
+ * The d-tag uses the `ssg/` namespace prefix.
8
+ * - **kind 20078** (ephemeral) — real-time signals between group members.
9
+ * - **kind 14** (rumour / unsigned inner event) — NIP-17 gift-wrapped DMs carrying
10
+ * seed distribution, reseed, and other private payloads.
11
+ *
12
+ * Builders return unsigned events (`UnsignedEvent`). The consumer is responsible for
13
+ * signing (NIP-01), encrypting content (NIP-44), and wrapping (NIP-59) as needed.
7
14
  */
15
+ import { sha256, bytesToHex } from './crypto.js';
16
+ // ── Constants ────────────────────────────────────────────────────────────────
17
+ /** NIP-XX event kinds used by SSG groups. */
8
18
  export const KINDS = {
9
- group: 38_800,
10
- seedDistribution: 28_800,
11
- memberUpdate: 38_801,
12
- reseed: 28_801,
13
- wordUsed: 28_802,
14
- beacon: 20_800,
19
+ groupState: 30_078,
20
+ signal: 20_078,
21
+ giftWrap: 1_059,
15
22
  };
16
- function now() {
17
- return Math.floor(Date.now() / 1000);
18
- }
23
+ // ── Validation helpers ───────────────────────────────────────────────────────
19
24
  const HEX_64_RE = /^[0-9a-f]{64}$/;
20
25
  const MAX_TAG_LENGTH = 256;
21
- function validatePubkey(pubkey, label) {
26
+ export function validatePubkey(pubkey, label) {
22
27
  if (!HEX_64_RE.test(pubkey)) {
23
28
  throw new Error(`Invalid ${label}: expected 64 lowercase hex characters, got ${pubkey.length} chars`);
24
29
  }
25
30
  }
26
- function validateEventId(eventId, label) {
27
- if (!HEX_64_RE.test(eventId)) {
28
- throw new Error(`Invalid ${label}: expected 64 lowercase hex characters, got ${eventId.length} chars`);
29
- }
30
- }
31
- function validateTagString(value, label) {
31
+ export function validateTagString(value, label) {
32
32
  if (typeof value !== 'string' || value.length === 0) {
33
33
  throw new Error(`Invalid ${label}: must be a non-empty string`);
34
34
  }
@@ -36,140 +36,152 @@ function validateTagString(value, label) {
36
36
  throw new Error(`Invalid ${label}: exceeds maximum length of ${MAX_TAG_LENGTH} characters`);
37
37
  }
38
38
  }
39
+ export function validateExpiration(expiration) {
40
+ if (!Number.isInteger(expiration) || expiration < 0) {
41
+ throw new Error('expiration must be a non-negative integer');
42
+ }
43
+ }
44
+ export function validateEventId(eventId, label) {
45
+ if (!HEX_64_RE.test(eventId)) {
46
+ throw new Error(`Invalid ${label}: expected 64 lowercase hex characters, got ${eventId.length} chars`);
47
+ }
48
+ }
49
+ // ── Helpers ──────────────────────────────────────────────────────────────────
50
+ function now() {
51
+ return Math.floor(Date.now() / 1000);
52
+ }
53
+ /**
54
+ * SHA-256 hash a group ID for use in d-tags where privacy matters.
55
+ *
56
+ * Duplicates hashGroupTag from sync-crypto.ts — kept independent to avoid
57
+ * coupling builders to sync layer.
58
+ */
59
+ export function hashGroupId(groupId) {
60
+ return bytesToHex(sha256(new TextEncoder().encode(groupId)));
61
+ }
62
+ // ── Builder functions ────────────────────────────────────────────────────────
39
63
  /**
40
- * Build an unsigned kind 38800 group definition event.
64
+ * Build an unsigned kind 30078 group state event.
65
+ *
66
+ * The d-tag uses plaintext `ssg/<groupId>` since content is NIP-44 encrypted.
67
+ * Includes NIP-32 labels for SSG namespace and p-tags for each member.
41
68
  *
42
- * @param params - Group event parameters including groupId, name, members, and encrypted content.
69
+ * @param params - Group state parameters.
43
70
  * @returns An {@link UnsignedEvent} ready to be signed and published.
44
- * @throws {Error} If groupId/name are invalid, member pubkeys are malformed, rotationInterval is non-positive, or wordCount is not 1/2/3.
71
+ * @throws {Error} If groupId is invalid, member pubkeys are malformed, or optional
72
+ * numeric fields are out of range.
45
73
  */
46
- export function buildGroupEvent(params) {
74
+ export function buildGroupStateEvent(params) {
47
75
  validateTagString(params.groupId, 'groupId');
48
- validateTagString(params.name, 'name');
49
76
  for (const m of params.members)
50
77
  validatePubkey(m, 'member pubkey');
51
- if (!Number.isInteger(params.rotationInterval) || params.rotationInterval <= 0) {
52
- throw new Error(`Invalid rotationInterval: must be a positive integer, got ${params.rotationInterval}`);
53
- }
54
- if (params.wordCount !== 1 && params.wordCount !== 2 && params.wordCount !== 3) {
55
- throw new Error(`Invalid wordCount: must be 1, 2, or 3, got ${params.wordCount}`);
56
- }
57
78
  const tags = [
58
- ['d', params.groupId],
59
- ['name', params.name],
79
+ ['d', `ssg/${params.groupId}`],
60
80
  ...params.members.map((m) => ['p', m]),
61
- ['rotation', String(params.rotationInterval)],
62
- ['words', String(params.wordCount)],
63
- ['wordlist', params.wordlist],
81
+ ['L', 'ssg'],
82
+ ['l', 'group', 'ssg'],
64
83
  ];
65
- if (params.expiration !== undefined) {
66
- if (!Number.isInteger(params.expiration) || params.expiration < 0) {
67
- throw new Error('expiration must be a non-negative integer');
84
+ if (params.rotationInterval !== undefined) {
85
+ if (!Number.isInteger(params.rotationInterval) || params.rotationInterval <= 0) {
86
+ throw new Error(`Invalid rotationInterval: must be a positive integer, got ${params.rotationInterval}`);
87
+ }
88
+ tags.push(['rotation', String(params.rotationInterval)]);
89
+ }
90
+ if (params.tolerance !== undefined) {
91
+ if (!Number.isInteger(params.tolerance) || params.tolerance <= 0) {
92
+ throw new Error(`Invalid tolerance: must be a positive integer, got ${params.tolerance}`);
68
93
  }
94
+ tags.push(['tolerance', String(params.tolerance)]);
95
+ }
96
+ if (params.expiration !== undefined) {
97
+ validateExpiration(params.expiration);
69
98
  tags.push(['expiration', String(params.expiration)]);
70
99
  }
71
- return { kind: KINDS.group, content: params.encryptedContent, tags, created_at: now() };
100
+ return { kind: KINDS.groupState, content: params.encryptedContent, tags, created_at: now() };
72
101
  }
73
102
  /**
74
- * Build an unsigned kind 28800 seed distribution event.
103
+ * Build an unsigned kind 30078 stored signal event.
75
104
  *
76
- * @param params - Seed distribution parameters including recipient pubkey, group event ID, and encrypted seed.
77
- * @returns An {@link UnsignedEvent} ready to be signed and published.
78
- * @throws {Error} If recipientPubkey or groupEventId are not valid 64-character hex strings.
79
- */
80
- export function buildSeedDistributionEvent(params) {
81
- validatePubkey(params.recipientPubkey, 'recipientPubkey');
82
- validateEventId(params.groupEventId, 'groupEventId');
83
- return {
84
- kind: KINDS.seedDistribution,
85
- content: params.encryptedContent,
86
- tags: [
87
- ['p', params.recipientPubkey],
88
- ['e', params.groupEventId],
89
- ],
90
- created_at: now(),
91
- };
92
- }
93
- /**
94
- * Build an unsigned kind 38801 member update event (add or remove).
105
+ * The d-tag uses a SHA-256 hash of the group ID (for privacy) scoped by signal type:
106
+ * `ssg/<SHA256(groupId)>:<signalType>`.
95
107
  *
96
- * @param params - Member update parameters including groupId, action ('add' | 'remove'), member pubkey, and reseed flag.
108
+ * Includes a 7-day NIP-40 expiration tag.
109
+ *
110
+ * @param params - Stored signal parameters.
97
111
  * @returns An {@link UnsignedEvent} ready to be signed and published.
98
- * @throws {Error} If action is not 'add' or 'remove', or pubkey/groupId are invalid.
112
+ * @throws {Error} If groupId or signalType are empty.
99
113
  */
100
- export function buildMemberUpdateEvent(params) {
101
- if (params.action !== 'add' && params.action !== 'remove') {
102
- throw new Error(`Invalid action: must be 'add' or 'remove', got '${params.action}'`);
103
- }
104
- validatePubkey(params.memberPubkey, 'memberPubkey');
114
+ export function buildStoredSignalEvent(params) {
105
115
  validateTagString(params.groupId, 'groupId');
116
+ validateTagString(params.signalType, 'signalType');
117
+ const hash = hashGroupId(params.groupId);
118
+ const createdAt = now();
119
+ const sevenDays = 7 * 24 * 60 * 60;
106
120
  return {
107
- kind: KINDS.memberUpdate,
121
+ kind: KINDS.groupState,
108
122
  content: params.encryptedContent,
109
123
  tags: [
110
- ['d', params.groupId],
111
- ['action', params.action],
112
- ['p', params.memberPubkey],
113
- ['reseed', String(params.reseed)],
124
+ ['d', `ssg/${hash}:${params.signalType}`],
125
+ ['expiration', String(createdAt + sevenDays)],
114
126
  ],
115
- created_at: now(),
127
+ created_at: createdAt,
116
128
  };
117
129
  }
118
- const VALID_RESEED_REASONS = new Set(['member_removed', 'compromise', 'scheduled', 'duress']);
119
130
  /**
120
- * Build an unsigned kind 28801 reseed notification event.
131
+ * Build an unsigned kind 20078 ephemeral signal event.
132
+ *
133
+ * The d-tag uses a SHA-256 hash of the group ID (for privacy):
134
+ * `ssg/<SHA256(groupId)>`. A t-tag carries the signal type.
121
135
  *
122
- * @param params - Reseed parameters including group event ID, reason, and encrypted new seed.
136
+ * No expiration tag ephemeral events are not stored by relays.
137
+ *
138
+ * @param params - Signal parameters.
123
139
  * @returns An {@link UnsignedEvent} ready to be signed and published.
124
- * @throws {Error} If groupEventId is not a valid 64-character hex string or reason is invalid.
140
+ * @throws {Error} If groupId or signalType are empty.
125
141
  */
126
- export function buildReseedEvent(params) {
127
- validateEventId(params.groupEventId, 'groupEventId');
128
- if (!VALID_RESEED_REASONS.has(params.reason)) {
129
- throw new Error(`Invalid reason: must be one of ${[...VALID_RESEED_REASONS].join(', ')}, got '${params.reason}'`);
130
- }
142
+ export function buildSignalEvent(params) {
143
+ validateTagString(params.groupId, 'groupId');
144
+ validateTagString(params.signalType, 'signalType');
145
+ const hash = hashGroupId(params.groupId);
131
146
  return {
132
- kind: KINDS.reseed,
147
+ kind: KINDS.signal,
133
148
  content: params.encryptedContent,
134
149
  tags: [
135
- ['e', params.groupEventId],
136
- ['reason', params.reason],
150
+ ['d', `ssg/${hash}`],
151
+ ['t', params.signalType],
137
152
  ],
138
153
  created_at: now(),
139
154
  };
140
155
  }
141
156
  /**
142
- * Build an unsigned kind 28802 word-used (burn-after-use) event.
157
+ * Build an unsigned kind 14 rumour event for NIP-17 gift wrapping.
143
158
  *
144
- * @param params - Word-used parameters including group event ID and encrypted content.
145
- * @returns An {@link UnsignedEvent} ready to be signed and published.
146
- * @throws {Error} If groupEventId is not a valid 64-character hex string.
159
+ * The consumer must set the `pubkey` field before computing the event ID.
160
+ * The rumour is then sealed (NIP-44 encrypt + kind 13) and gift-wrapped
161
+ * (kind 1059) by the caller.
162
+ *
163
+ * @param params - Rumour parameters including recipient and subject.
164
+ * @returns An {@link UnsignedEvent} ready for NIP-59 wrapping.
165
+ * @throws {Error} If recipientPubkey is invalid, subject is empty, or groupEventId is invalid.
147
166
  */
148
- export function buildWordUsedEvent(params) {
149
- validateEventId(params.groupEventId, 'groupEventId');
167
+ export function buildRumourEvent(params) {
168
+ validatePubkey(params.recipientPubkey, 'recipientPubkey');
169
+ validateTagString(params.subject, 'subject');
170
+ if (params.groupEventId !== undefined) {
171
+ validateEventId(params.groupEventId, 'groupEventId');
172
+ }
173
+ const tags = [
174
+ ['p', params.recipientPubkey],
175
+ ['subject', params.subject],
176
+ ];
177
+ if (params.groupEventId !== undefined) {
178
+ tags.push(['e', params.groupEventId]);
179
+ }
150
180
  return {
151
- kind: KINDS.wordUsed,
181
+ kind: 14,
152
182
  content: params.encryptedContent,
153
- tags: [['e', params.groupEventId]],
183
+ tags,
154
184
  created_at: now(),
155
185
  };
156
186
  }
157
- /**
158
- * Build an unsigned kind 20800 beacon event.
159
- *
160
- * @param params - Beacon event parameters including groupId, encrypted content, and optional expiration.
161
- * @returns An {@link UnsignedEvent} ready to be signed and published.
162
- * @throws {Error} If groupId is invalid or expiration is not a non-negative integer.
163
- */
164
- export function buildBeaconEvent(params) {
165
- validateTagString(params.groupId, 'groupId');
166
- const tags = [['h', params.groupId]];
167
- if (params.expiration !== undefined) {
168
- if (!Number.isInteger(params.expiration) || params.expiration < 0) {
169
- throw new Error('expiration must be a non-negative integer');
170
- }
171
- tags.push(['expiration', String(params.expiration)]);
172
- }
173
- return { kind: KINDS.beacon, content: params.encryptedContent, tags, created_at: now() };
174
- }
175
187
  //# sourceMappingURL=nostr.js.map
package/dist/nostr.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"nostr.js","sourceRoot":"","sources":["../src/nostr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nostr.js","sourceRoot":"","sources":["../src/nostr.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/dist/sync.js CHANGED
@@ -401,6 +401,12 @@ export function applySyncMessage(group, msg, nowSec = Math.floor(Date.now() / 10
401
401
  if (elapsed < -MAX_FUTURE_SKEW_SEC)
402
402
  return group; // too far in the future
403
403
  }
404
+ // ── Future timestamp bound for stored mutation messages ────
405
+ // Prevents consumedOpsFloor poisoning: an attacker with admin access could
406
+ // craft a message with a far-future timestamp, trigger eviction, and set
407
+ // the floor to a future value, silently rejecting subsequent legitimate messages.
408
+ if (STORED_MESSAGE_TYPES.has(msg.type) && msg.timestamp > nowSec + MAX_FUTURE_SKEW_SEC)
409
+ return group;
404
410
  // Cross-check: liveness-checkin sender must match the pubkey in the message
405
411
  if (msg.type === 'liveness-checkin' && sender && msg.pubkey !== sender)
406
412
  return group;
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "canary-kit",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Deepfake-proof identity verification. Open protocol, minimal dependencies.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",