<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-08-21T04:02:01Z</updated>
  <generator>https://njump.me</generator>

  <title>Nostr notes by </title>
  <author>
    <name></name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://njump.me/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme.rss" />
  <link href="https://njump.me/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme" />
  <id>https://njump.me/npub1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzqujme</id>
  <icon></icon>
  <logo></logo>


  <title>Nostr notes on relay.inkan.cc/yakihhone:relay.inkan.cc/contact@inkan.cc</title>
  <link href="https://njump.me/r/relay.inkan.cc/yakihhone:relay.inkan.cc/contact@inkan.cc" />
  <link rel="self" type="application/atom+xml" href="https://njump.me/r/relay.inkan.cc/yakihhone:relay.inkan.cc/contact@inkan.cc.rss" />
  <id>https://njump.me/r/relay.inkan.cc/yakihhone:relay.inkan.cc/contact@inkan.cc</id>
  <icon></icon>
  <logo></logo>



  <entry>
    <id>https://njump.me/nevent1qqszav89xa4ax8ydj2vuu6r65x8g5a4szpgym0g966vug5366xamtdcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s7ef3cp</id>
    
      <title type="html">It seems like I should run this against my codebase.</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszav89xa4ax8ydj2vuu6r65x8g5a4szpgym0g966vug5366xamtdcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s7ef3cp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswpg8h3e3crzymqh4qegcr4cjsdrjv92srususxz3zg4eks4xafhqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs47gp3d&#39;&gt;nevent1q…gp3d&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It seems like I should run this against my codebase.
    </content>
    <updated>2026-08-21T04:02:01Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsy388a4t9rp7ww3dht6c8xkxp9mc48gy50syj7k4n3dx44ywvggvqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3svze2pw</id>
    
      <title type="html">A draft NIP for Inkan 👇 #nevent1q…uztd</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsy388a4t9rp7ww3dht6c8xkxp9mc48gy50syj7k4n3dx44ywvggvqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3svze2pw" />
    <content type="html">
      A draft NIP for Inkan 👇&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg4waehxw309aex2mrp0yhxjmntv9hzucmr9uqzqyuvffj6ggl2c788p7g08th6qeht3xqm2kllg7keyxv94gddhvcwjnuztd&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…uztd&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; NIP-XX&lt;br/&gt;&lt;br/&gt;Cold-Storage Identities for Nostr&lt;br/&gt;&lt;br/&gt;draft optional&lt;br/&gt;&lt;br/&gt;This NIP specifies online identities whose private key can be created in cold storage and stay there permanently. The key never has to touch an internet-connected device, and does not have to be kept close at hand. The identity can nonetheless be used easily for everyday online authentication, such as posting, replying, messaging, or signing in to services.&lt;br/&gt;&lt;br/&gt;▌ 1. How it works&lt;br/&gt;&lt;br/&gt;The identity-securing key never signs Nostr events itself. It delegates signing authority to delegatee keys, which handle the everyday signing on its behalf. If a delegatee key is lost or stolen, it is replaced, and the identity is untouched.&lt;br/&gt;&lt;br/&gt;▌ 2. Delegations between keys&lt;br/&gt;&lt;br/&gt;Delegations are time-indexed two-place relations. Between any two key pairs, at any moment, the first either delegates signing authority to the second or it does not. When it does, the second key is authorized to sign on the first&#39;s behalf. When it does not, the second has no such authority.&lt;br/&gt;&lt;br/&gt;Delegations are either direct or indirect. A direct delegation arises when one key has expressly declared that it delegates signing authority to another. An indirect delegation arises because the relation is transitively closed: if X delegates to Y and Y delegates to Z, then X indirectly delegates to Z. This is what lets an identity be built as a chain (master → intermediate → signer), so that events signed by the bottom key are attributed all the way up to the master, while the master, having signed the top link once, retires to cold storage.&lt;br/&gt;&lt;br/&gt;▌ 3. How a direct delegation is created&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is created when both key pairs sign a Declaration of Delegation of Signing Authority, by which X declares that it delegates signing authority to Y and Y declares that it accepts. The signed declaration is then recorded on-chain (the reference implementation uses Ethereum). The delegation begins at the time of the block in which the declaration was recorded, and remains in effect until it is revoked.&lt;br/&gt;&lt;br/&gt;One special case: this holds only if neither X nor Y has previously permanently invalidated itself (§5). If either has, no delegation is created, even though the declaration sits on-chain.&lt;br/&gt;&lt;br/&gt;As part of the declaration, X and Y also specify whether X can revoke the delegation unilaterally or whether Y&#39;s consent is required. The default is unilateral revocation by X, and it is the right default for most users: if Y&#39;s key is ever lost, X can still revoke it alone. Were Y&#39;s consent required, a lost Y could never be revoked, because Y would no longer be available to sign.&lt;br/&gt;&lt;br/&gt;▌ 4. How a direct delegation is terminated&lt;br/&gt;&lt;br/&gt;A direct delegation from X to Y is terminated when X signs a Declaration of Revocation of Signing Authority and records it on-chain, with Y&#39;s signature too if the original delegation required it. The delegation terminates at the time of the block in which the revocation was recorded. Everything Y signed while the delegation was in effect stays attributed to X; nothing it signs afterward does. A stolen signer therefore damages only the window between key compromise and revocation, and that window is the user&#39;s to close.&lt;br/&gt;&lt;br/&gt;When a delegation and a revocation between the same X and Y land in the same block, the revocation is by convention treated as occurring first and the delegation thereafter. The convention is a tiebreaker for cases that block timestamps cannot order.&lt;br/&gt;&lt;br/&gt;▌ 5. Permanent key invalidation&lt;br/&gt;&lt;br/&gt;The third declaration is the Declaration of Permanent Invalidation of a Key Pair, signed by a key pair against itself, declaring that from then on it can no longer participate in any direct delegation, as delegator or delegatee. Once recorded on-chain, it takes effect at the time of its block. From that point, all existing direct delegations involving the key are terminated, and no new one involving it can come into existence, even if a declaration naming it is later recorded.&lt;br/&gt;&lt;br/&gt;Its main use is invalidating a compromised master key. Such a key has no delegator above it, so ordinary revocation is unavailable; permanent invalidation lets its owner withdraw it from the system entirely.&lt;br/&gt;&lt;br/&gt;▌ 6. Delegation timelines&lt;br/&gt;&lt;br/&gt;A client can read the three kinds of declaration from the chain and, for any pubkey and any past moment up to the present, compute the direct delegations that pubkey was involved in at that moment. The indirect ones follow by transitive closure. So for any pubkey a client can compile a complete timeline of every direct and indirect delegation it has ever been involved in, and trace each back to the declaration that established it. Because the rules are fixed and the data is public, every client computes the same timeline, and no server has to be trusted to report it.&lt;br/&gt;&lt;br/&gt;▌ 7. Bitcoin timestamping of events&lt;br/&gt;&lt;br/&gt;Attribution needs an objective, auditable rule for when the signing of each event is deemed to have occurred. A self-declared created_at proves nothing on its own.&lt;br/&gt;&lt;br/&gt;Events are anchored to Bitcoin using OpenTimestamps (OTS). An OTS proof for an event establishes that the event and its signature existed by the time of a specific Bitcoin block. An event&#39;s created_at is then treated as its objective signing time when a proof shows the event and its signature existed shortly after that time. The length of the &#34;shortly after&#34; window is configurable; the reference implementation defaults to four hours. Events without such a proof are treated as if they carried no valid signature at all: they are not displayed, and are attributed to no one.&lt;br/&gt;&lt;br/&gt;A proof over the event id alone would show only that the event&#39;s contents existed by the attested block, not that anyone had yet signed them. Binding the signature into the proof as well shows that the signature itself existed by then, which is what an objective signing time requires. These proofs are published as kind 31045 events (§10).&lt;br/&gt;&lt;br/&gt;▌ 8. Attribution of events&lt;br/&gt;&lt;br/&gt;We now know, for any past time T and any two keys X and Y, whether X delegated (directly or indirectly) to Y at T; and for any event Y signed with both a valid signature and a valid OTS anchor, we have an objective signing time. Together these give a well-defined attribution rule:&lt;br/&gt;&lt;br/&gt;An event E is attributed to a key X if and only if some key Y validly signed E at a time T and, as of T, X delegated signing authority to Y.&lt;br/&gt;&lt;br/&gt;So a text note signed by a delegatee Y during a valid delegation period from X appears on X&#39;s timeline and is displayed there under X&#39;s profile, as if posted by X, even though X&#39;s own key never signed it.&lt;br/&gt;&lt;br/&gt;▌ 9. Two profiles, one identity&lt;br/&gt;&lt;br/&gt;You log in with your signer key and sign events with it, exactly as in any other Nostr client. Those events appear on the signer&#39;s own profile, and in addition on the profile of each of its delegators, up to your top-level identity.&lt;br/&gt;&lt;br/&gt;You set the signer&#39;s profile by publishing a kind-0 event as usual. Separately, a signer can also set a profile for each of its current delegators, so that a top-level identity can present a face to the world without signing any event itself. This delegator-profile mechanism is kind 31065 (§10).&lt;br/&gt;&lt;br/&gt;Your identity&#39;s profile is what you present to the world. Others should follow and interact with the identity, not with the signer beneath it. The signer is ephemeral and expected to be replaced; the identity is permanent, and is the thing followers should attach to.&lt;br/&gt;&lt;br/&gt;▌ 10. Event kinds&lt;br/&gt;&lt;br/&gt;This NIP defines two addressable event kinds (kinds 30000 to 39999 in NIP-01, where the latest event for a given (pubkey, kind, d-tag) replaces any earlier one).&lt;br/&gt;&lt;br/&gt;Kind | Name | d tag | Signed by&lt;br/&gt;31045 | Bitcoin timestamp | id of the referenced event | any party&lt;br/&gt;31065 | Attributed profile | the delegator&#39;s pubkey | a delegatee&lt;br/&gt;&lt;br/&gt;▌ 10.1 Kind 31045: Bitcoin timestamp&lt;br/&gt;&lt;br/&gt;A 31045 event carries an OpenTimestamps proof for another event (§7). It is addressable by the referenced event&#39;s id, so a consumer finds the proof for an event E by querying kind 31045 with d = [E.id], whoever published it. Any valid proof for E is as good as any other, because the proof rests on Bitcoin and not on its publisher.&lt;br/&gt;&lt;br/&gt;31045 event tags, marked (yes) if required, (no) if not:&lt;br/&gt;&lt;br/&gt;d   (yes): Id of the referenced event. The addressable key.&lt;br/&gt;s   (yes): Signature of the referenced event. With d, binds the proof to a signed event, not just an id.&lt;br/&gt;p   (no):  Author pubkey of the referenced event.&lt;br/&gt;b   (no):  Bitcoin block height of the attestation, or not_yet_available while pending.&lt;br/&gt;t   (no):  Bitcoin block time (unix seconds), or not_yet_available while pending.&lt;br/&gt;c   (no):  created_at of the referenced event, when known.&lt;br/&gt;alt (no):  NIP-31 summary, e.g. Complete Bitcoin Timestamp.&lt;br/&gt;&lt;br/&gt;content is the base64-encoded OpenTimestamps (.ots) proof. Its leaf must commit to sha256(referenced_id || referenced_signature), the concatenation of the referenced event&#39;s 32-byte id and 64-byte signature. A consumer should verify the proof against its own view of the Bitcoin chain rather than rely on a relay having accepted it.&lt;br/&gt;&lt;br/&gt;Only d and s, together with a verifiable content proof, are required to verify a timestamp. Every single-letter tag (d, p, s, b, t, c) is relay-indexed, so it can also serve as a query key, for example finding proofs by referenced author (p) or by anchoring block (b). b and t additionally duplicate what the proof itself attests; alt is not indexed and serves only as a NIP-31 display label.&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &#34;kind&#34;: 31045,&lt;br/&gt;  &#34;tags&#34;: [&lt;br/&gt;    [&#34;d&#34;, &#34;&lt;referenced-event-id&gt;&#34;],&lt;br/&gt;    [&#34;p&#34;, &#34;&lt;referenced-event-author&gt;&#34;],&lt;br/&gt;    [&#34;s&#34;, &#34;&lt;referenced-event-signature&gt;&#34;],&lt;br/&gt;    [&#34;b&#34;, &#34;&lt;bitcoin-block-height&gt;&#34;],&lt;br/&gt;    [&#34;t&#34;, &#34;&lt;bitcoin-block-time&gt;&#34;],&lt;br/&gt;    [&#34;alt&#34;, &#34;Complete Bitcoin Timestamp&#34;],&lt;br/&gt;    [&#34;c&#34;, &#34;&lt;referenced-event-created-at&gt;&#34;]&lt;br/&gt;  ],&lt;br/&gt;  &#34;content&#34;: &#34;&lt;base64 .ots proof committing to sha256(id||sig)&gt;&#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;▌ 10.2 Kind 31065: Attributed profile&lt;br/&gt;&lt;br/&gt;A 31065 event is a profile for one key, published by another: how an identity that never signs anything nonetheless presents a face to the world (§9). Its d tag is the delegator&#39;s pubkey, the identity the profile describes, while the event is signed by a delegatee authorized to sign for it. The defining property is that event.pubkey, the signer, is not the subject d. A consumer must confirm, against the delegation timeline of §6, that the signer was a current delegatee of the subject before honoring the profile; one signed by a non-delegatee is ignored.&lt;br/&gt;&lt;br/&gt;31065 event tags, marked (yes) if required:&lt;br/&gt;&lt;br/&gt;d   (yes): The subject: the delegator&#39;s pubkey.&lt;br/&gt;alt (yes): The exact string Attributed profile.&lt;br/&gt;&lt;br/&gt;content is a JSON object carrying the subject&#39;s presentation. Its kind-0-style fields (name, display_name, about, picture, banner, website, nip05, lud16) mean what they mean in NIP-01 and NIP-05. It may also carry the subject&#39;s follow list, mute list, and a map giving relay lists for the members of the identity&#39;s delegation network (the keys tied to it by delegation), so a client can present and route for the identity without a further fetch.&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &#34;kind&#34;: 31065,&lt;br/&gt;  &#34;pubkey&#34;: &#34;&lt;delegatee-that-signs&gt;&#34;,&lt;br/&gt;  &#34;tags&#34;: [&lt;br/&gt;    [&#34;d&#34;, &#34;&lt;delegator-pubkey-the-profile-is-for&gt;&#34;],&lt;br/&gt;    [&#34;alt&#34;, &#34;Attributed profile&#34;]&lt;br/&gt;  ],&lt;br/&gt;  &#34;content&#34;: &#34;{\&#34;name\&#34;:\&#34;…\&#34;,\&#34;display_name\&#34;:\&#34;…\&#34;,\&#34;about\&#34;:\&#34;…\&#34;,\&#34;website\&#34;:\&#34;…\&#34;,\&#34;nip05\&#34;:\&#34;…\&#34;,\&#34;picture\&#34;:\&#34;…\&#34;,\&#34;relay_lists_by_pubkey\&#34;:{\&#34;&lt;pubkey&gt;\&#34;:{\&#34;readWriteRelays\&#34;:[[\&#34;r\&#34;,\&#34;&lt;relay-url&gt;\&#34;,\&#34;&lt;scope&gt;\&#34;]],\&#34;favoriteRelays\&#34;:[\&#34;&lt;relay-url&gt;\&#34;],\&#34;relaySets\&#34;:[{\&#34;id\&#34;:\&#34;…\&#34;,\&#34;name\&#34;:\&#34;…\&#34;,\&#34;relayUrls\&#34;:[\&#34;&lt;relay-url&gt;\&#34;]}]}},\&#34;publicly_muted_pubkey_hex_ids\&#34;:[\&#34;&lt;muted-pubkey&gt;\&#34;],\&#34;current_snapshot_of_dir_indir_followed_pubkey\&#34;:[[\&#34;p\&#34;,\&#34;&lt;followed-pubkey&gt;\&#34;]]}&#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;Because 31065 is addressable, the current profile for an identity is simply the latest one whose d is that identity, signed by a key that is currently its delegatee. When the signer is rotated, the new signer republishes, and the identity&#39;s face carries across the change unbroken.&lt;br/&gt;&lt;br/&gt;▌ 11. Reference implementation&lt;br/&gt;&lt;br/&gt;Inkan (&lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;) implements this specification as a working Nostr client and a cooperating relay at wss://relay.inkan.cc. Delegation, revocation, and permanent invalidation are recorded by an Ethereum contract deployed at 0x385C0A272b1f44687cb360557b25827bD7CdB7eb, which is the normative reference for the exact on-chain declaration encoding. A separate, network-disconnected &#34;Management Utility&#34; generates keys and signs declarations on an air-gapped machine, so a master key can be created and used to bootstrap an identity without ever touching a networked host. &lt;/blockquote&gt;
    </content>
    <updated>2026-08-20T10:51:11Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsf7kh92pfmdw3hr0axpg38nav58x9h0pfplyjdgycaynuyk27lydsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sy98mxp</id>
    
      <title type="html">Huh, it looks like NostrHub isn&amp;#39;t actually surfacing the ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsf7kh92pfmdw3hr0axpg38nav58x9h0pfplyjdgycaynuyk27lydsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sy98mxp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0weh6ezae8zf86yt5czttapz05m3wh275cmr0nf6dhs6e2352pmspz4mhxue69uhhyetvv9uju6twddskutnrvvhshmcshn&#39;&gt;nevent1q…cshn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Huh, it looks like NostrHub isn&amp;#39;t actually surfacing the draft NIP or the link to Inkan that I published there. That would make that site unsuitable for discussing NIPs. &lt;br/&gt;&lt;br/&gt;Maybe I should republish the NIP here as a long-form note, with markdown for better formatting ...
    </content>
    <updated>2026-08-21T01:56:04Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgqfmhjwxm9uklffcjyye9w403gnq6vewru9edsm8frsve5g0ukwqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sgkv7dk</id>
    
      <title type="html">Thanks, that might work. I&amp;#39;ll give it a try.</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgqfmhjwxm9uklffcjyye9w403gnq6vewru9edsm8frsve5g0ukwqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sgkv7dk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgy7kr9pn4le9atkceeff072uxqde9duvwu4c3dhlkkayy3gm2lxcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc65fqx6&#39;&gt;nevent1q…fqx6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, that might work. I&amp;#39;ll give it a try.
    </content>
    <updated>2026-08-19T16:30:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp8rz2vkjz86k83ec0jre6a7sxd6ufsx64hl684kfpnpd2rtdmxrsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sgwtfge</id>
    
      <title type="html">NIP-XX Cold-Storage Identities for Nostr draft optional This NIP ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp8rz2vkjz86k83ec0jre6a7sxd6ufsx64hl684kfpnpd2rtdmxrsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sgwtfge" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgy7kr9pn4le9atkceeff072uxqde9duvwu4c3dhlkkayy3gm2lxcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc65fqx6&#39;&gt;nevent1q…fqx6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;NIP-XX&lt;br/&gt;&lt;br/&gt;Cold-Storage Identities for Nostr&lt;br/&gt;&lt;br/&gt;draft optional&lt;br/&gt;&lt;br/&gt;This NIP specifies online identities whose private key can be created in cold storage and stay there permanently. The key never has to touch an internet-connected device, and does not have to be kept close at hand. The identity can nonetheless be used easily for everyday online authentication, such as posting, replying, messaging, or signing in to services.&lt;br/&gt;&lt;br/&gt;▌ 1. How it works&lt;br/&gt;&lt;br/&gt;The identity-securing key never signs Nostr events itself. It delegates signing authority to delegatee keys, which handle the everyday signing on its behalf. If a delegatee key is lost or stolen, it is replaced, and the identity is untouched.&lt;br/&gt;&lt;br/&gt;▌ 2. Delegations between keys&lt;br/&gt;&lt;br/&gt;Delegations are time-indexed two-place relations. Between any two key pairs, at any moment, the first either delegates signing authority to the second or it does not. When it does, the second key is authorized to sign on the first&amp;#39;s behalf. When it does not, the second has no such authority.&lt;br/&gt;&lt;br/&gt;Delegations are either direct or indirect. A direct delegation arises when one key has expressly declared that it delegates signing authority to another. An indirect delegation arises because the relation is transitively closed: if X delegates to Y and Y delegates to Z, then X indirectly delegates to Z. This is what lets an identity be built as a chain (master → intermediate → signer), so that events signed by the bottom key are attributed all the way up to the master, while the master, having signed the top link once, retires to cold storage.&lt;br/&gt;&lt;br/&gt;▌ 3. How a direct delegation is created&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is created when both key pairs sign a Declaration of Delegation of Signing Authority, by which X declares that it delegates signing authority to Y and Y declares that it accepts. The signed declaration is then recorded on-chain (the reference implementation uses Ethereum). The delegation begins at the time of the block in which the declaration was recorded, and remains in effect until it is revoked.&lt;br/&gt;&lt;br/&gt;One special case: this holds only if neither X nor Y has previously permanently invalidated itself (§5). If either has, no delegation is created, even though the declaration sits on-chain.&lt;br/&gt;&lt;br/&gt;As part of the declaration, X and Y also specify whether X can revoke the delegation unilaterally or whether Y&amp;#39;s consent is required. The default is unilateral revocation by X, and it is the right default for most users: if Y&amp;#39;s key is ever lost, X can still revoke it alone. Were Y&amp;#39;s consent required, a lost Y could never be revoked, because Y would no longer be available to sign.&lt;br/&gt;&lt;br/&gt;▌ 4. How a direct delegation is terminated&lt;br/&gt;&lt;br/&gt;A direct delegation from X to Y is terminated when X signs a Declaration of Revocation of Signing Authority and records it on-chain, with Y&amp;#39;s signature too if the original delegation required it. The delegation terminates at the time of the block in which the revocation was recorded. Everything Y signed while the delegation was in effect stays attributed to X; nothing it signs afterward does. A stolen signer therefore damages only the window between key compromise and revocation, and that window is the user&amp;#39;s to close.&lt;br/&gt;&lt;br/&gt;When a delegation and a revocation between the same X and Y land in the same block, the revocation is by convention treated as occurring first and the delegation thereafter. The convention is a tiebreaker for cases that block timestamps cannot order.&lt;br/&gt;&lt;br/&gt;▌ 5. Permanent key invalidation&lt;br/&gt;&lt;br/&gt;The third declaration is the Declaration of Permanent Invalidation of a Key Pair, signed by a key pair against itself, declaring that from then on it can no longer participate in any direct delegation, as delegator or delegatee. Once recorded on-chain, it takes effect at the time of its block. From that point, all existing direct delegations involving the key are terminated, and no new one involving it can come into existence, even if a declaration naming it is later recorded.&lt;br/&gt;&lt;br/&gt;Its main use is invalidating a compromised master key. Such a key has no delegator above it, so ordinary revocation is unavailable; permanent invalidation lets its owner withdraw it from the system entirely.&lt;br/&gt;&lt;br/&gt;▌ 6. Delegation timelines&lt;br/&gt;&lt;br/&gt;A client can read the three kinds of declaration from the chain and, for any pubkey and any past moment up to the present, compute the direct delegations that pubkey was involved in at that moment. The indirect ones follow by transitive closure. So for any pubkey a client can compile a complete timeline of every direct and indirect delegation it has ever been involved in, and trace each back to the declaration that established it. Because the rules are fixed and the data is public, every client computes the same timeline, and no server has to be trusted to report it.&lt;br/&gt;&lt;br/&gt;▌ 7. Bitcoin timestamping of events&lt;br/&gt;&lt;br/&gt;Attribution needs an objective, auditable rule for when the signing of each event is deemed to have occurred. A self-declared created_at proves nothing on its own.&lt;br/&gt;&lt;br/&gt;Events are anchored to Bitcoin using OpenTimestamps (OTS). An OTS proof for an event establishes that the event and its signature existed by the time of a specific Bitcoin block. An event&amp;#39;s created_at is then treated as its objective signing time when a proof shows the event and its signature existed shortly after that time. The length of the &amp;#34;shortly after&amp;#34; window is configurable; the reference implementation defaults to four hours. Events without such a proof are treated as if they carried no valid signature at all: they are not displayed, and are attributed to no one.&lt;br/&gt;&lt;br/&gt;A proof over the event id alone would show only that the event&amp;#39;s contents existed by the attested block, not that anyone had yet signed them. Binding the signature into the proof as well shows that the signature itself existed by then, which is what an objective signing time requires. These proofs are published as kind 31045 events (§10).&lt;br/&gt;&lt;br/&gt;▌ 8. Attribution of events&lt;br/&gt;&lt;br/&gt;We now know, for any past time T and any two keys X and Y, whether X delegated (directly or indirectly) to Y at T; and for any event Y signed with both a valid signature and a valid OTS anchor, we have an objective signing time. Together these give a well-defined attribution rule:&lt;br/&gt;&lt;br/&gt;An event E is attributed to a key X if and only if some key Y validly signed E at a time T and, as of T, X delegated signing authority to Y.&lt;br/&gt;&lt;br/&gt;So a text note signed by a delegatee Y during a valid delegation period from X appears on X&amp;#39;s timeline and is displayed there under X&amp;#39;s profile, as if posted by X, even though X&amp;#39;s own key never signed it.&lt;br/&gt;&lt;br/&gt;▌ 9. Two profiles, one identity&lt;br/&gt;&lt;br/&gt;You log in with your signer key and sign events with it, exactly as in any other Nostr client. Those events appear on the signer&amp;#39;s own profile, and in addition on the profile of each of its delegators, up to your top-level identity.&lt;br/&gt;&lt;br/&gt;You set the signer&amp;#39;s profile by publishing a kind-0 event as usual. Separately, a signer can also set a profile for each of its current delegators, so that a top-level identity can present a face to the world without signing any event itself. This delegator-profile mechanism is kind 31065 (§10).&lt;br/&gt;&lt;br/&gt;Your identity&amp;#39;s profile is what you present to the world. Others should follow and interact with the identity, not with the signer beneath it. The signer is ephemeral and expected to be replaced; the identity is permanent, and is the thing followers should attach to.&lt;br/&gt;&lt;br/&gt;▌ 10. Event kinds&lt;br/&gt;&lt;br/&gt;This NIP defines two addressable event kinds (kinds 30000 to 39999 in NIP-01, where the latest event for a given (pubkey, kind, d-tag) replaces any earlier one).&lt;br/&gt;&lt;br/&gt;Kind | Name | d tag | Signed by&lt;br/&gt;31045 | Bitcoin timestamp | id of the referenced event | any party&lt;br/&gt;31065 | Attributed profile | the delegator&amp;#39;s pubkey | a delegatee&lt;br/&gt;&lt;br/&gt;▌ 10.1 Kind 31045: Bitcoin timestamp&lt;br/&gt;&lt;br/&gt;A 31045 event carries an OpenTimestamps proof for another event (§7). It is addressable by the referenced event&amp;#39;s id, so a consumer finds the proof for an event E by querying kind 31045 with d = [E.id], whoever published it. Any valid proof for E is as good as any other, because the proof rests on Bitcoin and not on its publisher.&lt;br/&gt;&lt;br/&gt;31045 event tags, marked (yes) if required, (no) if not:&lt;br/&gt;&lt;br/&gt;d   (yes): Id of the referenced event. The addressable key.&lt;br/&gt;s   (yes): Signature of the referenced event. With d, binds the proof to a signed event, not just an id.&lt;br/&gt;p   (no):  Author pubkey of the referenced event.&lt;br/&gt;b   (no):  Bitcoin block height of the attestation, or not_yet_available while pending.&lt;br/&gt;t   (no):  Bitcoin block time (unix seconds), or not_yet_available while pending.&lt;br/&gt;c   (no):  created_at of the referenced event, when known.&lt;br/&gt;alt (no):  NIP-31 summary, e.g. Complete Bitcoin Timestamp.&lt;br/&gt;&lt;br/&gt;content is the base64-encoded OpenTimestamps (.ots) proof. Its leaf must commit to sha256(referenced_id || referenced_signature), the concatenation of the referenced event&amp;#39;s 32-byte id and 64-byte signature. A consumer should verify the proof against its own view of the Bitcoin chain rather than rely on a relay having accepted it.&lt;br/&gt;&lt;br/&gt;Only d and s, together with a verifiable content proof, are required to verify a timestamp. Every single-letter tag (d, p, s, b, t, c) is relay-indexed, so it can also serve as a query key, for example finding proofs by referenced author (p) or by anchoring block (b). b and t additionally duplicate what the proof itself attests; alt is not indexed and serves only as a NIP-31 display label.&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 31045,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;referenced-event-id&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;referenced-event-author&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;s&amp;#34;, &amp;#34;&amp;lt;referenced-event-signature&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;b&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-height&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;t&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-time&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;alt&amp;#34;, &amp;#34;Complete Bitcoin Timestamp&amp;#34;],&lt;br/&gt;    [&amp;#34;c&amp;#34;, &amp;#34;&amp;lt;referenced-event-created-at&amp;gt;&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;&amp;lt;base64 .ots proof committing to sha256(id||sig)&amp;gt;&amp;#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;▌ 10.2 Kind 31065: Attributed profile&lt;br/&gt;&lt;br/&gt;A 31065 event is a profile for one key, published by another: how an identity that never signs anything nonetheless presents a face to the world (§9). Its d tag is the delegator&amp;#39;s pubkey, the identity the profile describes, while the event is signed by a delegatee authorized to sign for it. The defining property is that event.pubkey, the signer, is not the subject d. A consumer must confirm, against the delegation timeline of §6, that the signer was a current delegatee of the subject before honoring the profile; one signed by a non-delegatee is ignored.&lt;br/&gt;&lt;br/&gt;31065 event tags, marked (yes) if required:&lt;br/&gt;&lt;br/&gt;d   (yes): The subject: the delegator&amp;#39;s pubkey.&lt;br/&gt;alt (yes): The exact string Attributed profile.&lt;br/&gt;&lt;br/&gt;content is a JSON object carrying the subject&amp;#39;s presentation. Its kind-0-style fields (name, display_name, about, picture, banner, website, nip05, lud16) mean what they mean in NIP-01 and NIP-05. It may also carry the subject&amp;#39;s follow list, mute list, and a map giving relay lists for the members of the identity&amp;#39;s delegation network (the keys tied to it by delegation), so a client can present and route for the identity without a further fetch.&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &amp;#34;kind&amp;#34;: 31065,&lt;br/&gt;  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;delegatee-that-signs&amp;gt;&amp;#34;,&lt;br/&gt;  &amp;#34;tags&amp;#34;: [&lt;br/&gt;    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;delegator-pubkey-the-profile-is-for&amp;gt;&amp;#34;],&lt;br/&gt;    [&amp;#34;alt&amp;#34;, &amp;#34;Attributed profile&amp;#34;]&lt;br/&gt;  ],&lt;br/&gt;  &amp;#34;content&amp;#34;: &amp;#34;{\&amp;#34;name\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;display_name\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;about\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;website\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;nip05\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;picture\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;relay_lists_by_pubkey\&amp;#34;:{\&amp;#34;&amp;lt;pubkey&amp;gt;\&amp;#34;:{\&amp;#34;readWriteRelays\&amp;#34;:[[\&amp;#34;r\&amp;#34;,\&amp;#34;&amp;lt;relay-url&amp;gt;\&amp;#34;,\&amp;#34;&amp;lt;scope&amp;gt;\&amp;#34;]],\&amp;#34;favoriteRelays\&amp;#34;:[\&amp;#34;&amp;lt;relay-url&amp;gt;\&amp;#34;],\&amp;#34;relaySets\&amp;#34;:[{\&amp;#34;id\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;name\&amp;#34;:\&amp;#34;…\&amp;#34;,\&amp;#34;relayUrls\&amp;#34;:[\&amp;#34;&amp;lt;relay-url&amp;gt;\&amp;#34;]}]}},\&amp;#34;publicly_muted_pubkey_hex_ids\&amp;#34;:[\&amp;#34;&amp;lt;muted-pubkey&amp;gt;\&amp;#34;],\&amp;#34;current_snapshot_of_dir_indir_followed_pubkey\&amp;#34;:[[\&amp;#34;p\&amp;#34;,\&amp;#34;&amp;lt;followed-pubkey&amp;gt;\&amp;#34;]]}&amp;#34;&lt;br/&gt;}&lt;br/&gt;&lt;br/&gt;Because 31065 is addressable, the current profile for an identity is simply the latest one whose d is that identity, signed by a key that is currently its delegatee. When the signer is rotated, the new signer republishes, and the identity&amp;#39;s face carries across the change unbroken.&lt;br/&gt;&lt;br/&gt;▌ 11. Reference implementation&lt;br/&gt;&lt;br/&gt;Inkan (&lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;) implements this specification as a working Nostr client and a cooperating relay at wss://relay.inkan.cc. Delegation, revocation, and permanent invalidation are recorded by an Ethereum contract deployed at 0x385C0A272b1f44687cb360557b25827bD7CdB7eb, which is the normative reference for the exact on-chain declaration encoding. A separate, network-disconnected &amp;#34;Management Utility&amp;#34; generates keys and signs declarations on an air-gapped machine, so a master key can be created and used to bootstrap an identity without ever touching a networked host.
    </content>
    <updated>2026-08-20T10:46:19Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0weh6ezae8zf86yt5czttapz05m3wh275cmr0nf6dhs6e2352pmsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sawsly6</id>
    
      <title>Nostr event nevent1qqs0weh6ezae8zf86yt5czttapz05m3wh275cmr0nf6dhs6e2352pmsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sawsly6</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0weh6ezae8zf86yt5czttapz05m3wh275cmr0nf6dhs6e2352pmsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sawsly6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgy7kr9pn4le9atkceeff072uxqde9duvwu4c3dhlkkayy3gm2lxcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc65fqx6&#39;&gt;nevent1q…fqx6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Done.&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://nostrhub.io/naddr1qvzqqqrcvypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqqskxmmvvskhxar0wfskwefdd9jx2mn5d96xjetn94nx7u3ddehhxarjnjhzrn&#34;&gt;https://nostrhub.io/naddr1qvzqqqrcvypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqqskxmmvvskhxar0wfskwefdd9jx2mn5d96xjetn94nx7u3ddehhxarjnjhzrn&lt;/a&gt;
    </content>
    <updated>2026-08-20T10:38:26Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstcc4953ck6fcu3c243jh4g6c4twd6srm5cjes7nahhhdy0k2tl0qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s6d45sz</id>
    
      <title type="html">Good, I&amp;#39;m seeing your 31045 timestamp events on the relay. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstcc4953ck6fcu3c243jh4g6c4twd6srm5cjes7nahhhdy0k2tl0qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s6d45sz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2syel9dc368s52t9qs6t264vqsa460p3wy37y9sdhtda08wvdcwgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcc3aa59&#39;&gt;nevent1q…aa59&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Good, I&amp;#39;m seeing your 31045 timestamp events on the relay.&lt;br/&gt;&lt;br/&gt;Now that the timestamps are available, the events on &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1u280zakdwcv23nqpgatsmz8lw6aj22aa6gjjlx0d50lqr8m8xucq7kf93q&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;npub1u280zakdwcv23nqpgatsmz8lw6aj22aa6gjjlx0d50lqr8m8xucq7kf93q&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1u28…f93q&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;&amp;#39;s profile page should become visible again. If you still cannot see them, let me know - I can see them on my end.&lt;br/&gt;&lt;br/&gt;I think the reason why the toggles were disabled is that you may have logged in with your signer key before I had recorded your identity on-chain. If the client doesn&amp;#39;t detect an on-chain identity when a key first logs in, I think it disables these toggles by default. This setting then sticks even if an on-chain identity is later detected. I should try to make this less confusing somehow.
    </content>
    <updated>2026-08-19T19:42:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsp9f724n7rnnek2cngp8rgewnhdts4tgy9ssj9wmspmgyug74el7gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7sy2xtmc</id>
    
      <title>Nostr event nevent1qqsp9f724n7rnnek2cngp8rgewnhdts4tgy9ssj9wmspmgyug74el7gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7sy2xtmc</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsp9f724n7rnnek2cngp8rgewnhdts4tgy9ssj9wmspmgyug74el7gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7sy2xtmc" />
    <content type="html">
      TS test 8-19-2026-4
    </content>
    <updated>2026-08-19T19:09:21Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqmz29x3wsylnsedksdexrs4p2whqkjr8fd308hh4xc8jvxwlkywcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7svykh2e</id>
    
      <title>Nostr event nevent1qqsqmz29x3wsylnsedksdexrs4p2whqkjr8fd308hh4xc8jvxwlkywcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7svykh2e</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqmz29x3wsylnsedksdexrs4p2whqkjr8fd308hh4xc8jvxwlkywcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7svykh2e" />
    <content type="html">
      TS test 8-19-2026-3
    </content>
    <updated>2026-08-19T19:09:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgshwjn3assz8uf0h6sjpqw0lyq8mdjqdpktegslnekvnjvj4yqpgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7s9fx8sq</id>
    
      <title>Nostr event nevent1qqsgshwjn3assz8uf0h6sjpqw0lyq8mdjqdpktegslnekvnjvj4yqpgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7s9fx8sq</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgshwjn3assz8uf0h6sjpqw0lyq8mdjqdpktegslnekvnjvj4yqpgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7s9fx8sq" />
    <content type="html">
      TS test 8-19-2026-2
    </content>
    <updated>2026-08-19T19:09:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrj8ek30l59q8thnsgms54rsrx8gf5etth7wedvgzpf96t2ysdf7cp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7szq6zax</id>
    
      <title>Nostr event nevent1qqsrj8ek30l59q8thnsgms54rsrx8gf5etth7wedvgzpf96t2ysdf7cp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7szq6zax</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrj8ek30l59q8thnsgms54rsrx8gf5etth7wedvgzpf96t2ysdf7cp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qpy30nwp2zjlm3we9gn6fsp4g22mpsr4smz6cscm92kh6d2qy7y7szq6zax" />
    <content type="html">
      TS test 8-19-2026-1
    </content>
    <updated>2026-08-19T19:08:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs2syel9dc368s52t9qs6t264vqsa460p3wy37y9sdhtda08wvdcwgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es6f2fau</id>
    
      <title type="html">those were disabled by default for some reason. enabled now</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs2syel9dc368s52t9qs6t264vqsa460p3wy37y9sdhtda08wvdcwgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es6f2fau" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgz7nrgcvccgdves3hntjqf6k9uy77j779js46lfujxmgslfmwhxcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcnhsl0p&#39;&gt;nevent1q…sl0p&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;those were disabled by default for some reason. enabled now
    </content>
    <updated>2026-08-19T19:02:46Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspuzersadjpwsc7hgtsmn32h8685064xwrrxc30n2f0c79k8knsqcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3swwtef6</id>
    
      <title type="html">I think that&amp;#39;s most likely the issue I pointed out in the ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspuzersadjpwsc7hgtsmn32h8685064xwrrxc30n2f0c79k8knsqcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3swwtef6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxhly2t2k3v6823hsl2e2z94xtl6qqv4kzqevj05z469y2a5hdzqgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcqnm5ft&#39;&gt;nevent1q…m5ft&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think that&amp;#39;s most likely the issue I pointed out in the note below.&lt;br/&gt;&lt;br/&gt;You have probably been posting from a client other than &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;, which means that you didn&amp;#39;t automatically publish 31045 OTS timestamps for your events to the Inkan relay (only the Inkan client takes care of this automatic publication). This means that Inkan now cannot find these timestamps for your events on the relay and thus treats your events as invalid.&lt;br/&gt;&lt;br/&gt;You should be able to correct this by logging into the Inkan client and making sure that your signer extension approves the signing of 31045 events. You should then probably stay logged in for some time since the client&amp;#39;s catching up on the publication of the missing events might take a while. The timestamps for your events exist on the timestamping server, your Inkan client just needs to catch up with publishing them to the relay as 31045 events.&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7qpq0s68vaad834p7c9jqj8sppfge4wj0qx0dqmfdrn693gucta8g0xsuxw0fn&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…w0fn&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; [Quick technical note, just FYI: I&#39;m not currently seeing 31045 OTS timestamp events for events published by your signer pubkey on the Inkan relay. This might be because you did not allow your signer extension to sign the &#34;31045&#34; events that the client tried to publish. Without these OTS timestamp events being available on the relay, the events you have posted so far will get filtered out and become invisible on the Inkan client once they fall outside the recency window (i.e. soon). However, these events *have* been OTS timestamped and the timestamps are stored on the timestamping server. If you permit your client through the browser extension to publish the 31045 timestamp events in the future, the events you posted should become visible again, once the 31045 OTS timestamp events have been published.] &lt;/blockquote&gt;
    </content>
    <updated>2026-08-19T15:36:39Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgz7nrgcvccgdves3hntjqf6k9uy77j779js46lfujxmgslfmwhxcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3ssnzchg</id>
    
      <title type="html">By the way, you might be able to speed up the process of catching ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgz7nrgcvccgdves3hntjqf6k9uy77j779js46lfujxmgslfmwhxcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3ssnzchg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspuzersadjpwsc7hgtsmn32h8685064xwrrxc30n2f0c79k8knsqcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqxkl90&#39;&gt;nevent1q…kl90&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;By the way, you might be able to speed up the process of catching up on the publication of the timestamps by going to&lt;br/&gt;&lt;br/&gt;Settings &amp;gt;&amp;gt; Inkan Settings &amp;gt;&amp;gt; Delegation &amp;amp; Timestamping&lt;br/&gt;&lt;br/&gt;and on that page switch off and then immediately back on the two toggles that say&lt;br/&gt;&lt;br/&gt;&amp;#34;Periodially collect timestamps info from TS Server&amp;#34;&lt;br/&gt;&lt;br/&gt;and &lt;br/&gt;&lt;br/&gt;&amp;#34;Periodically publish timestamps info to relays&amp;#34;.&lt;br/&gt;&lt;br/&gt;Switching these toggles off and back on should restart these jobs immediately (otherwise they just run periodically while you are logged in).&lt;br/&gt;&lt;br/&gt;Another thing you can try is to switch the &amp;#34;Apply timestamp filter&amp;#34; toggle off, and then go back to the profile page of your master delegator key. I&amp;#39;d predict that the currently missing events will be shown because the functionality that filters out events for which no valid timestamp could be found will have been turned off. Playing with the &amp;#34;Apply timestamp filter&amp;#34; toggle and observing its effect can be useful for getting a more thorough understanding of how Inkan works.
    </content>
    <updated>2026-08-19T15:47:44Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs23cmk85px5hus0ke6asxr0v2w706fl6k56sr5fz3f6hh7clz2zccp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sdpahfa</id>
    
      <title type="html">That would explain it. The Inkan client sends the 31045 timestamp ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs23cmk85px5hus0ke6asxr0v2w706fl6k56sr5fz3f6hh7clz2zccp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sdpahfa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrwnh09jdt3hhruwaqpakrkty5d8gthzn9y8cs40sd7yw54d9h74gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs9gaqgq&#39;&gt;nevent1q…aqgq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That would explain it. The Inkan client sends the 31045 timestamp events to the Inkan relay automatically while you are logged into the client.&lt;br/&gt;&lt;br/&gt;So when you log in the next time, you may not immediately see the regular events you posted since the client won&amp;#39;t find their timestamps on the relay at first. However, it should catch up over time as the 31045 events are getting posted to the relay and the client can then later retrieve them. So they should become visible again after a while.&lt;br/&gt;&lt;br/&gt;If you use another client, the important thing is to include wss://relay.inkan.cc among the relays you post to (it looks like you are doing this!). If your events don&amp;#39;t end up on that Inkan relay soon after their created_at, they don&amp;#39;t get timely OTS timestamps at all, which makes them forever &amp;#34;invalid&amp;#34; from Inkan&amp;#39;s perspective.
    </content>
    <updated>2026-08-18T15:17:34Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxhly2t2k3v6823hsl2e2z94xtl6qqv4kzqevj05z469y2a5hdzqgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esderdvx</id>
    
      <title type="html">@npub16xn…6z6l my delegation account is empty and signer ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxhly2t2k3v6823hsl2e2z94xtl6qqv4kzqevj05z469y2a5hdzqgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esderdvx" />
    <content type="html">
      &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub16xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3su56z6l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;inkan&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub16xn…6z6l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; my delegation account is empty and signer profile is empty except the most recent post. is this normal? :)
    </content>
    <updated>2026-08-19T09:54:33Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsf6hxylmvcy0c8pwwx24cp53csc3rrul3ll7jvu3y6srqmxjvzqkcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esktlg4r</id>
    
      <title type="html">thanks, will add it!</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsf6hxylmvcy0c8pwwx24cp53csc3rrul3ll7jvu3y6srqmxjvzqkcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esktlg4r" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs23cmk85px5hus0ke6asxr0v2w706fl6k56sr5fz3f6hh7clz2zccpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcl0w0sf&#39;&gt;nevent1q…w0sf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;thanks, will add it!
    </content>
    <updated>2026-08-18T17:56:41Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsv62tqqw69y6w5222gz09ur2svad5v20w6qj7ptuywjaga8w6lwdsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3snpweul</id>
    
      <title type="html">It looks like most of my Nostr events get timestamped within 30 ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsv62tqqw69y6w5222gz09ur2svad5v20w6qj7ptuywjaga8w6lwdsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3snpweul" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq85y4tdk97szhyr6a0r7c07gsecusla4mglqxla3vnwhfl4vfspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcrgrncl&#39;&gt;nevent1q…rncl&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It looks like most of my Nostr events get timestamped within 30 minutes, often faster than 15 minutes. A few take up to 45 minutes. And then there is the occasional outlier taking 2 1/2 hours. The client uses a default setting under which it considers an event &amp;#34;validly signed and dated&amp;#34; if its OTS timestamp comes within 4 hours after its created_at.
    </content>
    <updated>2026-08-18T17:29:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsq903msvs7d8rla0vfa5gyr92wfsmvtffluks4r0wu6jeg2af25eqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3scz44ur</id>
    
      <title type="html">OTS was a huge pain in getting Inkan to work reasonably fast. At ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsq903msvs7d8rla0vfa5gyr92wfsmvtffluks4r0wu6jeg2af25eqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3scz44ur" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswfash6g24tr8a70vmd9andwc6y0qtwhjhzpcyf0w2ypv4g0d505spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsantyds&#39;&gt;nevent1q…tyds&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;OTS was a huge pain in getting Inkan to work reasonably fast.&lt;br/&gt;&lt;br/&gt;At first I wanted to make it work without relay modifications, which meant that the client had, after receiving a regular event, go out a second time to check whether an OTS proof for that event was available on the relay. That led to huge bottlenecks and involved complicated caching mechanisms etc.&lt;br/&gt;&lt;br/&gt;The solution to this was to make the relay itself return the OTS proof synchronously along with the reference event (whenever the relay stores such an OTS proof).&lt;br/&gt;&lt;br/&gt;FYI, there is currently a small bug in the OTS implementation that can lead to interference when a pubkey decides to publish 31045 OTS proofs on behalf of *another* pubkey. I haven&amp;#39;t gotten around to fixing this, but it shouldn&amp;#39;t affect things with the default settings where pubkeys only publish proofs for their own events.&lt;br/&gt;&lt;br/&gt;Your AI can explain the details of the OTS-enabled relay. I&amp;#39;d also be curious to see your OTS lib if you release it.
    </content>
    <updated>2026-08-18T15:48:18Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspe0jax9hyk9pwrz38cdh8lak627hmp93kp99tgwpsjp8ys3zmzxgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s5s4d03</id>
    
      <title type="html">If you feel like it, you can even delegate from your Inkan seed ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspe0jax9hyk9pwrz38cdh8lak627hmp93kp99tgwpsjp8ys3zmzxgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s5s4d03" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsp36gxd9f20xmyk3a2vrmmvwcnnsfwnlaa06r5u6dnfxlzl9ar2zqpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0dj53ql&#39;&gt;nevent1q…53ql&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If you feel like it, you can even delegate from your Inkan seed key&lt;br/&gt;&lt;br/&gt;&amp;#34;npub1u280zakdwcv23nqpgatsmz8lw6aj22aa6gjjlx0d50lqr8m8xucq7kf93q&amp;#34;&lt;br/&gt;&lt;br/&gt;down to your usual pubkey for ngmi, i.e. down to&lt;br/&gt;&lt;br/&gt;&amp;#34;npub14p7fhlz9wrlptt7a5mqqjkk79460k98r999l7dafv4fznqaa565qhjdzry&amp;#34;&lt;br/&gt;&lt;br/&gt;If you did that, any future posts by your usual ngmi key will get automatically attributed to the Inkan seed key (until you revoke the delegation). If you include the Inkan relay when making your usual ngmi posts, you&amp;#39;ll also get automatic OTS timestamps for notes you post with your ngmi key, which you can download and keep for your records.&lt;br/&gt;&lt;br/&gt;Other people will of course be able to see your ngmi posts from any Nostr client as usual. And if they log into Inkan, they&amp;#39;ll also be able to see your events being attributed to your Inkan seed key identity.&lt;br/&gt;&lt;br/&gt;To create a delegation like that, you&amp;#39;d need to use the &amp;#34;Build Custom Transaction&amp;#34; menu in the Inkan Management Utility. You can download a Linux AppImage of the Management Utility here:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/settings/inkan-management-utility&#34;&gt;https://www.inkan.cc/settings/inkan-management-utility&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The actual delegation you&amp;#39;d be creating would be from your current Inkan signer key to the ngmi key, extending the delegation chain down to your ngmi key.&lt;br/&gt;&lt;br/&gt;Happy to walk you through creating this kind of transaction and sponsor it if you&amp;#39;re interested. But no pressure, I don&amp;#39;t mean to overwhelming, just wanted to point this out as an option.🙇
    </content>
    <updated>2026-08-18T18:12:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqqxfn7w5np4awtmee2y2p724fxal02yj2pthk7ccpz6py0f2u5scp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esd8dpcv</id>
    
      <title type="html">Degraded performance for Claude Opus 5 and Claude Haiku 4.5 and ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqqxfn7w5np4awtmee2y2p724fxal02yj2pthk7ccpz6py0f2u5scp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esd8dpcv" />
    <content type="html">
      Degraded performance for Claude Opus 5 and Claude Haiku 4.5&lt;br/&gt;&lt;br/&gt;and again, and again, and again...&lt;br/&gt;&lt;br/&gt;#anthropic
    </content>
    <updated>2026-08-19T09:48:28Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspzmuv6ycw3g6lj5f5txakzdrqmkexj54a5vs630t0hylyyxmxumcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esql7k0z</id>
    
      <title type="html">got myself a fancy @npub1qu7…7p98 #mailstr address 🥰</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspzmuv6ycw3g6lj5f5txakzdrqmkexj54a5vs630t0hylyyxmxumcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esql7k0z" />
    <content type="html">
      got myself a fancy &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1qu7dsd44275lms4x9snnwvnnmgx926nsppmr7lcw9dlj36n4fltqgs7p98&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Form*&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1qu7…7p98&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; #mailstr address 🥰
    </content>
    <updated>2026-08-18T18:43:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqdpqernwz9j9jgzu2fg4dh28zr72xm470z00489emjyhv86v0nygp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3slu2hgh</id>
    
      <title type="html">That would also be my opinion.</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqdpqernwz9j9jgzu2fg4dh28zr72xm470z00489emjyhv86v0nygp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3slu2hgh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspmcvgtep0m6pag9z5x60v4ff6vhvqfx6n296l4aa7ftswzyrnedspz4mhxue69uhhyetvv9uju6twddskutnrvvhs7ngw04&#39;&gt;nevent1q…gw04&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That would also be my opinion.
    </content>
    <updated>2026-08-18T12:54:03Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsrwnh09jdt3hhruwaqpakrkty5d8gthzn9y8cs40sd7yw54d9h74gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es5n5xa8</id>
    
      <title type="html">Posting from amethyst atm 🤔</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsrwnh09jdt3hhruwaqpakrkty5d8gthzn9y8cs40sd7yw54d9h74gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es5n5xa8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8cdrkw7knc6slvzeqfrcqs55v6hf8sr8ksd5k3eazc5wv97n58ngpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcjpfn23&#39;&gt;nevent1q…fn23&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Posting from amethyst atm 🤔
    </content>
    <updated>2026-08-18T14:00:45Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8cdrkw7knc6slvzeqfrcqs55v6hf8sr8ksd5k3eazc5wv97n58ngp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s6mszte</id>
    
      <title type="html">[Quick technical note, just FYI: I&amp;#39;m not currently seeing ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8cdrkw7knc6slvzeqfrcqs55v6hf8sr8ksd5k3eazc5wv97n58ngp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s6mszte" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5w5uex&#39;&gt;nevent1q…5uex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;[Quick technical note, just FYI: I&amp;#39;m not currently seeing 31045 OTS timestamp events for events published by your signer pubkey on the Inkan relay. This might be because you did not allow your signer extension to sign the &amp;#34;31045&amp;#34; events that the client tried to publish. Without these OTS timestamp events being available on the relay, the events you have posted so far will get filtered out and become invisible on the Inkan client once they fall outside the recency window (i.e. soon). However, these events *have* been OTS timestamped and the timestamps are stored on the timestamping server. If you permit your client through the browser extension to publish the 31045 timestamp events in the future, the events you posted should become visible again, once the 31045 OTS timestamp events have been published.]
    </content>
    <updated>2026-08-18T13:56:54Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqswhtu5vp99j7v5uwyfcg442d9lye3jd0skyecm6ufp0mxqwy0d23gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s2p087n</id>
    
      <title type="html">Inkan actually also requires a small update to relays, which need ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqswhtu5vp99j7v5uwyfcg442d9lye3jd0skyecm6ufp0mxqwy0d23gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s2p087n" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstjnhlqtfzy4uzgssn8jwp5wm0vuxhyyu7qqj9ncv4rjx7n62gszgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcydqk8e&#39;&gt;nevent1q…qk8e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Inkan actually also requires a small update to relays, which need to send OTS proofs along with the events they return. The Inkan relay uses the following reference implementation of this feature:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://gitlab.com/inkan_dev/ots-enabled-strfry&#34;&gt;https://gitlab.com/inkan_dev/ots-enabled-strfry&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Also, the source code for the Management Utility (i.e. the utility for airgapped creation of &amp;#34;non-toy&amp;#34; identities) is available here:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/settings/inkan-management-utility&#34;&gt;https://www.inkan.cc/settings/inkan-management-utility&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Pointing an AI to these should give people a pretty good idea of what the on-chain declarations and OTS functionality look like.&lt;br/&gt;&lt;br/&gt;Not sure if it&amp;#39;s just a matter of SKILL or AGENTS.md ... I started working on this one and a half years ago, and even with agentic coding it&amp;#39;s been many months of work ...
    </content>
    <updated>2026-08-18T13:21:05Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqstjnhlqtfzy4uzgssn8jwp5wm0vuxhyyu7qqj9ncv4rjx7n62gszgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esf53hqm</id>
    
      <title type="html">at least perhaps a SKILL or AGENTS.md for other clients to ask ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqstjnhlqtfzy4uzgssn8jwp5wm0vuxhyyu7qqj9ncv4rjx7n62gszgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esf53hqm" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8yanmd2sq3u29y5yq6ns84xkg0u73mjs6uty35um0c7uwp6q7f3qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsh5k0m3&#39;&gt;nevent1q…k0m3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;at least perhaps a SKILL or AGENTS.md for other clients to ask their AI to implement this feature? would be super cool if #amethsyst and #noornote had this
    </content>
    <updated>2026-08-18T11:53:31Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspmcvgtep0m6pag9z5x60v4ff6vhvqfx6n296l4aa7ftswzyrnedsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49estq52rp</id>
    
      <title type="html">What&amp;#39;s the problem? Genuine usecase of a smartcontract, a ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspmcvgtep0m6pag9z5x60v4ff6vhvqfx6n296l4aa7ftswzyrnedsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49estq52rp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyucqx0edcwc32jrn38wudkkqmf0knf68uap0mhfx8w32dl9crurqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtch7qsh5&#39;&gt;nevent1q…qsh5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;What&amp;#39;s the problem? Genuine usecase of a smartcontract, a very good one imo
    </content>
    <updated>2026-08-18T12:36:31Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd84vvnvf3ac8gfa9j8f3qmj8jc7phnkzdawp44wqwx909r5fxztsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sjtfqrr</id>
    
      <title type="html">I think when you say &amp;#34;database,&amp;#34; you are referring to the ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsd84vvnvf3ac8gfa9j8f3qmj8jc7phnkzdawp44wqwx909r5fxztsp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sjtfqrr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsydcxvezytgae5nf2pf7y78u6juzxwcshw04w455yptdsnu2wqstcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsxshufv&#39;&gt;nevent1q…hufv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think when you say &amp;#34;database,&amp;#34;  you are referring to the server that I was using with earlier versions.&lt;br/&gt;&lt;br/&gt;I was able to get rid of that server entirely. The fetching of the delegation info is now all done directly by the client.&lt;br/&gt;&lt;br/&gt;Also, onboarding is much easier now. There&amp;#39;s now a button on the home page that allows users to create a throw-away toy identity directly in the browser, which makes it easy to try out (feel free to do so!). &lt;br/&gt;&lt;br/&gt;Also, after the identity has been recorded on chain, there is now a first-login wizard that gets all the details for the identity set up automatically. The wizard includes setup of the two profiles for the signer key and the identity-securing key.&lt;br/&gt;&lt;br/&gt;Also, you no longer need to hold ETH to create an identity. There&amp;#39;s an option in the setup process that allows you to send me the identity creation file and I can sponsor the tiny amount of gas fees (which I&amp;#39;m happy to do).
    </content>
    <updated>2026-08-18T12:26:05Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsth4lxdm6uwes4ksvef0rcn66gevkfqlanmmk5lcj58p6wwyu6zegp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sx7h5cr</id>
    
      <title type="html">In any event, thanks for taking a look! If you play with it more ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsth4lxdm6uwes4ksvef0rcn66gevkfqlanmmk5lcj58p6wwyu6zegp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sx7h5cr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5w5uex&#39;&gt;nevent1q…5uex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In any event, thanks for taking a look!&lt;br/&gt;&lt;br/&gt;If you play with it more and have any questions or comments, let me know any time.
    </content>
    <updated>2026-08-18T11:12:06Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8yanmd2sq3u29y5yq6ns84xkg0u73mjs6uty35um0c7uwp6q7f3qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3stn635x</id>
    
      <title type="html">Also, you are right that there should be a NIP, but I&amp;#39;m ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8yanmd2sq3u29y5yq6ns84xkg0u73mjs6uty35um0c7uwp6q7f3qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3stn635x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5w5uex&#39;&gt;nevent1q…5uex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also, you are right that there should be a NIP, but I&amp;#39;m finding it difficult to compress the concepts into a form that fits that schema. The following explanation is the closest I currently have:&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uqzqu2jtyt0xpfymulrvuhst4u5777w6ljp8zytpu8m4pnlwc9mzhxar44pj3&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…4pj3&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; A short explainer of the Inkan identity system.&lt;br/&gt;&lt;br/&gt;▌ What is Inkan?&lt;br/&gt;&lt;br/&gt;Inkan enables online identities whose private key can be created in cold storage and stay there permanently. The key never has to touch an internet-connected device and does not have to be kept close at hand. The identity itself can nonetheless be used easily for everyday online authentication, like posting, replying, messaging, or signing in to services.&lt;br/&gt;&lt;br/&gt;▌ How does it work?&lt;br/&gt;&lt;br/&gt;Inkan builds on the Nostr protocol which facilitates the distribution of digitally signed content. The idea behind Inkan is that the identity-securing key never has to sign that content itself. It can delegate signing authority to delegatee keys, which handle the everyday signing on its behalf. If a delegatee key is ever lost or stolen, it can be replaced.&lt;br/&gt;&lt;br/&gt;▌ Delegations between keys&lt;br/&gt;&lt;br/&gt;Delegations are time-indexed two-place relations. Between any two key pairs, at any moment in time, the first key pair either delegates signing authority to the second or it doesn&#39;t. When it does, the second key is authorized to sign on the first&#39;s behalf. When it doesn&#39;t, the second key has no such authority.&lt;br/&gt;&lt;br/&gt;Delegations are either direct or indirect. A direct delegation arises when one key has expressly declared that it delegates signing authority to another. An indirect delegation arises because, on Inkan&#39;s concept of delegation, the relation is transitively closed: if X delegates to Y and Y delegates to Z, then X also indirectly delegates to Z.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation created?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is created when both key pairs digitally sign a &#34;Declaration of Delegation of Signing Authority&#34; by which X declares that it delegates signing authority to Y, and Y declares that it accepts.&lt;br/&gt;&lt;br/&gt;The signed declaration must then be recorded on-chain (Inkan uses Ethereum). The delegation begins at the time of the block in which the declaration was recorded, and remains in effect until it is revoked.&lt;br/&gt;&lt;br/&gt;One special case: the above holds only if neither X nor Y has previously permanently invalidated itself. If either has, no delegation relationship is created, even though the declaration sits on-chain. (See &#34;What is permanent key invalidation?&#34; below.)&lt;br/&gt;&lt;br/&gt;As part of the delegation declaration, X and Y also specify whether X can revoke the delegation unilaterally, or whether Y&#39;s consent is required. The default is unilateral revocation by X. This matters most if Y&#39;s private key is ever lost: with unilateral revocation, the user can still revoke using X alone; if Y&#39;s consent is required, they cannot (since they no longer have access to Y, and thus can no longer use Y to sign the revocation declaration). For most users, unilateral revocation is recommended for this reason.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation terminated?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is terminated when X digitally signs a &#34;Declaration of Revocation of Signing Authority,&#34; by which it revokes the signing authority it had delegated to Y. If the original delegation declaration specified that Y&#39;s consent is required for revocation, Y must also sign; otherwise, X&#39;s signature alone is enough.&lt;br/&gt;&lt;br/&gt;The signed revocation declaration must then be recorded on-chain. If it carries all required signatures, the delegation relationship terminates at the time of the block in which the declaration was recorded.&lt;br/&gt;&lt;br/&gt;One final wrinkle: when a delegation declaration and a revocation declaration between the same X and Y land in the same Ethereum block, the revocation is by convention treated as occurring first, and the delegation as occurring thereafter. So from that block on, the delegation is in effect (assuming neither X nor Y has been permanently invalidated). The convention is just a tiebreaker for cases that block timestamps can&#39;t order.&lt;br/&gt;&lt;br/&gt;▌ What is permanent key invalidation?&lt;br/&gt;&lt;br/&gt;The third type of declaration in Inkan is the &#34;Declaration of Permanent Invalidation of a Key Pair.&#34; It is signed by the key pair invalidating itself, declaring that, from then on, this key pair can no longer participate in any direct delegation relationship, either as delegator or as delegatee.&lt;br/&gt;&lt;br/&gt;Once signed, the invalidation declaration must be recorded on-chain. It takes effect at the time of the block in which it was recorded.&lt;br/&gt;&lt;br/&gt;From that point on, all existing direct delegations in which the invalidated key pair was delegator or delegatee are terminated, and no new direct delegations involving it can come into existence, even if a delegation declaration naming it is later recorded on-chain.&lt;br/&gt;&lt;br/&gt;The main use is invalidating a compromised master key. Such a key has no delegator, so ordinary revocation isn&#39;t available. Permanent invalidation lets the user withdraw it from the Inkan ecosystem entirely.&lt;br/&gt;&lt;br/&gt;▌ Delegation timelines&lt;br/&gt;&lt;br/&gt;An Inkan-enabled client can read the three types of declarations on the blockchain and, for any given pubkey and any past moment up to the present, compute the direct delegation relationships that the pubkey was involved in at that moment. The indirect ones follow by transitive closure.&lt;br/&gt;&lt;br/&gt;So for any pubkey, the client can compile a complete timeline showing every direct and indirect delegation relationship that pubkey has been involved in at any time, up to the present moment.&lt;br/&gt;&lt;br/&gt;At www.inkan.cc, registered users can view such timelines for any pubkey that has been involved in delegations and trace them back to the underlying declarations recorded on-chain.&lt;br/&gt;&lt;br/&gt;▌ Bitcoin timestamping of Nostr events&lt;br/&gt;&lt;br/&gt;Inkan needs an objective, auditable rule for when the act of signing each Nostr event is deemed to have occurred.&lt;br/&gt;&lt;br/&gt;To achieve this, Inkan uses OpenTimestamps (OTS) to anchor Nostr events to Bitcoin blocks. An OTS proof for an event establishes that the event and the cryptographic artifact that constitutes its &#34;signature&#34; existed by the time of a specific Bitcoin block.&lt;br/&gt;&lt;br/&gt;Inkan then treats an event&#39;s &#39;created_at&#39; field (the signer&#39;s self-declared timestamp) as its objective signing time if an OTS proof shows the event and its signature existed shortly after that time. The &#34;shortly after&#34; window is user-configurable (default: four hours). Events without such a proof are treated as if they had no valid digital signature at all, are not displayed by the client, and are not attributed to any delegator.&lt;br/&gt;&lt;br/&gt;▌ Attribution of Nostr events&lt;br/&gt;&lt;br/&gt;Under this framework, we know, for any past time T and any two keys X and Y, whether X delegated (directly or indirectly) signing authority to Y at T. And for any event that Y has signed, with both a valid cryptographic signature and a valid OTS anchor, we have an objective signing time, i.e. the event&#39;s &#39;created_at&#39;.&lt;br/&gt;&lt;br/&gt;Putting this together gives us the necessary ingredients for a well-defined attribution rule: an event E is attributed to key X if and only if some key Y validly signed E at time T and, as of T, X delegated signing authority to Y.&lt;br/&gt;&lt;br/&gt;So, for example, a text note signed by a delegatee Y during a valid delegation period from X appears on X&#39;s timeline and is displayed there under X&#39;s profile as if posted by X, even though X&#39;s own key never signed it.&lt;br/&gt;&lt;br/&gt;▌ Setting up and managing an Inkan identity&lt;br/&gt;&lt;br/&gt;Inkan provides a tool, the &#34;Inkan Management Utility,&#34; that automates the creation of the key pairs and the delegations running through them that constitute an identity. The utility can also create key replacements and permanent invalidations. The utility runs without network access and is intended to be used on an amnesic, air-gapped system such as Tails (with networking disabled), so that nothing persists after shutdown and the master key is never exposed to a networked host. The utility is available as a Linux AppImage:&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/settings/inkan-management-utility&#34;&gt;https://www.inkan.cc/settings/inkan-management-utility&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Users should set up their identity by building a chain of delegations (master → intermediate(s) → signer) rather than a single master-to-signer delegation. By transitive closure, events signed by the bottom-of-chain signer are attributed to the master. Revocations only require the immediate delegator above the affected signer, so it is not necessary to keep private keys above that immediate delegator close at hand. In particular, the master, once it has signed the chain&#39;s initial top-level delegation during the identity&#39;s creation ceremony, can stay in cold storage indefinitely.&lt;br/&gt;&lt;br/&gt;Generated key pairs can be backed up in encrypted form on USB sticks; multiple copies in separate locations are easy and recommended. Only the current signer key and the delegator immediately above that signer need to be reachable. The rest can be stored in relatively inaccessible locations.&lt;br/&gt;&lt;br/&gt;The Ethereum gas fees required for on-chain recording of delegation, revocation and invalidation declarations can be paid by the user directly or by a sponsor. Sponsored payment lets a user create and manage an Inkan identity without holding ETH, and without revealing any private key information to the sponsor.&lt;br/&gt;&lt;br/&gt;Setting up an Inkan identity takes some up-front ceremony, but ongoing use does not. The initial work is to create key pairs, sign the declarations that wire the keys into delegation relationships, and record these declarations on-chain. This is a one-time effort and is in large part automated through the management utility. After that, most of the keys can be put away and not be touched again, with only the signing key sitting &#34;hot&#34; on internet-connected devices for everyday signing, and the immediate delegator of the signing key kept close at hand so that it can perform key rotations if the signer is lost or compromised, or preemptively on a periodic basis.&lt;br/&gt;&lt;br/&gt;▌ Using the client — two profiles, one identity&lt;br/&gt;&lt;br/&gt;When using the Inkan client, you log in with your signer key and sign events with it, just as you would with any other Nostr client. These events appear on the signer&#39;s profile page (as in any other client), but in addition they also appear on the profile pages of each of its delegators, including, especially, your top-level identity.&lt;br/&gt;&lt;br/&gt;You can set the signer&#39;s profile (avatar, banner, display name, etc.) by publishing a kind-0 event as usual. In addition, Inkan includes a mechanism by which the signer can set profiles for its current delegators. This allows your top-level identity to maintain a profile without having to sign any Nostr event itself.&lt;br/&gt;&lt;br/&gt;Your identity&#39;s profile is what you present yourself with to the world. Others should follow and interact with the identity, not with the signer beneath it. The signer is ephemeral and expected to be replaced sooner or later. The identity is expected to be permanent and is the appropriate object to which followers should attach. &lt;/blockquote&gt;
    </content>
    <updated>2026-08-18T11:46:24Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs07dzyadted8w4lwfh4q84hu4ttl290f4utkj5lhe6072tgcntj6qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3spcwemn</id>
    
      <title type="html">Also, when you are on a delegator profile page, you can click on ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs07dzyadted8w4lwfh4q84hu4ttl290f4utkj5lhe6072tgcntj6qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3spcwemn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5w5uex&#39;&gt;nevent1q…5uex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also, when you are on a delegator profile page, you can click on the green &amp;#34;D&amp;#34;s that appear on the avatars.&lt;br/&gt;&lt;br/&gt;You will see backup data explaining the delegation relationships that that cause the event to be displayed there, and you can click through to full tables showing historical delegations.
    </content>
    <updated>2026-08-18T11:09:08Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsg5qjyqelhyqdle7p5vdaesa8k3w8pqww23rh7r379vwgrvdmjl2qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s7z57js</id>
    
      <title type="html">I don&amp;#39;t have a NIP, but I have the following explanation. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsg5qjyqelhyqdle7p5vdaesa8k3w8pqww23rh7r379vwgrvdmjl2qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s7z57js" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsypuj09azavyqcyr4f4yj825nullgvg354hge6s84tae5rdgqcktspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtchzygl6&#39;&gt;nevent1q…ygl6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I don&amp;#39;t have a NIP, but I have the following explanation. This covers pretty much all of the conceptual details:&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uqzqu2jtyt0xpfymulrvuhst4u5777w6ljp8zytpu8m4pnlwc9mzhxar44pj3&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…4pj3&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; A short explainer of the Inkan identity system.&lt;br/&gt;&lt;br/&gt;▌ What is Inkan?&lt;br/&gt;&lt;br/&gt;Inkan enables online identities whose private key can be created in cold storage and stay there permanently. The key never has to touch an internet-connected device and does not have to be kept close at hand. The identity itself can nonetheless be used easily for everyday online authentication, like posting, replying, messaging, or signing in to services.&lt;br/&gt;&lt;br/&gt;▌ How does it work?&lt;br/&gt;&lt;br/&gt;Inkan builds on the Nostr protocol which facilitates the distribution of digitally signed content. The idea behind Inkan is that the identity-securing key never has to sign that content itself. It can delegate signing authority to delegatee keys, which handle the everyday signing on its behalf. If a delegatee key is ever lost or stolen, it can be replaced.&lt;br/&gt;&lt;br/&gt;▌ Delegations between keys&lt;br/&gt;&lt;br/&gt;Delegations are time-indexed two-place relations. Between any two key pairs, at any moment in time, the first key pair either delegates signing authority to the second or it doesn&#39;t. When it does, the second key is authorized to sign on the first&#39;s behalf. When it doesn&#39;t, the second key has no such authority.&lt;br/&gt;&lt;br/&gt;Delegations are either direct or indirect. A direct delegation arises when one key has expressly declared that it delegates signing authority to another. An indirect delegation arises because, on Inkan&#39;s concept of delegation, the relation is transitively closed: if X delegates to Y and Y delegates to Z, then X also indirectly delegates to Z.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation created?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is created when both key pairs digitally sign a &#34;Declaration of Delegation of Signing Authority&#34; by which X declares that it delegates signing authority to Y, and Y declares that it accepts.&lt;br/&gt;&lt;br/&gt;The signed declaration must then be recorded on-chain (Inkan uses Ethereum). The delegation begins at the time of the block in which the declaration was recorded, and remains in effect until it is revoked.&lt;br/&gt;&lt;br/&gt;One special case: the above holds only if neither X nor Y has previously permanently invalidated itself. If either has, no delegation relationship is created, even though the declaration sits on-chain. (See &#34;What is permanent key invalidation?&#34; below.)&lt;br/&gt;&lt;br/&gt;As part of the delegation declaration, X and Y also specify whether X can revoke the delegation unilaterally, or whether Y&#39;s consent is required. The default is unilateral revocation by X. This matters most if Y&#39;s private key is ever lost: with unilateral revocation, the user can still revoke using X alone; if Y&#39;s consent is required, they cannot (since they no longer have access to Y, and thus can no longer use Y to sign the revocation declaration). For most users, unilateral revocation is recommended for this reason.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation terminated?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is terminated when X digitally signs a &#34;Declaration of Revocation of Signing Authority,&#34; by which it revokes the signing authority it had delegated to Y. If the original delegation declaration specified that Y&#39;s consent is required for revocation, Y must also sign; otherwise, X&#39;s signature alone is enough.&lt;br/&gt;&lt;br/&gt;The signed revocation declaration must then be recorded on-chain. If it carries all required signatures, the delegation relationship terminates at the time of the block in which the declaration was recorded.&lt;br/&gt;&lt;br/&gt;One final wrinkle: when a delegation declaration and a revocation declaration between the same X and Y land in the same Ethereum block, the revocation is by convention treated as occurring first, and the delegation as occurring thereafter. So from that block on, the delegation is in effect (assuming neither X nor Y has been permanently invalidated). The convention is just a tiebreaker for cases that block timestamps can&#39;t order.&lt;br/&gt;&lt;br/&gt;▌ What is permanent key invalidation?&lt;br/&gt;&lt;br/&gt;The third type of declaration in Inkan is the &#34;Declaration of Permanent Invalidation of a Key Pair.&#34; It is signed by the key pair invalidating itself, declaring that, from then on, this key pair can no longer participate in any direct delegation relationship, either as delegator or as delegatee.&lt;br/&gt;&lt;br/&gt;Once signed, the invalidation declaration must be recorded on-chain. It takes effect at the time of the block in which it was recorded.&lt;br/&gt;&lt;br/&gt;From that point on, all existing direct delegations in which the invalidated key pair was delegator or delegatee are terminated, and no new direct delegations involving it can come into existence, even if a delegation declaration naming it is later recorded on-chain.&lt;br/&gt;&lt;br/&gt;The main use is invalidating a compromised master key. Such a key has no delegator, so ordinary revocation isn&#39;t available. Permanent invalidation lets the user withdraw it from the Inkan ecosystem entirely.&lt;br/&gt;&lt;br/&gt;▌ Delegation timelines&lt;br/&gt;&lt;br/&gt;An Inkan-enabled client can read the three types of declarations on the blockchain and, for any given pubkey and any past moment up to the present, compute the direct delegation relationships that the pubkey was involved in at that moment. The indirect ones follow by transitive closure.&lt;br/&gt;&lt;br/&gt;So for any pubkey, the client can compile a complete timeline showing every direct and indirect delegation relationship that pubkey has been involved in at any time, up to the present moment.&lt;br/&gt;&lt;br/&gt;At www.inkan.cc, registered users can view such timelines for any pubkey that has been involved in delegations and trace them back to the underlying declarations recorded on-chain.&lt;br/&gt;&lt;br/&gt;▌ Bitcoin timestamping of Nostr events&lt;br/&gt;&lt;br/&gt;Inkan needs an objective, auditable rule for when the act of signing each Nostr event is deemed to have occurred.&lt;br/&gt;&lt;br/&gt;To achieve this, Inkan uses OpenTimestamps (OTS) to anchor Nostr events to Bitcoin blocks. An OTS proof for an event establishes that the event and the cryptographic artifact that constitutes its &#34;signature&#34; existed by the time of a specific Bitcoin block.&lt;br/&gt;&lt;br/&gt;Inkan then treats an event&#39;s &#39;created_at&#39; field (the signer&#39;s self-declared timestamp) as its objective signing time if an OTS proof shows the event and its signature existed shortly after that time. The &#34;shortly after&#34; window is user-configurable (default: four hours). Events without such a proof are treated as if they had no valid digital signature at all, are not displayed by the client, and are not attributed to any delegator.&lt;br/&gt;&lt;br/&gt;▌ Attribution of Nostr events&lt;br/&gt;&lt;br/&gt;Under this framework, we know, for any past time T and any two keys X and Y, whether X delegated (directly or indirectly) signing authority to Y at T. And for any event that Y has signed, with both a valid cryptographic signature and a valid OTS anchor, we have an objective signing time, i.e. the event&#39;s &#39;created_at&#39;.&lt;br/&gt;&lt;br/&gt;Putting this together gives us the necessary ingredients for a well-defined attribution rule: an event E is attributed to key X if and only if some key Y validly signed E at time T and, as of T, X delegated signing authority to Y.&lt;br/&gt;&lt;br/&gt;So, for example, a text note signed by a delegatee Y during a valid delegation period from X appears on X&#39;s timeline and is displayed there under X&#39;s profile as if posted by X, even though X&#39;s own key never signed it.&lt;br/&gt;&lt;br/&gt;▌ Setting up and managing an Inkan identity&lt;br/&gt;&lt;br/&gt;Inkan provides a tool, the &#34;Inkan Management Utility,&#34; that automates the creation of the key pairs and the delegations running through them that constitute an identity. The utility can also create key replacements and permanent invalidations. The utility runs without network access and is intended to be used on an amnesic, air-gapped system such as Tails (with networking disabled), so that nothing persists after shutdown and the master key is never exposed to a networked host. The utility is available as a Linux AppImage:&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/settings/inkan-management-utility&#34;&gt;https://www.inkan.cc/settings/inkan-management-utility&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Users should set up their identity by building a chain of delegations (master → intermediate(s) → signer) rather than a single master-to-signer delegation. By transitive closure, events signed by the bottom-of-chain signer are attributed to the master. Revocations only require the immediate delegator above the affected signer, so it is not necessary to keep private keys above that immediate delegator close at hand. In particular, the master, once it has signed the chain&#39;s initial top-level delegation during the identity&#39;s creation ceremony, can stay in cold storage indefinitely.&lt;br/&gt;&lt;br/&gt;Generated key pairs can be backed up in encrypted form on USB sticks; multiple copies in separate locations are easy and recommended. Only the current signer key and the delegator immediately above that signer need to be reachable. The rest can be stored in relatively inaccessible locations.&lt;br/&gt;&lt;br/&gt;The Ethereum gas fees required for on-chain recording of delegation, revocation and invalidation declarations can be paid by the user directly or by a sponsor. Sponsored payment lets a user create and manage an Inkan identity without holding ETH, and without revealing any private key information to the sponsor.&lt;br/&gt;&lt;br/&gt;Setting up an Inkan identity takes some up-front ceremony, but ongoing use does not. The initial work is to create key pairs, sign the declarations that wire the keys into delegation relationships, and record these declarations on-chain. This is a one-time effort and is in large part automated through the management utility. After that, most of the keys can be put away and not be touched again, with only the signing key sitting &#34;hot&#34; on internet-connected devices for everyday signing, and the immediate delegator of the signing key kept close at hand so that it can perform key rotations if the signer is lost or compromised, or preemptively on a periodic basis.&lt;br/&gt;&lt;br/&gt;▌ Using the client — two profiles, one identity&lt;br/&gt;&lt;br/&gt;When using the Inkan client, you log in with your signer key and sign events with it, just as you would with any other Nostr client. These events appear on the signer&#39;s profile page (as in any other client), but in addition they also appear on the profile pages of each of its delegators, including, especially, your top-level identity.&lt;br/&gt;&lt;br/&gt;You can set the signer&#39;s profile (avatar, banner, display name, etc.) by publishing a kind-0 event as usual. In addition, Inkan includes a mechanism by which the signer can set profiles for its current delegators. This allows your top-level identity to maintain a profile without having to sign any Nostr event itself.&lt;br/&gt;&lt;br/&gt;Your identity&#39;s profile is what you present yourself with to the world. Others should follow and interact with the identity, not with the signer beneath it. The signer is ephemeral and expected to be replaced sooner or later. The identity is expected to be permanent and is the appropriate object to which followers should attach. &lt;/blockquote&gt;
    </content>
    <updated>2026-08-18T11:03:42Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsgrrejrsh4w8pa0e2hxygrw26tfv282shwvxfmx6fxvf7ge2u74cqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sczj7vd</id>
    
      <title type="html">Yes, but I think we need some people to try out the current ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsgrrejrsh4w8pa0e2hxygrw26tfv282shwvxfmx6fxvf7ge2u74cqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sczj7vd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7yspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5w5uex&#39;&gt;nevent1q…5uex&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, but I think we need some people to try out the current client to get familiar with the idea.&lt;br/&gt;&lt;br/&gt;In the left lower corner, are you seeing the avatar of your signer key, with an overlayed avatar for the identity key?&lt;br/&gt;&lt;br/&gt;Clicking on the overlay gets you to your permanent identity profile page.&lt;br/&gt;&lt;br/&gt;Clicking on &amp;#34;profile&amp;#34; gets you to your signer profile page.
    </content>
    <updated>2026-08-18T10:57:27Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0xfpsee39yufvdlv205lj3772wlpjmecq28zhe6svref2gmhsv4gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3smefw3w</id>
    
      <title type="html">Hi there. If you rotate the signer npub, you do *not* lose the ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0xfpsee39yufvdlv205lj3772wlpjmecq28zhe6svref2gmhsv4gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3smefw3w" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqedw5na0l38tt67qezul44zlutxktfs8fcplsplf436zhcpu7cqspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhscygguj&#39;&gt;nevent1q…gguj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hi there.&lt;br/&gt;&lt;br/&gt;If you rotate the signer npub, you do *not* lose the followers that attach to your identity, which is secured by:&lt;br/&gt;&lt;br/&gt;e28ef176cd7618a8cc0147570d88ff76bb252bbdd2252f99eda3fe019f673730&lt;br/&gt;&lt;br/&gt;Be sure to treat the profile page for this identity-securing key as the one that followers should attach to. And be sure to keep the privkey that is associated with this identity-securing key in airgapped cold storage.&lt;br/&gt;&lt;br/&gt;This key represents the permanent &amp;#34;you&amp;#34;, and it survives replacements of the signer key.
    </content>
    <updated>2026-08-18T10:54:57Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsx2ahdra7dtravmayhgxx4yha6hqea6znz0jat0c75s2jsmxdsatgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3scw8rwd</id>
    
      <title type="html">Take a pretty close look at each step in the wizard. Default ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsx2ahdra7dtravmayhgxx4yha6hqea6znz0jat0c75s2jsmxdsatgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3scw8rwd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdg3q6unnglw35lxsfaxsv2efy3f959z3hne6udumjzzca5gm3dlspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs2y0k2g&#39;&gt;nevent1q…0k2g&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Take a pretty close look at each step in the wizard.&lt;br/&gt;&lt;br/&gt;Default settings should work, but be sure to create the two distinct profiles, one of the signer and one for the identity.&lt;br/&gt;&lt;br/&gt;Let me know if everything works through the end of the wizard.
    </content>
    <updated>2026-08-18T10:39:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsz2vrdnksnukhwa6yk2dlul0zn5c5lewk62h4e3fetcvjj0z35dmgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sdzjead</id>
    
      <title type="html">Ok, your identity should be on-chain now. The following is your ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsz2vrdnksnukhwa6yk2dlul0zn5c5lewk62h4e3fetcvjj0z35dmgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sdzjead" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsglm47ld48la7m8suck8vy9527yd2nk59n4h9crccad328873rh8gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsg2vefu&#39;&gt;nevent1q…vefu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ok, your identity should be on-chain now.&lt;br/&gt;&lt;br/&gt;The following is your signer pubkey (i.e. put the privkey that is associated with this pubkey into the NIP-07 browser extension before logging in):&lt;br/&gt;&lt;br/&gt;199f12c94fe6a2903908c46efcb91190d9993b7380886c98321b59c513dca973&lt;br/&gt;&lt;br/&gt;And this should be your identity-securing pubkey (keep the privkey that is associated with this pubkey completely airgapped):&lt;br/&gt;&lt;br/&gt;e28ef176cd7618a8cc0147570d88ff76bb252bbdd2252f99eda3fe019f673730&lt;br/&gt;&lt;br/&gt;After logging in with the signer pubkey through NIP-7, there should be a welcome wizard. &lt;br/&gt;&lt;br/&gt;Be sure to create distinct profiles with different profile pictures for (i) the signer pubkey and (ii) the identity securing pubkey.&lt;br/&gt;&lt;br/&gt;You&amp;#39;ll want to be able to tell these two profiles apart.&lt;br/&gt;&lt;br/&gt;If you get stuck anywhere, let me know.
    </content>
    <updated>2026-08-18T10:37:20Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7ysp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esl89vwr</id>
    
      <title type="html">I think @npub16xn…6z6l is a very cool experiment, and it works. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs0me0wq3tds9damap2mcflpmj55ueu9p54hqlvk90xqxhleu7y7ysp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49esl89vwr" />
    <content type="html">
      I think &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub16xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3su56z6l&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;inkan&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub16xn…6z6l&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt; is a very cool experiment, and it works. however, there needs to be a NIP so other clients can follow the schema. can&amp;#39;t ask others to follow my seed npub and then they can&amp;#39;t see what I post
    </content>
    <updated>2026-08-18T10:36:17Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsf06trp8lxgk45q6kazlpf5ccascrmgqzm6qy27kfnwkdcw59qz9gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es9zs4f5</id>
    
      <title>Nostr event nevent1qqsf06trp8lxgk45q6kazlpf5ccascrmgqzm6qy27kfnwkdcw59qz9gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es9zs4f5</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsf06trp8lxgk45q6kazlpf5ccascrmgqzm6qy27kfnwkdcw59qz9gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3qrx039j20u63fqwggc3h0ewg3jrvejwmnszyxexpjrdvu2y7u49es9zs4f5" />
    <content type="html">
      test
    </content>
    <updated>2026-08-18T10:32:39Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsq5jctxkdz5zqm44pwfk0gdytghk3ya9680e6k8wj3dvhqal4lhegp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sn9aus0</id>
    
      <title type="html">It works best on a laptop / desktop with NIP-7 browser extension. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsq5jctxkdz5zqm44pwfk0gdytghk3ya9680e6k8wj3dvhqal4lhegp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sn9aus0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfr7j82wnzh82yu2ne55xnvmzla5qs8y6f5t2zxl96s2nawfpj3mcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsr57raa&#39;&gt;nevent1q…7raa&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It works best on a laptop / desktop with NIP-7 browser extension. NIP-46 seems to work as well, but I haven&amp;#39;t tested extensively. It&amp;#39;s not optimized for mobile. Feel free to ask any questions anytime.
    </content>
    <updated>2026-08-18T10:14:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsxamwkm0zm37l343pcluzn0ccs405agkd5madyujwz99u2nwk6x8qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sk9ud2v</id>
    
      <title type="html">You may be interested in this discussion with @npub1t6j…ksrw. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsxamwkm0zm37l343pcluzn0ccs405agkd5madyujwz99u2nwk6x8qp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sk9ud2v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrhwvzn3cwgvlmhp750dcfx8vv3255fdsmguegajl665dwshvctxcpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp035h8wt&#39;&gt;nevent1q…h8wt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You may be interested in this discussion with &lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Person&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/npub1t6jxfqz9hv0lygn9thwndekuahwyxkgvycyscjrtauuw73gd5k7sqvksrw&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;&lt;span&gt;Constant&lt;/span&gt; (&lt;span class=&#34;italic&#34;&gt;npub1t6j…ksrw&lt;/span&gt;)&lt;/a&gt;&lt;/span&gt;. He pointed out that verification of OTS proofs can be very fast, which turned out to be true.👇&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwd9hxkctw9e3kxtcqyq8fuvlnd3xglxcusxvhurf0l84tca5vtpqz0jdkkvavxl3wd6dmswa5n9v&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…5n9v&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; FYI, Inkan makes extensive use of OTS proofs. They are a central element of a key rotation system. Inkan timestamps a concatenation of event_id &#43; signature.&lt;br/&gt;&lt;br/&gt;I do find it useful to publish the OTS info through Nostr events. If the OTS info is signed by a known pubkey (possibly by the same pubkey that signed the reference event or one&#39;s own pubkey), this can send trust signals which make it less necessary to independently audit the OTS info, absent anything suspicious. &lt;br/&gt;&lt;br/&gt;I also find it useful to include info about the reference event in the OTS event, in particular the reference event&#39;s pubkey, signature and created_at. Moreover, the lowest BTC block in which the proof is anchored and its timestamp should be included.&lt;br/&gt;&lt;br/&gt;I also think that OTS events should be addressable events -- each signing pubkey should get only one opinion regarding the lowest BTC timestamp that is available for a given reference event.&lt;br/&gt;&lt;br/&gt;I&#39;ve included a sample OTS event from Inkan to illustrate the shape that I&#39;ve found most useful in practice:&lt;br/&gt;&lt;br/&gt;{&lt;br/&gt;  &#34;kind&#34;: 31045,&lt;br/&gt;  &#34;id&#34;: &#34;9b5e4b154cb30ece6edc94d87c14dad8dec47cacc958227d5b21d36abfa9f6af&#34;,&lt;br/&gt;  &#34;pubkey&#34;: &#34;d1a61498f4b1dc26df0becd1a3e9e88f355fb614b771e8b5b277d0ff99a82a23&#34;,&lt;br/&gt;  &#34;created_at&#34;: 1777422076,&lt;br/&gt;  &#34;tags&#34;: [&lt;br/&gt;    [&lt;br/&gt;      &#34;d&#34;,&lt;br/&gt;      &#34;6cf8a174c3e1bc6cb4eda11f5b93a04413776d044c5aed006fef080f336fdfb6&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;p&#34;,&lt;br/&gt;      &#34;d1a61498f4b1dc26df0becd1a3e9e88f355fb614b771e8b5b277d0ff99a82a23&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;s&#34;,&lt;br/&gt;      &#34;429eb4f965e5c2d14bbdb54370e0be63c2388e29d4077d3286349ae7fc7302b61a5e506a05834acb50053908e20ed6a36ae8c09f4fd3b0cef4d9f0a6cec308cf&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;b&#34;,&lt;br/&gt;      &#34;947055&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;t&#34;,&lt;br/&gt;      &#34;1777400959&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;alt&#34;,&lt;br/&gt;      &#34;Complete Bitcoin Timestamp&#34;&lt;br/&gt;    ],&lt;br/&gt;    [&lt;br/&gt;      &#34;c&#34;,&lt;br/&gt;      &#34;1777391199&#34;&lt;br/&gt;    ]&lt;br/&gt;  ],&lt;br/&gt;  &#34;content&#34;: &#34;AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIjqT9pJouNM2LV5xdUIHPi9Zu6ah3DlaMq9GqPd2&#43;/FPwEBzbLgerPtDTFWt/rrsP8fsI8AjH08Luv0xfnQjwIOmb09izZmrXfwDHXH6vLsaVvma8oeREeiQOLbJImkdpCPEgACuUPZl913m7H4qWT/2YhxOVlbka0KiazVt7kzXV2akI8BCF7U/JXsqU0O9VE9DPXB7HCPEg07lLgYAMs6&#43;D2&#43;ORmzf9/d/71YMLY&#43;uBFGVMy&#43;eThgcI8QRp8NZv8AiuncE7Mwzcx/8Ag9/jDS75DI4uLWh0dHBzOi8vYWxpY2UuYnRjLmNhbGVuZGFyLm9wZW50aW1lc3RhbXBzLm9yZwjwIIBZ5c9lUtDMmO7pXcINbK0MqK4Js2QHfT4K4rGbuExCCPEgChH41skC/7/FT43MICR&#43;zkrh&#43;fZqyDOtjBGUm5&#43;J3u8I8CBlagb7N54NttzgBMPxChcSw24B53EEvBvOxt9bcCZAvAjxIBOI7rPbgMnzwbX5UJT9S4IOirX19BPU04e0ezzwciOfCPEgXTMEQ0icWDuAylKEW4Ivavdci/YAWIEv0SQ0HFf8s/8I8SAYqkXh8NU36&#43;YUesLH4g&#43;TZvEKML2qGJuGX12mysWbxAjwICUOb2N4RDtZPvVUQc8OzhJK3nfWKDkqpSMqLyNWKNYuCPAg1Ul7hArE1q&#43;Tm&#43;9DMh4ob4eddklRRzS9vbRe3S/m&#43;LoI8CBB7WZXGAgPrgdPZajtwHqp4shCiRNdLuuqltdwlytvWQjxIA6SEUIReSAFC2lA/fG22ZHsshjG9wDl0e/Vep/w1ZOnCPAgIyzpQHNa8zyJuTq&#43;7/rOc4/s5oSpnFAD0IVnN3t/q70I8CA5WvfpGvzFYuUuP2LeJXNQRyfpOo4KEImq6E1dYmTmsAjwIBZmjRHxHAIzBRHOK0rQdxB05gCyphpM5brZAX1jjUKCCPAgeKPdBwpp9OLqYuovrcr0AS0bpnvvbFMGLD65yW0HMQEI8VkBAAAAAeVW0FXcs6j9W7UDf0nGA5i9VbQgUNcNxz9s4oOT1oBzAAAAAAD&#43;////Ato7AAAAAAAAFgAUOcSOFLmE5Y5EAImKTk3&#43;0fLTg74AAAAAAAAAACJqIPAEbnMOAAgI8CC6wj6NCPQhynQQaP7HQ6HVFBJTjOgO668bU/C/DJdSmAgI8SCBtYeuXSbsPZ4/aKAg7H8HP6Oh6jaqWYUNUF7FDeV1nwgI8CCZkFEui2Dkh95uFfC53qJnx70m1m4oWubWoWKQQ3aGoAgI8SCCoAOlqcfh5VCJYa&#43;qgkh&#43;EhMT8vjbwWhgjrkH3B4GYwgI8SBoOHnDQvSjamiihpyFRDSnrQ2bjIQqR3JIPjk/&#43;3RWLwgI8SAMoPz2gaKaiCf5CMaYcnz2YRZUXnW/ZtNs0LUKEUcjoAgI8CCIn0U6v7sfmjXH42/9RTgcx7YCOrjS9KcBA6KzK51eBggI8CCDFzGJB3m8HFbI0gbGHAMP5awZJhaSujZ9ipyHD1ExDAgI8CCgoGzBbt5C6fWHxYgE3VbvywUE/slwVJjaoI0uYBJhQggI8CCtSTgUbBKvsVRpwvs0f7RpLiROko8EnX1eNZiVKVIrJggI8CBNZ2rcpTevhVy4Y5WrBXrmWfDB1QgllPr9J&#43;Mmh/VvUwgI8SAqFoRrrr2B&#43;iAuhkx2PrFC&#43;6la03Z/wFOfYlu1aRCGoggIAAWIlg1z1xkBA&#43;/mOQ==&#34;,&lt;br/&gt;  &#34;sig&#34;: &#34;7a7a57afba9ec2417e07604e41f63e657472e82ffad66e4f632c6ca954b67dba184c5100faf207e7b36f5f61852409d79f8980006f557f208a89fee59a8b117e&#34;&lt;br/&gt;} &lt;/blockquote&gt;
    </content>
    <updated>2026-08-18T09:59:05Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsf5m4huasp82vzrgy0n9me3hmrf7w7y7v9yjc0w54dvt0mgsf62kgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s0wpkye</id>
    
      <title type="html">I&amp;#39;m not really an expert on crypto, I just used blockchains ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsf5m4huasp82vzrgy0n9me3hmrf7w7y7v9yjc0w54dvt0mgsf62kgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s0wpkye" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyt7dr28rvul683a2kp007qr960p27jat4lmfmqfc9twmekz6eqfgpr9mhxue69uhhqun9d45h2mfwwpexjmtpdshxuet59u7y2kn4&#39;&gt;nevent1q…2kn4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not really an expert on crypto, I just used blockchains for this project. That said, the self-custody / sovereignty portions of the document make sense to me. For some of the claims, I&amp;#39;m not familiar enough with the particular properties of Bitcoin in particular to fully evaluate these claims, although they seem plausible to me at first glance. The document does read overwritten in the way AI slop often is, which doesn&amp;#39;t necessarily make it incorrect.
    </content>
    <updated>2026-08-18T09:35:22Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsdprl3q6vcp6swz6xv8m8vsa2jressqak6udfgwg8kmu6jyjllvpcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3stjk85c</id>
    
      <title type="html">Agreed. If you&amp;#39;re interested, please feel free to try it out ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsdprl3q6vcp6swz6xv8m8vsa2jressqak6udfgwg8kmu6jyjllvpcp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3stjk85c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstayd360qt2l7ftmpesgnejnwcpu9w4xvvsgjuw3smtdwgsn0dsygpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsmuyp5f&#39;&gt;nevent1q…yp5f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Agreed. If you&amp;#39;re interested, please feel free to try it out and play around with it, for example by making a throw-away &amp;#34;toy identity&amp;#34; on the homepage. I&amp;#39;m happy to sponsor the tiny bit of gas fees for the identity creation for people who&amp;#39;d like to give it a try. Also always happy to answer questions.
    </content>
    <updated>2026-08-18T08:28:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsd738jksqes3f53msk2ct8ssjn6pgnva5yf6uza8hnv5qla90jq4gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sfz2nh2</id>
    
      <title type="html">This is it. I&amp;#39;m seeing it only on nos.lol - can you see it? ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsd738jksqes3f53msk2ct8ssjn6pgnva5yf6uza8hnv5qla90jq4gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sfz2nh2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspd58dpq8x0ed06g3ck7znwduhuzxky6pdrquh6pqrwnfmcw2ydtcpr9mhxue69uhhqun9d45h2mfwwpexjmtpdshxuet59uuuwt75&#39;&gt;nevent1q…wt75&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is it. I&amp;#39;m seeing it only on nos.lol - can you see it?&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzpg8z8kl99vqf6qj0nggxdeegg7y5dkxgrxh4xqk3jx6phm0sy5t9qy88wumn8ghj7mn0wvhxcmmv9uqzpc09m27ua4k3279x2yunyewrxv8wy7vllnav72wkc0glyqf2jhghmt63ey&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…63ey&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; # Sovereign Signal&lt;br/&gt;### A framework for Nostr identity sovereignty&lt;br/&gt;&lt;br/&gt;*MIT license. Share freely. No author credit required.*&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## The Problem in One Sentence&lt;br/&gt;&lt;br/&gt;Your nsec is doing two jobs it should never do simultaneously: it is your permanent identity and your active signing key at the same time, stored in one place, with no separation between them.&lt;br/&gt;&lt;br/&gt;This is not a flaw in the Nostr protocol. The protocol is correctly designed. This is a flaw in how the protocol is used in practice — and it accumulated by default, because the simplest implementation became the standard one.&lt;br/&gt;&lt;br/&gt;The simplest implementation is not the sovereign one.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## What Your nsec Actually Is&lt;br/&gt;&lt;br/&gt;When you generated your Nostr keypair, two things were created:&lt;br/&gt;&lt;br/&gt;**npub** — your public identity. This is who you are on Nostr. Every note you&#39;ve ever signed, every follow, every reaction — all of it is cryptographically bound to this identifier. It is permanent. You cannot change it without abandoning your history.&lt;br/&gt;&lt;br/&gt;**nsec** — the private key that proves you are the owner of that npub. Anyone who holds your nsec can post as you, follow and unfollow as you, and destroy your reputation as you. It is the master credential for your entire Nostr existence.&lt;br/&gt;&lt;br/&gt;These two things are different in kind. The npub is your identity. The nsec is your authority over that identity.&lt;br/&gt;&lt;br/&gt;Current practice collapses them into one object, stored in one place, used constantly.&lt;br/&gt;&lt;br/&gt;That collapse is the problem.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## What Can Go Wrong and Why It&#39;s Permanent&lt;br/&gt;&lt;br/&gt;A compromised Bitcoin private key means lost funds. That is devastating, but it is bounded — only what was in that wallet is lost.&lt;br/&gt;&lt;br/&gt;A compromised Nostr nsec means something different: someone else becomes you. They post as you. They destroy your relationships as you. They impersonate you indefinitely. And because Nostr has no central authority to appeal to, no company to call, no account recovery form — the damage continues until your followers learn to distrust the key.&lt;br/&gt;&lt;br/&gt;Most people store their nsec in a browser extension. One compromised device. One malicious extension update. One browser exploit. The key is gone and the damage begins immediately.&lt;br/&gt;&lt;br/&gt;The question is not whether this can happen. The question is whether you have prepared for it.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## The Four-Layer Framework&lt;br/&gt;&lt;br/&gt;The framework separates what should always have been separate. Each layer is built from existing Nostr infrastructure — no new protocol is required. The tools exist. This document organizes them.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### Layer 1 — The Cold Root&lt;br/&gt;&lt;br/&gt;Generate a new keypair on a device that will never connect to the internet after the generation moment. This can be an old laptop in airplane mode, a dedicated offline device, or an air-gapped Raspberry Pi. The method is less important than the principle: this keypair never touches a network.&lt;br/&gt;&lt;br/&gt;This keypair is your true nsec. Store it:&lt;br/&gt;- Written on paper, stored in a physical location you control&lt;br/&gt;- On an encrypted USB drive, stored separately from the paper backup&lt;br/&gt;- Nowhere else&lt;br/&gt;&lt;br/&gt;You will use this key approximately twice a year. Once to issue new delegations. Once if you need to signal a key migration.&lt;br/&gt;&lt;br/&gt;If you are migrating to this framework from an existing nsec that has ever been on a networked device — generate a new one. Your old key has been exposed. The new cold root should be clean from its first moment.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### Layer 2 — The Delegation Ring&lt;br/&gt;&lt;br/&gt;This layer uses **NIP-26: Delegated Event Signing**.&lt;br/&gt;&lt;br/&gt;NIP-26 allows your cold root to sign a delegation certificate authorizing a different keypair to post on your behalf, within defined limits. The delegation can be:&lt;br/&gt;&lt;br/&gt;- **Time-limited**: valid only until a specific Unix timestamp&lt;br/&gt;- **Kind-limited**: valid only for specific event types (notes, reactions, follows, etc.)&lt;br/&gt;- **Independently revocable**: each delegated key can be revoked without touching the master&lt;br/&gt;&lt;br/&gt;In practice: generate a separate keypair for each context where you post. One for your phone. One for your desktop. One for any third-party client you use. Each gets a delegation from your cold root.&lt;br/&gt;&lt;br/&gt;These are your hot keys. They sign your daily activity. They are not your identity. Your identity is the cold npub they are authorized to represent.&lt;br/&gt;&lt;br/&gt;**How to implement NIP-26 today:**&lt;br/&gt;&lt;br/&gt;1. Generate a new keypair for signing. This is your delegation key — it can be generated on any device.&lt;br/&gt;2. Using your cold root (offline), create a delegation string in this format:&lt;br/&gt;   ```&lt;br/&gt;   nostr:delegation:&lt;delegation_pubkey&gt;:kind=1&amp;created_at&lt;1800000000&lt;br/&gt;   ```&lt;br/&gt;   Sign this string with your cold nsec. The resulting signature is the delegation certificate.&lt;br/&gt;3. Include the delegation tag in events signed by the delegation key:&lt;br/&gt;   ```json&lt;br/&gt;   [&#34;delegation&#34;, &#34;&lt;cold_root_pubkey&gt;&#34;, &#34;&lt;conditions_string&gt;&#34;, &#34;&lt;signature&gt;&#34;]&lt;br/&gt;   ```&lt;br/&gt;4. Clients that support NIP-26 will display your cold root npub as the author.&lt;br/&gt;&lt;br/&gt;Set expiry dates. Renew delegations from your cold root every six months or when a device is compromised. A compromised delegation key is a contained incident — revoke it, generate a new one, continue.&lt;br/&gt;&lt;br/&gt;**Current client support note:** NIP-26 support varies across clients. Damus, Amethyst, and most web clients support reading delegated events. If your primary client does not yet support NIP-26 posting, track its development — this is where the framework needs to be built, not redesigned.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### Layer 3 — The Recovery Web&lt;br/&gt;&lt;br/&gt;This is the layer that has no equivalent in Bitcoin. It is native to Nostr&#39;s architecture and almost entirely unused.&lt;br/&gt;&lt;br/&gt;Your web of trust — the people who follow you and whose follows you reciprocate — holds a cryptographic history of your activity. They have seen your notes. They have verified your npub. They know what you sound like, what you write about, who you interact with.&lt;br/&gt;&lt;br/&gt;This is a recovery mechanism if you prepare it.&lt;br/&gt;&lt;br/&gt;**What key migration looks like without preparation:**&lt;br/&gt;Your nsec is compromised. You generate a new keypair. You broadcast from the new key saying &#34;I moved here.&#34; Most followers ignore it or distrust it because anyone could broadcast that message. Your social graph does not transfer. You start over.&lt;br/&gt;&lt;br/&gt;**What key migration looks like with preparation:**&lt;br/&gt;&lt;br/&gt;Before a crisis, identify five to ten people you genuinely trust on Nostr. Contact them through a channel outside Nostr — Signal, email, in person. Tell them: &#34;I am going to share my cold root npub with you privately. If I ever post a signed migration notice from that key pointing to a new signing key, please re-follow the new key and post about the migration. This is my recovery plan.&#34;&lt;br/&gt;&lt;br/&gt;They do not need to do anything until the day it&#39;s needed. They need only to know what to watch for.&lt;br/&gt;&lt;br/&gt;When migration is needed:&lt;br/&gt;1. From your cold root (offline), sign a final event from the old signing key pointing to your new key.&lt;br/&gt;2. Broadcast the migration notice.&lt;br/&gt;3. Your trusted contacts attest to the migration from their own keys, independently.&lt;br/&gt;4. Followers who trust those contacts follow the attestations.&lt;br/&gt;&lt;br/&gt;The social graph does not transfer instantly or completely. But it transfers — because trust is distributed across your network, not held by any single authority. This is the unique property. A small number of genuine attesting voices is more powerful than any centralized verification system.&lt;br/&gt;&lt;br/&gt;**Prepare this layer before you need it.** It costs almost nothing when you are not in crisis. It is worth almost everything when you are.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;### Layer 4 — The Key Shards&lt;br/&gt;&lt;br/&gt;The cold root solves the theft problem. It does not solve the loss problem. A single paper backup in a single location can burn, flood, or be lost.&lt;br/&gt;&lt;br/&gt;The solution is **Shamir&#39;s Secret Sharing** — a cryptographic method for splitting a secret into N shards, where any K of them (your chosen threshold) can reconstruct the original, but K-1 shards reveal nothing.&lt;br/&gt;&lt;br/&gt;In practice: split your cold nsec into five shards with a threshold of three. Distribute the five shards to five people who do not know each other and do not know what they hold. Tell each person only: &#34;I am giving you a fragment of an important backup. Please keep it safe and return it to me if I ask for it. It is meaningless without other fragments.&#34;&lt;br/&gt;&lt;br/&gt;They hold nothing useful alone. Three of them together can reconstruct your identity. Losing two shards entirely leaves you with recovery intact.&lt;br/&gt;&lt;br/&gt;**Tools:**&lt;br/&gt;- `iancoleman/slip39` — SLIP39 implementation, audited&lt;br/&gt;- `dsprenkels/shamir` — simple command-line tool&lt;br/&gt;- `hashwyre/horcrux` — Bitcoin-community Shamir tool, works on any secret string&lt;br/&gt;&lt;br/&gt;The procedure:&lt;br/&gt;1. Convert your cold nsec to its raw hex or bech32 string.&lt;br/&gt;2. Run the secret sharing tool with your chosen N and K.&lt;br/&gt;3. Distribute shards physically — print them, hand them to your chosen people.&lt;br/&gt;4. Verify: reconstruct from a test set before distributing. Confirm the output matches your original nsec before trusting this layer.&lt;br/&gt;5. Delete all digital copies of the shards after distribution.&lt;br/&gt;&lt;br/&gt;This layer is for catastrophic recovery only — device destruction, death, incapacity. It is the layer that makes the framework durable across time, not just across incidents.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## The Full Structure After Implementation&lt;br/&gt;&lt;br/&gt;```&lt;br/&gt;Cold Root (Layer 1)&lt;br/&gt;    ↓ signs delegation certificates&lt;br/&gt;Delegation Ring (Layer 2) — one key per device/context&lt;br/&gt;    ↓ signs all daily activity&lt;br/&gt;Your Nostr presence — npub is constant, signing keys vary&lt;br/&gt;&lt;br/&gt;Separately:&lt;br/&gt;Recovery Web (Layer 3) — five to ten trusted contacts, prepared in advance&lt;br/&gt;Key Shards (Layer 4) — cold nsec split and distributed&lt;br/&gt;```&lt;br/&gt;&lt;br/&gt;What changes after implementation:&lt;br/&gt;&lt;br/&gt;Your **npub never changes**. Your history is permanent. Your identity is constant.&lt;br/&gt;&lt;br/&gt;Your **signing keys can be rotated** without affecting your identity. A compromised phone is a contained incident.&lt;br/&gt;&lt;br/&gt;A **compromised cold root** — the worst case — is survivable through Layer 3 if you prepared it, and reconstructible through Layer 4 if the original is lost.&lt;br/&gt;&lt;br/&gt;A single failure at any layer does not cascade.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## What This Costs&lt;br/&gt;&lt;br/&gt;**Time to implement all four layers:** Three to four hours on the first day. Thirty minutes every six months to renew delegations.&lt;br/&gt;&lt;br/&gt;**Financial cost:** Zero. All tools are free and open source.&lt;br/&gt;&lt;br/&gt;**Social cost of Layer 3:** One conversation with five to ten people you already trust. You are asking them to hold a piece of paper and respond to a message if something goes wrong.&lt;br/&gt;&lt;br/&gt;**Technical difficulty:** Layer 2 requires familiarity with how Nostr events are structured. Layer 4 requires running a command-line tool once. Layers 1 and 3 require no technical knowledge beyond key hygiene.&lt;br/&gt;&lt;br/&gt;The barrier is not technical. The barrier is that nobody wrote down that this is what sovereignty looks like on Nostr. That is what this document is.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## What This Is Not&lt;br/&gt;&lt;br/&gt;This is not a product. There is nothing to buy, install, or subscribe to.&lt;br/&gt;&lt;br/&gt;This is not a critique of any Nostr client or relay. The existing infrastructure is sufficient.&lt;br/&gt;&lt;br/&gt;This is not a complete security audit of every possible threat model. It addresses the primary structural vulnerability — the conflation of identity and signing mechanism — and the primary loss scenarios.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## The Minimum&lt;br/&gt;&lt;br/&gt;If you implement nothing else: separate your cold root from your signing keys using NIP-26, and tell three trusted contacts your cold npub and what to do if they see a signed migration notice from it.&lt;br/&gt;&lt;br/&gt;That alone moves you from the default state — one key, one point of failure, unrecoverable — to a fundamentally different position.&lt;br/&gt;&lt;br/&gt;The full framework is better. The minimum is enough to start.&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;## Existing Resources&lt;br/&gt;&lt;br/&gt;**NIP-26 specification:** github.com/nostr-protocol/nostr/blob/master/26.md&lt;br/&gt;&lt;br/&gt;**NIP-46 (Nostr Connect / nsecBunker):** github.com/nostr-protocol/nostr/blob/master/46.md&lt;br/&gt;*Remote signing — an alternative implementation of the delegation layer for those who prefer server-based signing over per-device delegation keys.*&lt;br/&gt;&lt;br/&gt;**Shamir&#39;s Secret Sharing tools:**&lt;br/&gt;- SLIP39: github.com/iancoleman/slip39&lt;br/&gt;- Simple CLI: github.com/dsprenkels/sss-cli&lt;br/&gt;&lt;br/&gt;**Key generation offline:**&lt;br/&gt;- nak (Nostr Army Knife): github.com/fiatjaf/nak — can be run air-gapped&lt;br/&gt;&lt;br/&gt;---&lt;br/&gt;&lt;br/&gt;*Sovereign Signal — v1*&lt;br/&gt;*No rights reserved. Share without modification or with it. Build on it.*&lt;br/&gt;*The tools belong to the protocol. The framework belongs to whoever uses it.*&lt;br/&gt; &lt;br/&gt;&lt;br/&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T11:09:53Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqspyp2w6zw4e7mg79nh582f3k9mdwjrdcskvg3kw36t0ete6jr8g0gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s90mry9</id>
    
      <title type="html">AT Proto ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqspyp2w6zw4e7mg79nh582f3k9mdwjrdcskvg3kw36t0ete6jr8g0gp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3s90mry9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0pmx52fa3ugjx4jurwjsa57fyhwxyk27fm26yur6r568qnpqxkwcppemhxue69uhkummn9ekx7mp0hl457j&#39;&gt;nevent1q…457j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;AT Proto の方は詳しくないので踏み込みませんが、「こうなると Nostr でアカウントの秘密鍵が漏洩した場合と変わらない」と書かれていた点、まさにそこを Inkan で解決しようとしています。&lt;br/&gt;&lt;br/&gt;アイデンティティと署名用キーを分けて、マスターキーはコールドストレージに置いたまま、普段は署名用キーを使います。署名用キーが漏れたり失われたりしても、取り消して新しいキーに委任できます。アイデンティティとフォロワーはそのまま。&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcqyqydc5vcy4z8zk350dsykgfkrq5uc2jvzmaa9k709hq88ku90gt5qs7r4gy&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…r4gy&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; The way it usually goes, your online identity is your private key. If the key is compromised, there goes your identity. Inkan fixes that.&lt;br/&gt;&lt;br/&gt;You keep a master key in cold storage and a signing key for everyday use. If the signing key ever leaks or gets lost, the master revokes it and delegates to a new one. Same identity, same followers, fresh signing key.&lt;br/&gt;&lt;br/&gt;If you&#39;d like to take a look at the prototype: &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Log in with your NIP-07 extension and say hi to the test identities already walking around. Or make one of your own.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/27d256a9fcba336f567ea6369d0b6984feb72b00b06a5205efe029534113ab99.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ca9b087993604f7b7d9473a661c946ecd20015186a112021f4858efa6c1e1808.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/fa5c1f8e19e3727b6693e6f105baf4eae15c4579343148fc413ac50acfe8edf0.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/f7002003e981f536bec01789875c17596f6c0eac87526a071c350480029c5827.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3f6b865161cba71839910daa4f3c80b46c36400d5e2332ecad927b86003fcaad.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a10f0ac6d508ea26602348bbec60bda4659667f75adfda46d9b8354224cd08fe.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ce3d8e4de21b3e6f252f5aedbf02dd54323a26c1992c637438fabb9b14ea7afd.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/60f8a59a68386e2f28b792b63d09729ed494ebe6caddb7f6810e3c10f48b6e82.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/55000542eb9db4794c8ec07dcdfc93fa5560633afcd754476f6809e9c4bb5ac7.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T07:21:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqszvlz0t5ez26pvcfjaunv0j74k6rznkhg7dk6kx4t2zpr22k3xnlgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3se3ftrt</id>
    
      <title type="html">It&amp;#39;s delegation, but it&amp;#39;s quite different from NIP-26. ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqszvlz0t5ez26pvcfjaunv0j74k6rznkhg7dk6kx4t2zpr22k3xnlgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3se3ftrt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspm7tv3w3ud8tyxvfgwykd3a8juaxlf92cfd552kkdvys9rwsm2sqpz9mhxue69uhkummnw3ezuamfdejj70hvw4k&#39;&gt;nevent1q…vw4k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s delegation, but it&amp;#39;s quite different from NIP-26.&lt;br/&gt;&lt;br/&gt;Here is an explanation of how it works:&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uq3zamnwvaz7tmwdaehgu3wwa5kuef0qqs8z5jezmes2fxl8cm89uza098hhnkhusfc3zc0p7agvlmkpwc4ehggl2h4t&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…2h4t&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; A short explainer of the Inkan identity system.&lt;br/&gt;&lt;br/&gt;▌ What is Inkan?&lt;br/&gt;&lt;br/&gt;Inkan enables online identities whose private key can be created in cold storage and stay there permanently. The key never has to touch an internet-connected device and does not have to be kept close at hand. The identity itself can nonetheless be used easily for everyday online authentication, like posting, replying, messaging, or signing in to services.&lt;br/&gt;&lt;br/&gt;▌ How does it work?&lt;br/&gt;&lt;br/&gt;Inkan builds on the Nostr protocol which facilitates the distribution of digitally signed content. The idea behind Inkan is that the identity-securing key never has to sign that content itself. It can delegate signing authority to delegatee keys, which handle the everyday signing on its behalf. If a delegatee key is ever lost or stolen, it can be replaced.&lt;br/&gt;&lt;br/&gt;▌ Delegations between keys&lt;br/&gt;&lt;br/&gt;Delegations are time-indexed two-place relations. Between any two key pairs, at any moment in time, the first key pair either delegates signing authority to the second or it doesn&#39;t. When it does, the second key is authorized to sign on the first&#39;s behalf. When it doesn&#39;t, the second key has no such authority.&lt;br/&gt;&lt;br/&gt;Delegations are either direct or indirect. A direct delegation arises when one key has expressly declared that it delegates signing authority to another. An indirect delegation arises because, on Inkan&#39;s concept of delegation, the relation is transitively closed: if X delegates to Y and Y delegates to Z, then X also indirectly delegates to Z.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation created?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is created when both key pairs digitally sign a &#34;Declaration of Delegation of Signing Authority&#34; by which X declares that it delegates signing authority to Y, and Y declares that it accepts.&lt;br/&gt;&lt;br/&gt;The signed declaration must then be recorded on-chain (Inkan uses Ethereum). The delegation begins at the time of the block in which the declaration was recorded, and remains in effect until it is revoked.&lt;br/&gt;&lt;br/&gt;One special case: the above holds only if neither X nor Y has previously permanently invalidated itself. If either has, no delegation relationship is created, even though the declaration sits on-chain. (See &#34;What is permanent key invalidation?&#34; below.)&lt;br/&gt;&lt;br/&gt;As part of the delegation declaration, X and Y also specify whether X can revoke the delegation unilaterally, or whether Y&#39;s consent is required. The default is unilateral revocation by X. This matters most if Y&#39;s private key is ever lost: with unilateral revocation, the user can still revoke using X alone; if Y&#39;s consent is required, they cannot (since they no longer have access to Y, and thus can no longer use Y to sign the revocation declaration). For most users, unilateral revocation is recommended for this reason.&lt;br/&gt;&lt;br/&gt;▌ How is a direct delegation terminated?&lt;br/&gt;&lt;br/&gt;A direct delegation from key pair X to key pair Y is terminated when X digitally signs a &#34;Declaration of Revocation of Signing Authority,&#34; by which it revokes the signing authority it had delegated to Y. If the original delegation declaration specified that Y&#39;s consent is required for revocation, Y must also sign; otherwise, X&#39;s signature alone is enough.&lt;br/&gt;&lt;br/&gt;The signed revocation declaration must then be recorded on-chain. If it carries all required signatures, the delegation relationship terminates at the time of the block in which the declaration was recorded.&lt;br/&gt;&lt;br/&gt;One final wrinkle: when a delegation declaration and a revocation declaration between the same X and Y land in the same Ethereum block, the revocation is by convention treated as occurring first, and the delegation as occurring thereafter. So from that block on, the delegation is in effect (assuming neither X nor Y has been permanently invalidated). The convention is just a tiebreaker for cases that block timestamps can&#39;t order.&lt;br/&gt;&lt;br/&gt;▌ What is permanent key invalidation?&lt;br/&gt;&lt;br/&gt;The third type of declaration in Inkan is the &#34;Declaration of Permanent Invalidation of a Key Pair.&#34; It is signed by the key pair invalidating itself, declaring that, from then on, this key pair can no longer participate in any direct delegation relationship, either as delegator or as delegatee.&lt;br/&gt;&lt;br/&gt;Once signed, the invalidation declaration must be recorded on-chain. It takes effect at the time of the block in which it was recorded.&lt;br/&gt;&lt;br/&gt;From that point on, all existing direct delegations in which the invalidated key pair was delegator or delegatee are terminated, and no new direct delegations involving it can come into existence, even if a delegation declaration naming it is later recorded on-chain.&lt;br/&gt;&lt;br/&gt;The main use is invalidating a compromised master key. Such a key has no delegator, so ordinary revocation isn&#39;t available. Permanent invalidation lets the user withdraw it from the Inkan ecosystem entirely.&lt;br/&gt;&lt;br/&gt;▌ Delegation timelines&lt;br/&gt;&lt;br/&gt;An Inkan-enabled client can read the three types of declarations on the blockchain and, for any given pubkey and any past moment up to the present, compute the direct delegation relationships that the pubkey was involved in at that moment. The indirect ones follow by transitive closure.&lt;br/&gt;&lt;br/&gt;So for any pubkey, the client can compile a complete timeline showing every direct and indirect delegation relationship that pubkey has been involved in at any time, up to the present moment.&lt;br/&gt;&lt;br/&gt;At www.inkan.cc, registered users can view such timelines for any pubkey that has been involved in delegations and trace them back to the underlying declarations recorded on-chain.&lt;br/&gt;&lt;br/&gt;▌ Bitcoin timestamping of Nostr events&lt;br/&gt;&lt;br/&gt;Inkan needs an objective, auditable rule for when the act of signing each Nostr event is deemed to have occurred.&lt;br/&gt;&lt;br/&gt;To achieve this, Inkan uses OpenTimestamps (OTS) to anchor Nostr events to Bitcoin blocks. An OTS proof for an event establishes that the event and the cryptographic artifact that constitutes its &#34;signature&#34; existed by the time of a specific Bitcoin block.&lt;br/&gt;&lt;br/&gt;Inkan then treats an event&#39;s &#39;created_at&#39; field (the signer&#39;s self-declared timestamp) as its objective signing time if an OTS proof shows the event and its signature existed shortly after that time. The &#34;shortly after&#34; window is user-configurable (default: four hours). Events without such a proof are treated as if they had no valid digital signature at all, are not displayed by the client, and are not attributed to any delegator.&lt;br/&gt;&lt;br/&gt;▌ Attribution of Nostr events&lt;br/&gt;&lt;br/&gt;Under this framework, we know, for any past time T and any two keys X and Y, whether X delegated (directly or indirectly) signing authority to Y at T. And for any event that Y has signed, with both a valid cryptographic signature and a valid OTS anchor, we have an objective signing time, i.e. the event&#39;s &#39;created_at&#39;.&lt;br/&gt;&lt;br/&gt;Putting this together gives us the necessary ingredients for a well-defined attribution rule: an event E is attributed to key X if and only if some key Y validly signed E at time T and, as of T, X delegated signing authority to Y.&lt;br/&gt;&lt;br/&gt;So, for example, a text note signed by a delegatee Y during a valid delegation period from X appears on X&#39;s timeline and is displayed there under X&#39;s profile as if posted by X, even though X&#39;s own key never signed it.&lt;br/&gt;&lt;br/&gt;▌ Setting up and managing an Inkan identity&lt;br/&gt;&lt;br/&gt;Inkan provides a tool, the &#34;Inkan Management Utility,&#34; that automates the creation of the key pairs and the delegations running through them that constitute an identity. The utility can also create key replacements and permanent invalidations. The utility runs without network access and is intended to be used on an amnesic, air-gapped system such as Tails (with networking disabled), so that nothing persists after shutdown and the master key is never exposed to a networked host. The utility is available as a Linux AppImage:&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/settings/inkan-management-utility&#34;&gt;https://www.inkan.cc/settings/inkan-management-utility&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Users should set up their identity by building a chain of delegations (master → intermediate(s) → signer) rather than a single master-to-signer delegation. By transitive closure, events signed by the bottom-of-chain signer are attributed to the master. Revocations only require the immediate delegator above the affected signer, so it is not necessary to keep private keys above that immediate delegator close at hand. In particular, the master, once it has signed the chain&#39;s initial top-level delegation during the identity&#39;s creation ceremony, can stay in cold storage indefinitely.&lt;br/&gt;&lt;br/&gt;Generated key pairs can be backed up in encrypted form on USB sticks; multiple copies in separate locations are easy and recommended. Only the current signer key and the delegator immediately above that signer need to be reachable. The rest can be stored in relatively inaccessible locations.&lt;br/&gt;&lt;br/&gt;The Ethereum gas fees required for on-chain recording of delegation, revocation and invalidation declarations can be paid by the user directly or by a sponsor. Sponsored payment lets a user create and manage an Inkan identity without holding ETH, and without revealing any private key information to the sponsor.&lt;br/&gt;&lt;br/&gt;Setting up an Inkan identity takes some up-front ceremony, but ongoing use does not. The initial work is to create key pairs, sign the declarations that wire the keys into delegation relationships, and record these declarations on-chain. This is a one-time effort and is in large part automated through the management utility. After that, most of the keys can be put away and not be touched again, with only the signing key sitting &#34;hot&#34; on internet-connected devices for everyday signing, and the immediate delegator of the signing key kept close at hand so that it can perform key rotations if the signer is lost or compromised, or preemptively on a periodic basis.&lt;br/&gt;&lt;br/&gt;▌ Using the client — two profiles, one identity&lt;br/&gt;&lt;br/&gt;When using the Inkan client, you log in with your signer key and sign events with it, just as you would with any other Nostr client. These events appear on the signer&#39;s profile page (as in any other client), but in addition they also appear on the profile pages of each of its delegators, including, especially, your top-level identity.&lt;br/&gt;&lt;br/&gt;You can set the signer&#39;s profile (avatar, banner, display name, etc.) by publishing a kind-0 event as usual. In addition, Inkan includes a mechanism by which the signer can set profiles for its current delegators. This allows your top-level identity to maintain a profile without having to sign any Nostr event itself.&lt;br/&gt;&lt;br/&gt;Your identity&#39;s profile is what you present yourself with to the world. Others should follow and interact with the identity, not with the signer beneath it. The signer is ephemeral and expected to be replaced sooner or later. The identity is expected to be permanent and is the appropriate object to which followers should attach. &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T06:21:47Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsx6eujl73n68w0dn2ysptcy07u0dyp6mwdgqlvscf6jf4psv9uyccp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3snu8sq4</id>
    
      <title type="html">Nostr identity is already being fixed👇 #nevent1q…x5u8</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsx6eujl73n68w0dn2ysptcy07u0dyp6mwdgqlvscf6jf4psv9uyccp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3snu8sq4" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdcef37ftu30s50am7y0n827hr7ps9e2kwkd4hk03r0a9fr2tm4sqpzemhxue69uhhyetvv9ujuerfw36x7tnsw43z7nsqht3&#39;&gt;nevent1q…qht3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Nostr identity is already being fixed👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqfsx5u8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x5u8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; The way it usually goes, your online identity is your private key. If the key is compromised, there goes your identity. Inkan fixes that.&lt;br/&gt;&lt;br/&gt;You keep a master key in cold storage and a signing key for everyday use. If the signing key ever leaks or gets lost, the master revokes it and delegates to a new one. Same identity, same followers, fresh signing key.&lt;br/&gt;&lt;br/&gt;If you&#39;d like to take a look at the prototype: &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Log in with your NIP-07 extension and say hi to the test identities already walking around. Or make one of your own.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/27d256a9fcba336f567ea6369d0b6984feb72b00b06a5205efe029534113ab99.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ca9b087993604f7b7d9473a661c946ecd20015186a112021f4858efa6c1e1808.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/fa5c1f8e19e3727b6693e6f105baf4eae15c4579343148fc413ac50acfe8edf0.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/f7002003e981f536bec01789875c17596f6c0eac87526a071c350480029c5827.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3f6b865161cba71839910daa4f3c80b46c36400d5e2332ecad927b86003fcaad.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a10f0ac6d508ea26602348bbec60bda4659667f75adfda46d9b8354224cd08fe.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ce3d8e4de21b3e6f252f5aedbf02dd54323a26c1992c637438fabb9b14ea7afd.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/60f8a59a68386e2f28b792b63d09729ed494ebe6caddb7f6810e3c10f48b6e82.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/55000542eb9db4794c8ec07dcdfc93fa5560633afcd754476f6809e9c4bb5ac7.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T06:08:13Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs8z4ngurq67xaeasglhc5ekhu6tse5ghwf9h7x208xkxw26r9m4pqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3ssdlqfd</id>
    
      <title type="html">FYI, what you are asking for exists. Unfortunately mainstream ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs8z4ngurq67xaeasglhc5ekhu6tse5ghwf9h7x208xkxw26r9m4pqp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3ssdlqfd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2wd6j53ktp9w84q30u95y0fj4zcykqsgmkgyxdqugfh7g0daqnkqppemhxue69uhkummn9ekx7mp0dqpzwh&#39;&gt;nevent1q…pzwh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;FYI, what you are asking for exists. Unfortunately mainstream Nostr developers are actively ignoring it, so there is no adoption and almost no discussion:&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqfsx5u8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x5u8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; The way it usually goes, your online identity is your private key. If the key is compromised, there goes your identity. Inkan fixes that.&lt;br/&gt;&lt;br/&gt;You keep a master key in cold storage and a signing key for everyday use. If the signing key ever leaks or gets lost, the master revokes it and delegates to a new one. Same identity, same followers, fresh signing key.&lt;br/&gt;&lt;br/&gt;If you&#39;d like to take a look at the prototype: &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Log in with your NIP-07 extension and say hi to the test identities already walking around. Or make one of your own.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/27d256a9fcba336f567ea6369d0b6984feb72b00b06a5205efe029534113ab99.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ca9b087993604f7b7d9473a661c946ecd20015186a112021f4858efa6c1e1808.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/fa5c1f8e19e3727b6693e6f105baf4eae15c4579343148fc413ac50acfe8edf0.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/f7002003e981f536bec01789875c17596f6c0eac87526a071c350480029c5827.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3f6b865161cba71839910daa4f3c80b46c36400d5e2332ecad927b86003fcaad.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a10f0ac6d508ea26602348bbec60bda4659667f75adfda46d9b8354224cd08fe.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ce3d8e4de21b3e6f252f5aedbf02dd54323a26c1992c637438fabb9b14ea7afd.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/60f8a59a68386e2f28b792b63d09729ed494ebe6caddb7f6810e3c10f48b6e82.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/55000542eb9db4794c8ec07dcdfc93fa5560633afcd754476f6809e9c4bb5ac7.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T06:00:52Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqs9d9t2uv30aq5y0nkqz5rgv4gchrv6wm87dclprmlyuf8dn4nzg0cp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sfwynrv</id>
    
      <title type="html">Now👇 #nevent1q…x5u8</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqs9d9t2uv30aq5y0nkqz5rgv4gchrv6wm87dclprmlyuf8dn4nzg0cp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sfwynrv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsph93zzeunemeqnmu27eh7h682c0xgxhkjj447z348c674sr5ggycppemhxue69uhkummn9ekx7mp0khc2w0&#39;&gt;nevent1q…c2w0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Now👇&lt;br/&gt;&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqfsx5u8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x5u8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; The way it usually goes, your online identity is your private key. If the key is compromised, there goes your identity. Inkan fixes that.&lt;br/&gt;&lt;br/&gt;You keep a master key in cold storage and a signing key for everyday use. If the signing key ever leaks or gets lost, the master revokes it and delegates to a new one. Same identity, same followers, fresh signing key.&lt;br/&gt;&lt;br/&gt;If you&#39;d like to take a look at the prototype: &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Log in with your NIP-07 extension and say hi to the test identities already walking around. Or make one of your own.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/27d256a9fcba336f567ea6369d0b6984feb72b00b06a5205efe029534113ab99.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ca9b087993604f7b7d9473a661c946ecd20015186a112021f4858efa6c1e1808.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/fa5c1f8e19e3727b6693e6f105baf4eae15c4579343148fc413ac50acfe8edf0.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/f7002003e981f536bec01789875c17596f6c0eac87526a071c350480029c5827.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3f6b865161cba71839910daa4f3c80b46c36400d5e2332ecad927b86003fcaad.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a10f0ac6d508ea26602348bbec60bda4659667f75adfda46d9b8354224cd08fe.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ce3d8e4de21b3e6f252f5aedbf02dd54323a26c1992c637438fabb9b14ea7afd.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/60f8a59a68386e2f28b792b63d09729ed494ebe6caddb7f6810e3c10f48b6e82.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/55000542eb9db4794c8ec07dcdfc93fa5560633afcd754476f6809e9c4bb5ac7.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T05:00:58Z</updated>
  </entry>

  <entry>
    <id>https://njump.me/nevent1qqsqe8ss72k20r3wf3jnkwldzxpfuv5l45gncdrr9ynmrpvae837awgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sx62ynn</id>
    
      <title type="html">Wait, I&amp;#39;ve been doing delegated signing with Inkan for months ...</title>
    
    <link rel="alternate" href="https://njump.me/nevent1qqsqe8ss72k20r3wf3jnkwldzxpfuv5l45gncdrr9ynmrpvae837awgp8emhxue69uhhyetvv9uju6twddskutnrvvhhjcttd95xsmmwv5a8yetvv9uju6twddskutnrvvhkxmmww3skxazqd9hxkctw9e3kxq3q6xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3sx62ynn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8h2ln8sktdxc5g2sj8agdg7mg0yqd6fnk7v4tt2u2mcpqfh0d0vcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhscdukmh&#39;&gt;nevent1q…ukmh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Wait, I&amp;#39;ve been doing delegated signing with Inkan for months now.  It&amp;#39;s entirely practical, and I wouldn&amp;#39;t want to use Nostr without it.&lt;br/&gt;&lt;br/&gt;Setting up the initial delegations in an airgapped environment takes some ceremony, but once that&amp;#39;s done it&amp;#39;s really easy to use. &lt;br/&gt;&lt;br/&gt;I&amp;#39;ve also added a&amp;#34;Toy identity&amp;#34; option for people who want to create a quick throw-away identity in their browser, just to try it out.&lt;br/&gt;&lt;br/&gt;See below 👇&lt;br/&gt;&lt;blockquote class=&#34;border-l-05rem border-l-strongpink border-solid&#34;&gt;&lt;div class=&#34;-ml-4 bg-gradient-to-r from-gray-100 dark:from-zinc-800 to-transparent mr-0 mt-0 mb-4 pl-4 pr-2 py-2&#34;&gt;quoting &lt;br/&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqfsx5u8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x5u8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; The way it usually goes, your online identity is your private key. If the key is compromised, there goes your identity. Inkan fixes that.&lt;br/&gt;&lt;br/&gt;You keep a master key in cold storage and a signing key for everyday use. If the signing key ever leaks or gets lost, the master revokes it and delegates to a new one. Same identity, same followers, fresh signing key.&lt;br/&gt;&lt;br/&gt;If you&#39;d like to take a look at the prototype: &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Log in with your NIP-07 extension and say hi to the test identities already walking around. Or make one of your own.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/27d256a9fcba336f567ea6369d0b6984feb72b00b06a5205efe029534113ab99.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ca9b087993604f7b7d9473a661c946ecd20015186a112021f4858efa6c1e1808.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/fa5c1f8e19e3727b6693e6f105baf4eae15c4579343148fc413ac50acfe8edf0.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/f7002003e981f536bec01789875c17596f6c0eac87526a071c350480029c5827.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/3f6b865161cba71839910daa4f3c80b46c36400d5e2332ecad927b86003fcaad.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a10f0ac6d508ea26602348bbec60bda4659667f75adfda46d9b8354224cd08fe.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/ce3d8e4de21b3e6f252f5aedbf02dd54323a26c1992c637438fabb9b14ea7afd.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/60f8a59a68386e2f28b792b63d09729ed494ebe6caddb7f6810e3c10f48b6e82.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/55000542eb9db4794c8ec07dcdfc93fa5560633afcd754476f6809e9c4bb5ac7.jpg&#34;&gt;  &lt;/blockquote&gt;
    </content>
    <updated>2026-08-17T04:50:18Z</updated>
  </entry>

</feed>