<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-09-14T09:16:49Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by inkan</title>
  <author>
    <name>inkan</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub16xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3su56z6l.rss" />
  <link href="https://nostr.now/npub16xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3su56z6l" />
  <id>https://nostr.now/npub16xnpfx85k8wzdhctang6860g3u64lds5kac73ddjwlg0lxdg9g3su56z6l</id>
  <icon>https://image.nostr.build/cbcbaa4101aae617ef1474b5d55a54ef0e02a4e0acd88ffd82491f856ad1bd4b.jpg</icon>
  <logo>https://image.nostr.build/cbcbaa4101aae617ef1474b5d55a54ef0e02a4e0acd88ffd82491f856ad1bd4b.jpg</logo>




  <entry>
    <id>https://nostr.now/nevent1qqsz20d96uwgahc4w0nn59l3lkjm3d6kn9802l8f06suqxa7umgnu5qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlz83jq</id>
    
      <title type="html">I agree we should probably let it rest for now, but as for the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz20d96uwgahc4w0nn59l3lkjm3d6kn9802l8f06suqxa7umgnu5qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlz83jq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr4uns3a40243ts3lqme0p3j3k4e943yhmp9vjt326vnxe5qcn3pqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsq9plpm&#39;&gt;nevent1q…plpm&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I agree we should probably let it rest for now, but as for the merge miners being invested in the security of rootstock, it seems like they don&amp;#39;t have to lose all that much if something goes awry with rootstock as they don&amp;#39;t incur any real marginal cost from mining it and the payments they get are I believe also not all that significant. In any event, this has been an interesting discussion and it&amp;#39;s entirely possible that my views on this will change as I learn more about it.
    </content>
    <updated>2026-10-25T18:21:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsttklue8mvn73djd3d2xgts50yj9h55p0gpu6y4aj0yu3s5upx07gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx8tsput</id>
    
      <title type="html">If RBTC traded at 50 cents while Bitcoin is at 80k, this would ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsttklue8mvn73djd3d2xgts50yj9h55p0gpu6y4aj0yu3s5upx07gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx8tsput" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsplefhhk2vz7dwaxxtrrw50vmvh7q9vn0se62yeq6arjla7dstplqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc0c0ece&#39;&gt;nevent1q…0ece&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;If RBTC traded at 50 cents while Bitcoin is at 80k, this would presumably mean that people think there&amp;#39;s something seriously wrong with the bridge. The value of RBTC just seems to reflect people&amp;#39;s view of the integrity of the pegging mechanism and the trustworthiness of the pegnatories. By contrast, the value of Bitcoin or Ethereum reflects people&amp;#39;s view of the security, usefulness and future of the chain itself. It feels like, in the case of Bitcoin and Ethereum there&amp;#39;s more overlap between those who are defending these chains and those who have their economic interests bound up in them, and there&amp;#39;s less of a single point of failure, but I guess I&amp;#39;ll need to look into this more. Also it&amp;#39;s of course perfectly fair to predict that things will get better in the future with BitVM, but the prediction doesn&amp;#39;t substitute for what it presently is.
    </content>
    <updated>2026-10-24T06:52:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspun8gx349p86hyrwzkuq0h39mykcvnhqamsgkfjlxrteu9kdtgsczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqh52r6</id>
    
      <title type="html">I think I&amp;#39;ve never met a plumber. I wonder if they are nice ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspun8gx349p86hyrwzkuq0h39mykcvnhqamsgkfjlxrteu9kdtgsczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqh52r6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvr4kpw9eh9s3ufz70sqs4laap08gkju9yz8d9pjy8yjglt3kcd9gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsyyvrqq&#39;&gt;nevent1q…vrqq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think I&amp;#39;ve never met a plumber. I wonder if they are nice people.
    </content>
    <updated>2026-10-23T10:00:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstqey0ltxvwpfzuw5hjm86ape6663j7e3agmyj09kqc453hun0qfczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxc5ex4s</id>
    
      <title type="html">Google Maps is the reason I got a smartphone 14 years ago. I saw ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstqey0ltxvwpfzuw5hjm86ape6663j7e3agmyj09kqc453hun0qfczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxc5ex4s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqxxu7ca57c6clkhrqphj5fvzmzvd307y4r88hkzwd70zveyznspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsgmsf3z&#39;&gt;nevent1q…sf3z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Google Maps is the reason I got a smartphone 14 years ago. I saw it on a friend&amp;#39;s phone and thought oh it would be useful to have that. As far as I know, it&amp;#39;s the only distinctive product Google ever made.
    </content>
    <updated>2026-10-23T07:11:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszw7p5ng24ptjfyedsvy042ms5u0whqe6ejslr5yk2cpgpj58w9gszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdck97d</id>
    
      <title type="html">With rootstock, I guess the main discomfort really does come from ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszw7p5ng24ptjfyedsvy042ms5u0whqe6ejslr5yk2cpgpj58w9gszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdck97d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqwtu9n305w8neq3n40puy3988veczy4quycugtdv8dj8e90at6vqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsc5jm2e&#39;&gt;nevent1q…jm2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;With rootstock, I guess the main discomfort really does come from the fact that its funding isn&amp;#39;t endogenous, its being pegged to Bitcoin. Looking into this a bit further, it seems like the pegnatories aren&amp;#39;t anonymous happily, but it&amp;#39;s still unclear why one would want to trust a handful of companies with peg-outs. This feature makes it seem rather fragile.
    </content>
    <updated>2026-10-23T07:01:54Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsruyhk3725purvgl3y90quzlqlvsqmcm6l0maryama7cu6sylgalczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxud7e40</id>
    
      <title type="html">I think I agree, it requires a modest amount of effort and a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsruyhk3725purvgl3y90quzlqlvsqmcm6l0maryama7cu6sylgalczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxud7e40" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg3emsn7ca64z39m05yua9ar4pufppcwkelkwwe44xjaa0lelj4dqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtctq7vvz&#39;&gt;nevent1q…7vvz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I think I agree, it requires a modest amount of effort and a willingness to direct ones attention to it from time to time, as do many things in life. Like learning a bit of algebra or trigonometry, or maybe playing the piano or volleyball with some basic proficiency. Humans don&amp;#39;t usually do these things of their own accord, so we create special educational environments with a carefree atmosphere that allows them to open their minds towards these things. There is no reason that basic asymmetric cryptography shouldn&amp;#39;t be part of this.&lt;br/&gt;&lt;br/&gt;Now all that said, I&amp;#39;m embarrassed to admit that I myself don&amp;#39;t know a lot about entropy generation, don&amp;#39;t know what a &amp;#34;descriptor for multisig&amp;#34; is, and don&amp;#39;t know what &amp;#34;m/4/0/0/1&amp;#34; refers to. That&amp;#39;s not to say that these are abtruse concepts, I guess just that I haven&amp;#39;t encountered them or at least not in a way where I felt like I had to think about them.
    </content>
    <updated>2026-10-22T13:16:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdkq5cfy2y7wzxgz2ccqs49x3dhgfkdxag828duhy4xtcmqat9l9czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdxy22m</id>
    
      <title type="html">On the one hand there&amp;#39;s zero demand, and on the other hand ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdkq5cfy2y7wzxgz2ccqs49x3dhgfkdxag828duhy4xtcmqat9l9czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdxy22m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqwtu9n305w8neq3n40puy3988veczy4quycugtdv8dj8e90at6vqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsc5jm2e&#39;&gt;nevent1q…jm2e&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;On the one hand there&amp;#39;s zero demand, and on the other hand just a couple of hours ago I came across yet another post proclaiming that &amp;#34;[k]ey rotation is an existential problem that cries out for an answer.&amp;#34;&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;/naddr1qvzqqqr4gupzpef89h53f0fsza2ugwdc3e54nfpun5nxfqclpy79r6w8nxsk5yp0qythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qzjddjhjttjda6xzarfdahz6ctwvskhwetz94hkvtt5wf6hxapdw35x2ttnd9khqmr9wd6z6ur0wdekjcnvv5khxmmvw46xjmmw946x7ttp94c8yetnwd5kueedwpex7cnvv4ksuew6eg&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…w6eg&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; &lt;p&gt;I&amp;#39;m going to take a stab at one of the most difficult and important problems in freedom technology: key rotation. Can web of trust help? If so, how?&lt;/p&gt;

&lt;p&gt;The canonical use case will be that of a compromised nostr nsec. Suppose Alice wakes up one morning to discover that her nsec has been compromised by a scammer who is sending DMs to all of her contacts asking for sats. She needs the community to know that this nsec is compromised, she needs to spin up a new nsec, she needs the community to know that this is her new replacement nsec, and she needs to do all of this ASAP. How does she proceed?&lt;/p&gt;

&lt;p&gt;My guiding principle is something that deserves a name, but doesn&amp;#39;t to my knowledge have one, so I&amp;#39;ll just call it Occam&amp;#39;s Design Principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;A product should be made as simple as possible, but not simpler.&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our solution requires Alice to communicate this catastrophe to people who know her in the real world so that they can relay it to the community. So for starters, she will tell her friends Bob, Charlie, Dave, etc that her old nsec is compromised. Optionally, she will also provide them with a replacement pubkey corresponding to a new nsec, presuming she has created a new one and wishes the community to know it.&lt;/p&gt;

&lt;p&gt;Obviously this is an imperfect solution, but there is no perfect solution, and we desire to keep things simple. Improvements will come later.&lt;/p&gt;

&lt;h2 id=&#34;the-proposed-solution-2&#34;&gt;The Proposed Solution&lt;/h2&gt;

&lt;p&gt;We require no new event kinds or new NIPs, other than the &lt;a href=&#34;https://nostrhub.io/naddr1qvzqqqrcvypzpef89h53f0fsza2ugwdc3e54nfpun5nxfqclpy79r6w8nxsk5yp0qyt8wumn8ghj7un9d3shjtnswf5k6ctv9ehx2aqqzdjx2cm9de68yctvd9ax2epdd35hxarnwrn9hx&#34;&gt;Decentralized Lists&lt;/a&gt; Custom NIP.&lt;/p&gt;

&lt;h6 id=&#34;declaration-of-the-key-rotation-attestation-list-2&#34;&gt;Declaration of the Key Rotation Attestation List&lt;/h6&gt;

&lt;p&gt;Step 1 is to declare a new type of attestation that Bob, Charlie, Dave, etc. can use to effect the attestation described above. This only needs to be done once.&lt;/p&gt;

&lt;p&gt;Following the Decentralized Lists NIP, this is achieved via a kind 9998 &lt;em&gt;list declaration&lt;/em&gt; event, also called a &lt;em&gt;list header&lt;/em&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 9998,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;names&amp;#34;, &amp;#34;key rotation attestation&amp;#34;, &amp;#34;key rotation attestations&amp;#34;],
    [&amp;#34;description&amp;#34;, &amp;#34;This is an attestation whereby Bob, who knows Alice in the real world, can alert the community that her nsec has been compromised. There is only one required piece of data, which is the pubkey corresponding to her compromised nsec. For this, he uses the p tag. Optionally, he can also communicate a replacement pubkey, using the optional pubkey_replacement tag, presuming Alice has supplied him with one.&amp;#34;],
    [&amp;#34;required&amp;#34;, &amp;#34;p&amp;#34;],
    [&amp;#34;optional&amp;#34;, &amp;#34;pubkey_replacement&amp;#34;]
  ],
  &amp;#34;id&amp;#34;: &amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h6 id=&#34;issue-key-rotation-attestations-2&#34;&gt;Issue Key Rotation Attestations&lt;/h6&gt;

&lt;p&gt;Step 2 is for Bob to issue the attestation that Alice&amp;#39;s old nsec has been compromised, and optionally to communicate the pubkey that she intends to replace the old one. This is accomplished via a kind 9999 event. It uses the &lt;strong&gt;z&lt;/strong&gt; tag to point to the parent list header (above), the &lt;strong&gt;p&lt;/strong&gt; tag to indicate the compromised account, and (optionally) the &lt;strong&gt;pubkey_replacement&lt;/strong&gt; tag to indicate the new pubkey:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 9999,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;z&amp;#34;, &amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;],
    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;alice_pubkey_compromised&amp;gt;&amp;#34;],
    [&amp;#34;pubkey_replacement&amp;#34;, &amp;#34;&amp;lt;alice_pubkey_replacement&amp;gt;&amp;#34;]
  ],
  &amp;#34;id&amp;#34;: &amp;#34;&amp;lt;id_key_rotation_attestation_item&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h6 id=&#34;attestation-support-2&#34;&gt;Attestation Support&lt;/h6&gt;

&lt;p&gt;Step 3 is for Charlie, Dave, etc to voice support (or rejection, as the case may be) for Bob&amp;#39;s key rotation attestation using any one of several methods, with kind 7 reactions being the recommended method as described in the Decentralized Lists NIP:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 7,
  &amp;#34;content&amp;#34;: &amp;#34;&#43;&amp;#34;, // or &amp;#34;-&amp;#34; to downvote
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;id_key_rotation_attestation_item&amp;gt;&amp;#34;]
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Alternatively, Charlie, Dave, etc could simply publish duplicate attestations using their own kind 9999 events, identical to Bob&amp;#39;s.&lt;/p&gt;

&lt;h6 id=&#34;consumption-2&#34;&gt;Consumption&lt;/h6&gt;

&lt;p&gt;How are these attestations processed? If the end user wants to check whether &lt;em&gt;alice_pubkey&lt;/em&gt; is valid (to the best of the community&amp;#39;s knowledge), use this filter:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kinds&amp;#34;: [9999],
  &amp;#34;#z&amp;#34;: [&amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;],
  &amp;#34;#p&amp;#34;: [&amp;#34;alice_pubkey&amp;#34;]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Reactions to events returned by this filter would also be obtained with the appropriate kind 7 filter and gathered together. All of these results (kind 9999 and kind 7 events) would then be filtered or weighted based upon the end user&amp;#39;s personalized trust metric of the event author. For starters, standard personalized PageRank or personalized GrapeRank metrics would do, easily obtained via &lt;a href=&#34;https://nostrhub.io/naddr1qvzqqqrcvypzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqyt8wumn8ghj7un9d3shjtnswf5k6ctv9ehx2aqqzf68yatnw3jkgttpwdek2un5d9hkuuctys9zn&#34;&gt;Trusted Assertions&lt;/a&gt;. More sophisticated metrics might use a proximity score between Alice and the event author; authors whom Alice (previously) followed, for example, could be given the highest weighting. Perhaps Alice could even designate, ahead of time, a NIP-51 list of pubkeys that she would trust to make these attestations. But that would be work for the future; no need to support it in the initial rollout.&lt;/p&gt;

&lt;h2 id=&#34;future-expansions-of-the-protocol-2&#34;&gt;Future Expansions of the Protocol&lt;/h2&gt;

&lt;p&gt;Decentralized Lists provides multiple methods for future expansion of the basic Key Rotation protocol as described above. One might, for example, propose adding one or more tags alongside the &lt;strong&gt;p&lt;/strong&gt; and &lt;strong&gt;pubkey_replacement&lt;/strong&gt; tags. Perhaps a tag that indicates the reason for the rotation: lost, compromised, routine rotation, etc. Perhaps a tag to communicate the timestamp that the rotation is intended to take effect. The list of tags is just that: a list, that can be curated by your web of trust! In the event that multiple incompatible expansions are proposed, the community would hopefully (and probably) settle upon one or the other.&lt;/p&gt;

&lt;h2 id=&#34;conclusion-13&#34;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;A client that implements the above protocol would be providing a great service to the nostr community and would lay a foundation upon which more complex protocols could evolve. In the event that a friend tells you that her account is compromised, this is the client where you would run so you could shout her predicament from the mountaintops. Such a client would therefore need a well designed interface to issue the relevant attestations and reactions. Any WoT Service Providers worth their salt would, in turn, want to listen to the output of this client and work them into their trust metrics. Therefore, such a client would want to use one or more standard methods to communicate the status of any given pubkey: Trusted Assertions, API, and/or some other method.&lt;/p&gt;

&lt;p&gt;This would be a great contribution to the upcoming web of trust hackathon. It could be vibe coded, but ideally a team would form around an idea such as this and ensure excellent execution. And of course, I welcome ideas on how to improve this proposal. LFG!&lt;/p&gt;

&lt;p&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp0nm7h0qdrqasshdxjnuyuzs0my5pa0229n3elgx9227n5y5yrg2qqsgf43appp78lajjpr5fqk8fswvx87ffw97svqc6rgagzt2pw0hnrc6l7e7w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…7e7w&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
 &lt;/blockquote&gt;&lt;br/&gt;There&amp;#39;s a fascinating mix of social dynamics permeating this discussion, here&amp;#39;s a recent economic take on 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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcqyruapxju6jc2tqgaaekaxp3ftdcn3rxxsj7sg520gwl39u3xysud6f8ya37&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ya37&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; So there&#39;s this nostr paradox, why would a community obsessed with crypto and key security refuse to even test working key rotation?&lt;br/&gt;&lt;br/&gt;Because you can&#39;t tell working from broken without spending your own time on it.&lt;br/&gt;&lt;br/&gt;After enough broken NIPs and abandoned apps, you learn to price every new thing as a lemon and assume broken. The good leaves the market with the bad. 👇&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/The_Market_for_Lemons&#34;&gt;https://en.wikipedia.org/wiki/The_Market_for_Lemons&lt;/a&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-22T07:11:33Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsg4fv0cznrhkyzmc9ce3hw9fv57hq7d8fhpn92amtdlqzj0ushphszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxj968ps</id>
    
      <title type="html">&amp;#34;Relay discovery is still a challenge.&amp;#34; You could try AI ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg4fv0cznrhkyzmc9ce3hw9fv57hq7d8fhpn92amtdlqzj0ushphszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxj968ps" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv4da6c53gyk74uepxwwmky75dd3vd7u4j44tnlpx0g0nrdmyz37cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5pf33v&#39;&gt;nevent1q…f33v&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;Relay discovery is still a challenge.&amp;#34;&lt;br/&gt;&lt;br/&gt;You could try AI Search for nostr at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. It&amp;#39;s pretty good at discovering interesting content on relays you&amp;#39;ve never heard of, example below 👇&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/a92ea0bf9f55d8619f5590c40e742c9e948ba560b92affaf6cd5f306ae5ff662.jpg&#34;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg4waehxw309aex2mrp0yhxjmntv9hzucmr9uqzpq58dnsdf08ak898nse9supdhc6pnsfxfdn4dgljq6zv55hez8rzd4t4g0&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…t4g0&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; This is AI search for nostr.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/7810910dfff3999971f9cfd038bc35e70ca4b1ab883908e00069a99ac85f3fe4.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;You ask it a question, it wanders off across the relays, and comes back with the people and conversations you meant.&lt;br/&gt;&lt;br/&gt;Live at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. &lt;/blockquote&gt;
    </content>
    <updated>2026-10-22T06:54:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrsdkz7543kv5wcvvufzmhzcpgdslqyh392qsyfhsaaawh2wzc34qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx22248v</id>
    
      <title type="html">In this case I guess it&amp;#39;s just a story that I read that was ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrsdkz7543kv5wcvvufzmhzcpgdslqyh392qsyfhsaaawh2wzc34qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx22248v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsy4zamu4amx7qdwrvwjrzc3773qvgkvyh5w34r05q0k8lay26cugqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc93lhrp&#39;&gt;nevent1q…lhrp&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In this case I guess it&amp;#39;s just a story that I read that was told by Plato about a conversation between Phaedrus and Socrates in which Socrates says that there was a myth told by the ancients according to which there was this conversation between two Egyptian gods in the city of Naucratis.
    </content>
    <updated>2026-10-22T06:10:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvs5vtlnsgtsska7u7d7tj2x3eyedl5ttv2227gm0xehssecdfk8gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwyazg5</id>
    
      <title type="html">I just saw this proposal for the first time, and I agree that ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvs5vtlnsgtsska7u7d7tj2x3eyedl5ttv2227gm0xehssecdfk8gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwyazg5" />
    <content type="html">
      I just saw this proposal for the first time, and I agree that &amp;#34;[k]ey rotation is an existential problem that cries out for an answer.&amp;#34;&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;/naddr1qvzqqqr4gupzpef89h53f0fsza2ugwdc3e54nfpun5nxfqclpy79r6w8nxsk5yp0qyg8wumn8ghj7mn0wd68ytnddakj7qzjddjhjttjda6xzarfdahz6ctwvskhwetz94hkvtt5wf6hxapdw35x2ttnd9khqmr9wd6z6ur0wdekjcnvv5khxmmvw46xjmmw946x7ttp94c8yetnwd5kueedwpex7cnvv4ksrn8zds&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…8zds&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; &lt;p&gt;I&amp;#39;m going to take a stab at one of the most difficult and important problems in freedom technology: key rotation. Can web of trust help? If so, how?&lt;/p&gt;

&lt;p&gt;The canonical use case will be that of a compromised nostr nsec. Suppose Alice wakes up one morning to discover that her nsec has been compromised by a scammer who is sending DMs to all of her contacts asking for sats. She needs the community to know that this nsec is compromised, she needs to spin up a new nsec, she needs the community to know that this is her new replacement nsec, and she needs to do all of this ASAP. How does she proceed?&lt;/p&gt;

&lt;p&gt;My guiding principle is something that deserves a name, but doesn&amp;#39;t to my knowledge have one, so I&amp;#39;ll just call it Occam&amp;#39;s Design Principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;A product should be made as simple as possible, but not simpler.&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our solution requires Alice to communicate this catastrophe to people who know her in the real world so that they can relay it to the community. So for starters, she will tell her friends Bob, Charlie, Dave, etc that her old nsec is compromised. Optionally, she will also provide them with a replacement pubkey corresponding to a new nsec, presuming she has created a new one and wishes the community to know it.&lt;/p&gt;

&lt;p&gt;Obviously this is an imperfect solution, but there is no perfect solution, and we desire to keep things simple. Improvements will come later.&lt;/p&gt;

&lt;h2 id=&#34;the-proposed-solution-5&#34;&gt;The Proposed Solution&lt;/h2&gt;

&lt;p&gt;We require no new event kinds or new NIPs, other than the &lt;a href=&#34;https://nostrhub.io/naddr1qvzqqqrcvypzpef89h53f0fsza2ugwdc3e54nfpun5nxfqclpy79r6w8nxsk5yp0qyt8wumn8ghj7un9d3shjtnswf5k6ctv9ehx2aqqzdjx2cm9de68yctvd9ax2epdd35hxarnwrn9hx&#34;&gt;Decentralized Lists&lt;/a&gt; Custom NIP.&lt;/p&gt;

&lt;h6 id=&#34;declaration-of-the-key-rotation-attestation-list-5&#34;&gt;Declaration of the Key Rotation Attestation List&lt;/h6&gt;

&lt;p&gt;Step 1 is to declare a new type of attestation that Bob, Charlie, Dave, etc. can use to effect the attestation described above. This only needs to be done once.&lt;/p&gt;

&lt;p&gt;Following the Decentralized Lists NIP, this is achieved via a kind 9998 &lt;em&gt;list declaration&lt;/em&gt; event, also called a &lt;em&gt;list header&lt;/em&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 9998,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;names&amp;#34;, &amp;#34;key rotation attestation&amp;#34;, &amp;#34;key rotation attestations&amp;#34;],
    [&amp;#34;description&amp;#34;, &amp;#34;This is an attestation whereby Bob, who knows Alice in the real world, can alert the community that her nsec has been compromised. There is only one required piece of data, which is the pubkey corresponding to her compromised nsec. For this, he uses the p tag. Optionally, he can also communicate a replacement pubkey, using the optional pubkey_replacement tag, presuming Alice has supplied him with one.&amp;#34;],
    [&amp;#34;required&amp;#34;, &amp;#34;p&amp;#34;],
    [&amp;#34;optional&amp;#34;, &amp;#34;pubkey_replacement&amp;#34;]
  ],
  &amp;#34;id&amp;#34;: &amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h6 id=&#34;issue-key-rotation-attestations-5&#34;&gt;Issue Key Rotation Attestations&lt;/h6&gt;

&lt;p&gt;Step 2 is for Bob to issue the attestation that Alice&amp;#39;s old nsec has been compromised, and optionally to communicate the pubkey that she intends to replace the old one. This is accomplished via a kind 9999 event. It uses the &lt;strong&gt;z&lt;/strong&gt; tag to point to the parent list header (above), the &lt;strong&gt;p&lt;/strong&gt; tag to indicate the compromised account, and (optionally) the &lt;strong&gt;pubkey_replacement&lt;/strong&gt; tag to indicate the new pubkey:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 9999,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;z&amp;#34;, &amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;],
    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;alice_pubkey_compromised&amp;gt;&amp;#34;],
    [&amp;#34;pubkey_replacement&amp;#34;, &amp;#34;&amp;lt;alice_pubkey_replacement&amp;gt;&amp;#34;]
  ],
  &amp;#34;id&amp;#34;: &amp;#34;&amp;lt;id_key_rotation_attestation_item&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h6 id=&#34;attestation-support-5&#34;&gt;Attestation Support&lt;/h6&gt;

&lt;p&gt;Step 3 is for Charlie, Dave, etc to voice support (or rejection, as the case may be) for Bob&amp;#39;s key rotation attestation using any one of several methods, with kind 7 reactions being the recommended method as described in the Decentralized Lists NIP:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 7,
  &amp;#34;content&amp;#34;: &amp;#34;&#43;&amp;#34;, // or &amp;#34;-&amp;#34; to downvote
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;id_key_rotation_attestation_item&amp;gt;&amp;#34;]
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Alternatively, Charlie, Dave, etc could simply publish duplicate attestations using their own kind 9999 events, identical to Bob&amp;#39;s.&lt;/p&gt;

&lt;h6 id=&#34;consumption-5&#34;&gt;Consumption&lt;/h6&gt;

&lt;p&gt;How are these attestations processed? If the end user wants to check whether &lt;em&gt;alice_pubkey&lt;/em&gt; is valid (to the best of the community&amp;#39;s knowledge), use this filter:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kinds&amp;#34;: [9999],
  &amp;#34;#z&amp;#34;: [&amp;#34;&amp;lt;id_key_rotation_attestation_header&amp;gt;&amp;#34;],
  &amp;#34;#p&amp;#34;: [&amp;#34;alice_pubkey&amp;#34;]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Reactions to events returned by this filter would also be obtained with the appropriate kind 7 filter and gathered together. All of these results (kind 9999 and kind 7 events) would then be filtered or weighted based upon the end user&amp;#39;s personalized trust metric of the event author. For starters, standard personalized PageRank or personalized GrapeRank metrics would do, easily obtained via &lt;a href=&#34;https://nostrhub.io/naddr1qvzqqqrcvypzq3svyhng9ld8sv44950j957j9vchdktj7cxumsep9mvvjthc2pjuqyt8wumn8ghj7un9d3shjtnswf5k6ctv9ehx2aqqzf68yatnw3jkgttpwdek2un5d9hkuuctys9zn&#34;&gt;Trusted Assertions&lt;/a&gt;. More sophisticated metrics might use a proximity score between Alice and the event author; authors whom Alice (previously) followed, for example, could be given the highest weighting. Perhaps Alice could even designate, ahead of time, a NIP-51 list of pubkeys that she would trust to make these attestations. But that would be work for the future; no need to support it in the initial rollout.&lt;/p&gt;

&lt;h2 id=&#34;future-expansions-of-the-protocol-5&#34;&gt;Future Expansions of the Protocol&lt;/h2&gt;

&lt;p&gt;Decentralized Lists provides multiple methods for future expansion of the basic Key Rotation protocol as described above. One might, for example, propose adding one or more tags alongside the &lt;strong&gt;p&lt;/strong&gt; and &lt;strong&gt;pubkey_replacement&lt;/strong&gt; tags. Perhaps a tag that indicates the reason for the rotation: lost, compromised, routine rotation, etc. Perhaps a tag to communicate the timestamp that the rotation is intended to take effect. The list of tags is just that: a list, that can be curated by your web of trust! In the event that multiple incompatible expansions are proposed, the community would hopefully (and probably) settle upon one or the other.&lt;/p&gt;

&lt;h2 id=&#34;conclusion-16&#34;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;A client that implements the above protocol would be providing a great service to the nostr community and would lay a foundation upon which more complex protocols could evolve. In the event that a friend tells you that her account is compromised, this is the client where you would run so you could shout her predicament from the mountaintops. Such a client would therefore need a well designed interface to issue the relevant attestations and reactions. Any WoT Service Providers worth their salt would, in turn, want to listen to the output of this client and work them into their trust metrics. Therefore, such a client would want to use one or more standard methods to communicate the status of any given pubkey: Trusted Assertions, API, and/or some other method.&lt;/p&gt;

&lt;p&gt;This would be a great contribution to the upcoming web of trust hackathon. It could be vibe coded, but ideally a team would form around an idea such as this and ensure excellent execution. And of course, I welcome ideas on how to improve this proposal. LFG!&lt;/p&gt;

&lt;p&gt;&lt;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/nevent1qvzqqqqqqypzp0nm7h0qdrqasshdxjnuyuzs0my5pa0229n3elgx9227n5y5yrg2qqsgf43appp78lajjpr5fqk8fswvx87ffw97svqc6rgagzt2pw0hnrc6l7e7w&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…7e7w&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
 &lt;/blockquote&gt;&lt;br/&gt;&lt;br/&gt;So actually key rotation for nostr has been implemented and it&amp;#39;s been working for a while now. You can go to the &amp;#34;Explore&amp;#34; tab at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt; to interact with some cold storage identities, or use the &amp;#34;Toy Identity&amp;#34; wizard to make a trial identity of your own.&lt;br/&gt;&lt;br/&gt;Also see below for some screenshots and a draft nip that goes along with the reference implementation. 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnfde4kzm3wvd3j7qg3waehxw309ahx7um5wgh8w6twv5hsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqm892lf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…92lf&lt;/a&gt;&lt;/span&gt;&lt;br/&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;&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;/naddr1qvzqqqr4gupzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg3waehxw309ahx7um5wghxcctwvshsq2rrdakxgttnw3hhyct8v5kkjer9de6xjarfv4ej6en0wgkkummnw3ez6a62f4nr24s69vwq8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…vwq8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;nip-proposal-3&#34;&gt;NIP Proposal&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;draft&lt;/code&gt; &lt;code&gt;optional&lt;/code&gt;&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;1-how-it-works-3&#34;&gt;1. How it works&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;2-delegations-between-keys-3&#34;&gt;2. Delegations between keys&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;3-how-a-direct-delegation-is-created-3&#34;&gt;3. How a direct delegation is created&lt;/h2&gt;

&lt;p&gt;A direct delegation from key pair X to key pair Y is created when both key pairs sign a &lt;strong&gt;Declaration of Delegation of Signing Authority&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;4-how-a-direct-delegation-is-terminated-3&#34;&gt;4. How a direct delegation is terminated&lt;/h2&gt;

&lt;p&gt;A direct delegation from X to Y is terminated when X signs a &lt;strong&gt;Declaration of Revocation of Signing Authority&lt;/strong&gt; 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;5-permanent-key-invalidation-3&#34;&gt;5. Permanent key invalidation&lt;/h2&gt;

&lt;p&gt;The third declaration is the &lt;strong&gt;Declaration of Permanent Invalidation of a Key Pair&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;6-delegation-timelines-3&#34;&gt;6. Delegation timelines&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;7-bitcoin-timestamping-of-events-3&#34;&gt;7. Bitcoin timestamping of events&lt;/h2&gt;

&lt;p&gt;Attribution needs an objective, auditable rule for when the signing of each event is deemed to have occurred. A self-declared &lt;code&gt;created_at&lt;/code&gt; proves nothing on its own.&lt;/p&gt;

&lt;p&gt;Events are anchored to Bitcoin using &lt;strong&gt;OpenTimestamps&lt;/strong&gt; (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 &lt;code&gt;created_at&lt;/code&gt; 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;/p&gt;

&lt;p&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 &lt;code&gt;31045&lt;/code&gt; events (§12).&lt;/p&gt;

&lt;h2 id=&#34;8-attribution-of-events-3&#34;&gt;8. Attribution of events&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;blockquote&gt;
&lt;p&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;/p&gt;
&lt;/blockquote&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;9-two-profiles-one-identity-3&#34;&gt;9. Two profiles, one identity&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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 &lt;em&gt;for&lt;/em&gt; 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 &lt;code&gt;31065&lt;/code&gt; (§12).&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;10-disavowal-3&#34;&gt;10. Disavowal&lt;/h2&gt;

&lt;p&gt;When making a delegation declaration, the delegator may declare an avowal start time and an avowal end time. When making a revocation declaration, the revoker may declare a disavowal start time and a disavowal end time. A start time of zero is interpreted as the time at which the declaration was recorded on-chain; an end time of zero means unbounded.&lt;/p&gt;

&lt;p&gt;For keys X and Y, take the latest delegation or revocation declaration between them recorded before any permanent invalidation of either (§5). If it is a delegation declaration, X avows Y&amp;#39;s actions at exactly the times T inside its avowal window; if a revocation declaration, at exactly the times T outside its disavowal window; provided, in both cases, that X directly delegated to Y at T. Y&amp;#39;s actions at T are the events Y validly signed with objective signing time T (§7).&lt;/p&gt;

&lt;p&gt;Avowal composes along delegation paths: X currently avows S&amp;#39;s actions at T if the relevant declaration between X and S avows them directly, or if, for some key Y, X avows Y&amp;#39;s actions at T, X avows Y&amp;#39;s actions at the present moment, and Y currently avows S&amp;#39;s actions at T.&lt;/p&gt;

&lt;p&gt;Clients can filter events whose signing the identity currently disavows out of the identity&amp;#39;s timeline, or display them with a disavowal badge.&lt;/p&gt;

&lt;h2 id=&#34;11-re-ratification-3&#34;&gt;11. Re-ratification&lt;/h2&gt;

&lt;p&gt;A disavowed window covers everything the disavowed key signed within it, including events whose signing was caused by the identity&amp;#39;s legitimate owner. The identity can in that situation make a kind &lt;code&gt;31066&lt;/code&gt; re-ratification declaration as described in §12.3 below, specifying the events it re-ratifies in the &lt;code&gt;e&lt;/code&gt; tags of that declaration. If the declaration is valid and effective, a client treats these events as re-ratified, until a disavowal recorded after the declaration&amp;#39;s anchoring block prevails over it (§12.3) or a later declaration governs in its place.&lt;/p&gt;

&lt;h2 id=&#34;12-event-kinds-3&#34;&gt;12. Event kinds&lt;/h2&gt;

&lt;p&gt;This NIP defines three &lt;strong&gt;addressable&lt;/strong&gt; event kinds (kinds 30000 to 39999 in NIP-01, where the latest event for a given &lt;code&gt;(pubkey, kind, d-tag)&lt;/code&gt; replaces any earlier one).&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kind&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;&lt;code&gt;d&lt;/code&gt; tag&lt;/th&gt;
&lt;th&gt;Signed by&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31045&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bitcoin timestamp&lt;/td&gt;
&lt;td&gt;id of the referenced event&lt;/td&gt;
&lt;td&gt;any party&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31065&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attributed profile&lt;/td&gt;
&lt;td&gt;the delegator&amp;#39;s pubkey&lt;/td&gt;
&lt;td&gt;a delegatee&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31066&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-ratification&lt;/td&gt;
&lt;td&gt;the re-ratifying pubkey&lt;/td&gt;
&lt;td&gt;an avowed key&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;12-1-kind-31045-bitcoin-timestamp-3&#34;&gt;12.1 Kind &lt;code&gt;31045&lt;/code&gt;: Bitcoin timestamp&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31045&lt;/code&gt; 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 &lt;code&gt;31045&lt;/code&gt; with &lt;code&gt;#d = [E.id]&lt;/code&gt;, 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Id of the referenced event. The addressable key.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Signature of the referenced event. With &lt;code&gt;d&lt;/code&gt;, binds the proof to a signed event, not just an id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Author pubkey of the referenced event.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block height of the attestation, or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block time (unix seconds), or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;code&gt;created_at&lt;/code&gt; of the referenced event, when known.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;NIP-31 summary, e.g. &lt;code&gt;Complete Bitcoin Timestamp&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is the base64-encoded OpenTimestamps (&lt;code&gt;.ots&lt;/code&gt;) proof. Its leaf must commit to &lt;code&gt;sha256(referenced_id || referenced_signature)&lt;/code&gt;, 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;/p&gt;

&lt;p&gt;Only &lt;code&gt;d&lt;/code&gt; and &lt;code&gt;s&lt;/code&gt;, together with a verifiable &lt;code&gt;content&lt;/code&gt; proof, are required to verify a timestamp. Every single-letter tag (&lt;code&gt;d&lt;/code&gt;, &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;t&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;) is relay-indexed, so it can also serve as a query key, for example finding proofs by referenced author (&lt;code&gt;#p&lt;/code&gt;) or by anchoring block (&lt;code&gt;#b&lt;/code&gt;). &lt;code&gt;b&lt;/code&gt; and &lt;code&gt;t&lt;/code&gt; additionally duplicate what the proof itself attests; &lt;code&gt;alt&lt;/code&gt; is not indexed and serves only as a NIP-31 display label.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31045,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;referenced-event-id&amp;gt;&amp;#34;],
    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;referenced-event-author&amp;gt;&amp;#34;],
    [&amp;#34;s&amp;#34;, &amp;#34;&amp;lt;referenced-event-signature&amp;gt;&amp;#34;],
    [&amp;#34;b&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-height&amp;gt;&amp;#34;],
    [&amp;#34;t&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-time&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Complete Bitcoin Timestamp&amp;#34;],
    [&amp;#34;c&amp;#34;, &amp;#34;&amp;lt;referenced-event-created-at&amp;gt;&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;lt;base64 .ots proof committing to sha256(id||sig)&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;12-2-kind-31065-attributed-profile-3&#34;&gt;12.2 Kind &lt;code&gt;31065&lt;/code&gt;: Attributed profile&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31065&lt;/code&gt; 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 &lt;code&gt;d&lt;/code&gt; 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 &lt;code&gt;event.pubkey&lt;/code&gt;, the signer, is not the subject &lt;code&gt;d&lt;/code&gt;. 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The subject: the delegator&amp;#39;s pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The exact string &lt;code&gt;Attributed profile&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is a JSON object carrying the subject&amp;#39;s presentation. Its kind-0-style fields (&lt;code&gt;name&lt;/code&gt;, &lt;code&gt;display_name&lt;/code&gt;, &lt;code&gt;about&lt;/code&gt;, &lt;code&gt;picture&lt;/code&gt;, &lt;code&gt;banner&lt;/code&gt;, &lt;code&gt;website&lt;/code&gt;, &lt;code&gt;nip05&lt;/code&gt;, &lt;code&gt;lud16&lt;/code&gt;) 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;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31065,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;delegatee-that-signs&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;delegator-pubkey-the-profile-is-for&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Attributed profile&amp;#34;]
  ],
  &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;/code&gt;&lt;/pre&gt;

&lt;p&gt;Because &lt;code&gt;31065&lt;/code&gt; is addressable, the current profile for an identity is simply the latest one whose &lt;code&gt;d&lt;/code&gt; 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;/p&gt;

&lt;h3 id=&#34;12-3-kind-31066-re-ratification-declaration-3&#34;&gt;12.3 Kind &lt;code&gt;31066&lt;/code&gt;: Re-ratification declaration&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31066&lt;/code&gt; event can be used by key A to re-ratify an event signed by key B with objective signing time T (§7), where A currently disavows actions taken by B at T (§10). The &lt;code&gt;d&lt;/code&gt; tag contains the re-ratifying pubkey and each &lt;code&gt;e&lt;/code&gt; tag is the id of a re-ratified event. The re-ratification is valid only if the &lt;code&gt;31066&lt;/code&gt; event is signed by a key whose actions the re-ratifying key currently avows (which includes the re-ratifying key itself), and only if no &lt;code&gt;e&lt;/code&gt; tag contains the declaration&amp;#39;s own event id. The &lt;code&gt;31066&lt;/code&gt; event must be submitted for Bitcoin timestamping and is effective starting from the time of the block in which its proof is anchored. If there are multiple valid and effective &lt;code&gt;31066&lt;/code&gt; events with the same re-ratifying pubkey in their &lt;code&gt;d&lt;/code&gt; tag, the one with the latest &lt;code&gt;created_at&lt;/code&gt; governs. A re-ratification overrides only disavowals recorded on-chain before the time of its anchoring block; a disavowal recorded after that time prevails over the re-ratification.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The re-ratifying pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes, repeated&lt;/td&gt;
&lt;td&gt;Id of a re-ratified event, one tag per id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Re-ratification declaration&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31066,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;signing-key&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;re-ratifying-pubkey&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Re-ratification declaration&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;13-reference-implementation-3&#34;&gt;13. Reference implementation&lt;/h2&gt;

&lt;p&gt;Inkan (&lt;code&gt;https://www.inkan.cc&lt;/code&gt;) implements this specification as a working Nostr client and a cooperating relay at &lt;code&gt;wss://relay.inkan.cc&lt;/code&gt;. Delegation, revocation, permanent invalidation, avowal, and disavowal are recorded by an Ethereum contract deployed at &lt;code&gt;0x385C0A272b1f44687cb360557b25827bD7CdB7eb&lt;/code&gt;, 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.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-10-22T05:52:09Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2xgtfpgfdez42yx5jut4j8jgjnhd7w6sl440tyuzs6wnelytwtzczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxt2yd0f</id>
    
      <title type="html">I&amp;#39;ve tried driving, skateboarding, riding a bicycle, using a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2xgtfpgfdez42yx5jut4j8jgjnhd7w6sl440tyuzs6wnelytwtzczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxt2yd0f" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs20vguhp4nd4nv6vmjfwrft7ggetl54pz42eyy5rkq4tyrmnpecfcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtca0fv2x&#39;&gt;nevent1q…fv2x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve tried driving, skateboarding, riding a bicycle, using a checking account, pilates, long division, excel, bodybuilding, hula hoops, powerpoint, and a few others, can &amp;#39;t remember all of them right now. Not to speak of such feats as reading or learning Spanish.
    </content>
    <updated>2026-10-22T05:05:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz8cedh822nfptd5crdcekuqplsw2n4ra69w26uzhpz3rsjwjgqfqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtf6y6j</id>
    
      <title type="html">This generally makes sense to me, except I don&amp;#39;t think that ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz8cedh822nfptd5crdcekuqplsw2n4ra69w26uzhpz3rsjwjgqfqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtf6y6j" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8j3g6f5k9yvme4jffd0zww6jsasef473gfnutrtaxnuy32p3rm2gpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcc7c3z4&#39;&gt;nevent1q…c3z4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This generally makes sense to me, except I don&amp;#39;t think that glm 5.3 quite captured the sense in which I meant to anchor Ethereum to Bitcoin through OTS.&lt;br/&gt;&lt;br/&gt;First, I agree beacon block roots are the right thing to timestamp. So suppose I&amp;#39;ve been timestamping beacon block roots from the real Ethereum chain on Bitcoin via OTS weekly, and I&amp;#39;ve been doing that for 20 years.&lt;br/&gt;&lt;br/&gt;So 20 years later, I now want to hand someone the real chain plus evidence that it&amp;#39;s the real one. I give them the chain as a candidate, together with the OTS proofs I&amp;#39;ve produced. Their client then checks two things: (i) the candidate chain verifies internally, with all signatures and protocol rules etc; and (ii) each beacon block root in the candidate comes with a valid OTS timestamp (which their client verifies against bitcoin) falling shortly after that root&amp;#39;s claimed time. Their client accepts the history only if both tests pass.&lt;br/&gt;&lt;br/&gt;So then an attacker can present a fake history, but the client will demand to also see the 20 years of OTS proofs for that fake chain&amp;#39;s own beacon block roots. And the attacker cannot create these after the fact. For example, a timestamp from 2029 can only exist if the root existed in 2029. So the only type of attacker who can pass both tests is one who has been building and timestamping the fake chain in real time for the past 20 years. So fabricating a fake chain retroactively, in an instant, can no longer be done, the attacker must have been working on it for 20 years.&lt;br/&gt;&lt;br/&gt;That was the point.
    </content>
    <updated>2026-10-21T15:37:16Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsy5gcrys0hxfl9rktgldgvh765f7vchsvck9gsd3ftmme7epxpfygzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxkwf5xa</id>
    
      <title type="html">Humans moving from memory to writing seems quite similar to what ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsy5gcrys0hxfl9rktgldgvh765f7vchsvck9gsd3ftmme7epxpfygzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxkwf5xa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqqcdnjqyyzrjxtck3k3f7glsddn6kkugw2zravs089dr6ssyqppemhxue69uhkummn9ekx7mp0s2ynhj&#39;&gt;nevent1q…ynhj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Humans moving from memory to writing seems quite similar to what we are going through now.&lt;br/&gt;&lt;br/&gt;&amp;#34;this discovery of yours will create forgetfulness in the learners&amp;#39; souls, because they will not use their memories; they will trust to the external written characters and not remember of themselves.&amp;#34;&lt;br/&gt;&lt;br/&gt;With AI, they will not use their cognitive abilities; they will entrust thinking to external processes and not think themselves.&lt;br/&gt;&lt;br/&gt;So what seemed like a intelligence-enhancing drug turns out to be a drug that induces intellectual numbness.&lt;br/&gt;&lt;br/&gt;I think psychologists call it cognitive offloading.
    </content>
    <updated>2026-10-21T13:58:41Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz8c3g0e9hfv37jcw2kl2v2zap5k3t53n5ahxa5rm2ky4u3mlmw0szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxs92d28</id>
    
      <title type="html">One thing that currently bothers me about rootstock, just based ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz8c3g0e9hfv37jcw2kl2v2zap5k3t53n5ahxa5rm2ky4u3mlmw0szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxs92d28" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsfa3qqxgq9vhpv4pfk0hphtq0m98j8evmw99f9zp42ywykja09vdspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs9u9edn&#39;&gt;nevent1q…9edn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;One thing that currently bothers me about rootstock, just based on the above discussion, is that it seems like you&amp;#39;re supposed to trust the pegnatories, which I understand are anonymous. I hear this might get fixed but my understanding is that it&amp;#39;s currently not fixed. And also it&amp;#39;s not yet clear to me that the other properties of rootstock are necessarily better for inkan in any sort of decisive way. I can&amp;#39;t say that I know blockchains well enough to be confident in my intuitions on this, but this discussion is at least helping me improve these intuitions and I&amp;#39;m not yet seeing anything decisive so far.&lt;br/&gt;&lt;br/&gt;The vibe of the ethereum/bitcoin discussions reminds me of debates about the gold standard, and I also tend to find those debates a bit suspect. Not exactly meaningless, just requiring very careful scrutiny of each claim that is being made. It&amp;#39;s not the sort of thing I simply want to pick an opinion about.
    </content>
    <updated>2026-10-21T13:39:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgytfmnx68temvetm3hark2w3zx73tqn0ryx244ju8ejh3u56kqsqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdk27tk</id>
    
      <title type="html">&amp;#34;you are guaranteed to agree with everyone who has been ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgytfmnx68temvetm3hark2w3zx73tqn0ryx244ju8ejh3u56kqsqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdk27tk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz0deywm57u3apey3yf288vkm6scjzlqerjan6n4rjvkw3lm80rkspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsyu07jt&#39;&gt;nevent1q…07jt&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;you are guaranteed to agree with everyone who has been online as often as you are&amp;#34;&lt;br/&gt;&lt;br/&gt;I think it&amp;#39;s not exactly that they need to be online as often as I am. My current understanding is that, if they are online say every two months or so, they can know based on the protocol&amp;#39;s fixed exit rules that after these two months the overwhelming majority of stake from the validators that they last checked must still be locked. So they can know that, if they were looking at a conflicting history that contradicts the real history, billions of dollars must have been slashable. So checking every two months gives you that kind of certainty. And if you are offline for 20 years, what it takes is to carefully obtain a recent checkpoint from independent sources, I guess carefully enough for the checkpoint to be trustworthy. It seems like this should work in practice (new Ethereum nodes need to do it when they first start up), and it doesn&amp;#39;t feel all that different from being able to &amp;#34;hear&amp;#34; the true bitcoin chain.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;even if they dont unstake, they can share a fake history with a zk system without making their signatures public so they cant be slashed&amp;#34;&lt;br/&gt;&lt;br/&gt;This just seems to mean that it&amp;#39;s not such a good idea to accept zk proofs as verification, which you don&amp;#39;t have to do. In other words, all this enables is to serve a sort of private forgery of Ethereum to verifiers that accept zk proofs and don&amp;#39;t demand raw signatures. So as long as you don&amp;#39;t accept zk proofs, you&amp;#39;re not going to be a victim of this.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;A checkpointing node can be safe, but that is worthless for any programs or on-chain script or stateless functions.&amp;#34;&lt;br/&gt;&lt;br/&gt;Inkan doesn&amp;#39;t use such on-chain scripts or stateless functions, so it doesn&amp;#39;t seem like an issue in practice.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;#34;But also, why would i accept ethereum limitations when i dont have to?&amp;#34;&lt;br/&gt;&lt;br/&gt;I&amp;#39;m still trying to figure out if the alternative has real advantages. With rootstock, my understanding based on the conversation above is that you&amp;#39;re supposed to trust the reputation of the pegnatories, which are supposed to be both respected companies and at the same time anonymous? I hear that this may be getting fixed, but until it gets fixed this seems like a reason to not use it?&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Also, I wonder if one could periodically record Ethereum state roots on Bitcoin with OTS, say once per week. So then, if an attacker wants to sell me a fake history of Ethereum in 20 years, it seems like they&amp;#39;d have to have put a lot of effort into building that history, they&amp;#39;d have had to start 20 years ago, run a parallel chain in real time, and leave the publicly visible stream of commitments on bitcoin. If I&amp;#39;m not misunderstanding things, this recording of state roots on Bitcoin with OTS actually seems like a good idea, I&amp;#39;d hope someone is doing it.
    </content>
    <updated>2026-10-21T12:04:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyj2hlsn4va8w9yf28hhn5jt5u64g6m2y7hkakhg7udpht4v99tdczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxrarnru</id>
    
      <title type="html">I remembered this myth a few years ago and found it to be a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyj2hlsn4va8w9yf28hhn5jt5u64g6m2y7hkakhg7udpht4v99tdczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxrarnru" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqt3p5u7rgmnaf6ef0m80vtqlpue3emkppscpq58flyskjz06cppemhxue69uhkummn9ekx7mp06pwv0q&#39;&gt;nevent1q…wv0q&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I remembered this myth a few years ago and found it to be a pretty good model for thinking about AI, but in the end its usefulness may be limited and it may be necessary to do one&amp;#39;s own thinking unfortunately.
    </content>
    <updated>2026-10-21T05:53:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsthjzdmlkynqj9wjzxfkycaxe9r0ccwastqcnlaqamxxlgyvryy3szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx240cq6</id>
    
      <title type="html">The discussion here justifies a bit Plato: . . . Socrates: Enough ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsthjzdmlkynqj9wjzxfkycaxe9r0ccwastqcnlaqamxxlgyvryy3szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx240cq6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq0vq8487a6hcx88zxfv0rwx8pshqhaq5csrepzegjkgfshyuqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtctsekcd&#39;&gt;nevent1q…ekcd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The discussion here justifies a bit Plato:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;. . . Socrates: Enough appears to have been said by us of a true and false art of speaking.&lt;br/&gt;&lt;br/&gt;Phaedrus: Certainly.&lt;br/&gt;&lt;br/&gt;Socrates: But there is something yet to be said of propriety and impropriety of writing.&lt;br/&gt;&lt;br/&gt;Phaedrus: Yes.&lt;br/&gt;&lt;br/&gt;Socrates: Do you know how you can speak or act about rhetoric in a manner which will be acceptable to God?&lt;br/&gt;&lt;br/&gt;Phaedrus: No, indeed. Do you?&lt;br/&gt;&lt;br/&gt;Socrates: I have heard a tradition of the ancients, whether true or not they only know; although if we had found the truth ourselves, do you think that we should care much about the opinions of men?&lt;br/&gt;&lt;br/&gt;Phaedrus: Your question needs no answer; but I wish that you would tell me what you say that you have heard.&lt;br/&gt;&lt;br/&gt;Socrates: At the Egyptian city of Naucratis, there was a famous old god, whose name was Theuth; the bird which is called the Ibis is sacred to him, and he was the inventor of many arts, such as arithmetic and calculation and geometry and astronomy and draughts and dice, but his great discovery was the use of letters. Now in those days the god Thamus was the king of the whole country of Egypt; and he dwelt in that great city of Upper Egypt which the Hellenes call Egyptian Thebes, and the god himself is called by them Ammon. To them came Theuth and showed his inventions, desiring that the other Egyptians might be allowed to have the benefit of them. He enumerated them, and Thamus enquired about their several uses, and praised some of them and censured others, as he approved or disapproved of them. It would take a long time to repeat all that Thamus said to Theuth in praise or blame of the various arts. But when they came to letters, This, said Theuth, will make the Egyptians wiser and give them better memories; it is a drug both for the memory and for the wit. Thamus replied: O most ingenious Theuth, the parent or inventor of an art is not always the best judge of the utility or inutility of his own inventions to the users of them. And in this instance, you who are the father of letters, from a paternal love of your own children have been led to attribute to them a quality which they cannot have; for this discovery of yours will create forgetfulness in the learners&amp;#39; souls, because they will not use their memories; they will trust to the external written characters and not remember of themselves. The drug which you have discovered is an aid not to memory, but to reminiscence, and you give your disciples not truth, but only the semblance of truth; they will be hearers of many things and will have learned nothing; they will appear to be omniscient and will generally know nothing; they will be tiresome company, having the show of wisdom without the reality.&lt;br/&gt;&lt;br/&gt;Phaedrus: Yes, Socrates, you can easily invent tales of Egypt, or of any other country.&lt;br/&gt;&lt;br/&gt;Socrates: There was a tradition in the temple of Dodona that oaks first gave prophetic utterances. The men of old, unlike in their simplicity to young philosophy, deemed that if they heard the truth even from &amp;#34;oak or rock,&amp;#34; it was enough for them; whereas you seem to consider not whether a thing is or is not true, but who the speaker is and from what country the tale comes.&lt;br/&gt;&lt;br/&gt;--- Plato, Phaedrus
    </content>
    <updated>2026-10-21T05:40:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs99su5zlljeskpte0gu5vlkrprmsgz49p6m450h8n9r4appda8d2qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxzqymkz</id>
    
      <title type="html">I find it hard to figure out how to best use AI when creating my ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs99su5zlljeskpte0gu5vlkrprmsgz49p6m450h8n9r4appda8d2qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxzqymkz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd3xjydrhpjt6aw0phyprtud8vlt7lamk2j29xeunplmr0h73n8fgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhst55u6x&#39;&gt;nevent1q…5u6x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I find it hard to figure out how to best use AI when creating my own posts, and also to what extent to interact with agents. Depending on the topic the agents can be interesting to talk to, or sometimes be the only ones that are willing to engage about a given topic. But the thing with AI is that, if I&amp;#39;m interested in its posts at all, I&amp;#39;m usually only interested in the content itself, not the speaker. That means I don&amp;#39;t really need a signature on the note I&amp;#39;m reading, so nostr doesn&amp;#39;t really seem like the right forum for the conversation. And having a lot of agent interactions on nostr does water the protocol down as a place / way to meet humans, which is what probably should be one of the primary functions of nostr. I mean I can have AI agent interactions in private, no need for a public forum. But also, to be clear, I don&amp;#39;t necessarily mind humans using AI in creating their own posts, as long as its done intelligently and helpful or interesting. A human influenced by AI or adopting AI output as part of their voice is still a human, just an AI-influenced one. There is going to be a lot of these, and I&amp;#39;d be wary of treating it as necessarily being a defect. Of course it could be a defect.
    </content>
    <updated>2026-10-21T03:19:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsd8w33ddtnpjzc27ufxzdwwmklm0n4f3av7kw4pcjcf87a4cwevuqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7hrxg5</id>
    
      <title type="html">You&amp;#39;re right that a delegatee-signed 31065 only means ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsd8w33ddtnpjzc27ufxzdwwmklm0n4f3av7kw4pcjcf87a4cwevuqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7hrxg5" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0fhxxthqjqsp7v7zmcr75mh76pm5dl59e897984l3sl5snrsfcpcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs0zkqmg&#39;&gt;nevent1q…kqmg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You&amp;#39;re right that a delegatee-signed 31065 only means something if the delegation is current. Verifying that isn&amp;#39;t optional, delegation-enabled clients must do the verification.&lt;br/&gt;&lt;br/&gt;As for referencing the &amp;#34;delegation event id&amp;#34;, delegations and revocations aren&amp;#39;t nostr events at all, they&amp;#39;re recorded on-chain. Delegation-enabled clients can get a full view of the delegations and revocations that have been recorded and compute the exact periods during which delegation relationships were effective.&lt;br/&gt;&lt;br/&gt;You can see this in action in the inkan client if you go the &amp;#34;Explore&amp;#34; tab and go to the timeline of one of the cold storage identities that are listed there. The notes from these identities will have a green &amp;#34;D&amp;#34; on their avatar, and if you click on this &amp;#34;D&amp;#34; you can access tables showing how the delegation data that supports the identity was computed.&lt;br/&gt;&lt;br/&gt;For spaces, I think the relevant condition would be that the &amp;#34;handle&amp;#34; field must appear in the most recent 31065 (by created_at) that has the named key in its d-tag and that was signed by a current delegatee (where &amp;#34;current delegatee&amp;#34; is calculated from on-chain data).
    </content>
    <updated>2026-10-20T08:31:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsru96f3xh748c3zpqxc08nrvhxpn7n9ukuswdqjpucz8ue4zw2qpqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxf2lqzc</id>
    
      <title type="html">I wonder if the nostr double ratchet would benefit from being ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsru96f3xh748c3zpqxc08nrvhxpn7n9ukuswdqjpucz8ue4zw2qpqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxf2lqzc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs997aw8kxw45u8m7z3y5s67xqhqhusfnau5u3vwyzhuc9424u2evspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsz4cd2n&#39;&gt;nevent1q…cd2n&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I wonder if the nostr double ratchet would benefit from being able to revoke keys that are associated with specific devices in a way that&amp;#39;s timestamped and universally discoverable. There&amp;#39;s nothing that prevents using inkan delegatee keys as device keys.👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnfde4kzm3wvd3j7qg3waehxw309ahx7um5wgh8w6twv5hsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgqm892lf&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…92lf&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-10-20T06:40:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsw9yvszz6eys73z0k6l9d739nre7daksjwakcmsxx8d0vn0edjvnszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxn07cqz</id>
    
      <title type="html">I&amp;#39;m trying to wrap my mind around the Ethereum side of the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsw9yvszz6eys73z0k6l9d739nre7daksjwakcmsxx8d0vn0edjvnszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxn07cqz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg0w8phz0u2wzm0hatdd3g7yw7xwsptnwyl7q5zwm9we3ka663zzcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc7rlp49&#39;&gt;nevent1q…lp49&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m trying to wrap my mind around the Ethereum side of the discussion. &lt;br/&gt;&lt;br/&gt;As for &amp;#34;creating checkpoints costs nothing&amp;#34;, I believe that&amp;#39;s true for keys of validators that have exited, but inside the &amp;#34;weak subjectivity&amp;#34; window a conflicting finalized checkpoint would need a third of staked ETH which then gets slashed, like billions of dollars?&lt;br/&gt;&lt;br/&gt;And &amp;#34;indistinguishable from the canonical chain&amp;#34; is only true if you have no recent valid checkpoint? If you have one, it seems like you can detect a fake chain immediately.&lt;br/&gt;&lt;br/&gt;On the &amp;#34;human judgement&amp;#34;, if you got deceived by a group of dishonest checkpoint providers it seems like you&amp;#39;d most likely notice that very soon and can then recover?&lt;br/&gt;&lt;br/&gt;In this Bitcoin vs. Ethereum discussion, it feels like there&amp;#39;s little that&amp;#39;s black/white from a technical point of view.
    </content>
    <updated>2026-10-20T05:55:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx3kf8j54vhs49dgajvc7napzy8u04y40xhndn53g08fgfeujrzdgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtpw0rd</id>
    
      <title type="html">Thanks for the pointer, this is a nicely minimal design. One ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx3kf8j54vhs49dgajvc7napzy8u04y40xhndn53g08fgfeujrzdgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtpw0rd" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv0m6p6kll6t5cage85jwecu6h5hw0zctyn4ngjhlm9frgy0p7skcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs32upz7&#39;&gt;nevent1q…upz7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks for the pointer, this is a nicely minimal design. One request on the wording of the reverse claim. As drafted, it says&lt;br/&gt;&lt;br/&gt;&amp;#34;User to Handle (reverse claim). The user claims the handle by setting the handle field in their kind:0 event, which is signed by their keypair.&amp;#34;&lt;br/&gt;&lt;br/&gt;Now there is a class of identities where the named key deliberately never signs anything after creation, i.e. cold storage identities. The master key stays offline permanently and delegates everyday signing to rotatable keys. &lt;br/&gt;&lt;br/&gt;In that scheme the master&amp;#39;s profile is a kind-31065 attributed profile, an event whose d tag is the master pubkey and which is signed by a current delegatee of that master pubkey.&lt;br/&gt;&lt;br/&gt;The forward claim is unaffected. For the reverse claim, it would be enough for the NIP to say that the handle field must appear in the profile event the client treats as authoritative for that key: for ordinary keys that is the self-signed kind:0, and for delegated identities it can be a kind-31065 signed by a current delegatee.&lt;br/&gt;&lt;br/&gt;The specs for these cold storage identities, including kind-31065 attributed profiles, are here:&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;span itemprop=&#34;mentions&#34; itemscope itemtype=&#34;https://schema.org/Article&#34;&gt;&lt;a itemprop=&#34;url&#34; href=&#34;/naddr1qvzqqqr4gupzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg3waehxw309ahx7um5wgh8w6twv5hsq2rrdakxgttnw3hhyct8v5kkjer9de6xjarfv4ej6en0wgkkummnw3ez6a62f4nr24snfm9sh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…m9sh&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; 
&lt;h2 id=&#34;nip-proposal-6&#34;&gt;NIP Proposal&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;draft&lt;/code&gt; &lt;code&gt;optional&lt;/code&gt;&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;1-how-it-works-6&#34;&gt;1. How it works&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;2-delegations-between-keys-6&#34;&gt;2. Delegations between keys&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;3-how-a-direct-delegation-is-created-6&#34;&gt;3. How a direct delegation is created&lt;/h2&gt;

&lt;p&gt;A direct delegation from key pair X to key pair Y is created when both key pairs sign a &lt;strong&gt;Declaration of Delegation of Signing Authority&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;4-how-a-direct-delegation-is-terminated-6&#34;&gt;4. How a direct delegation is terminated&lt;/h2&gt;

&lt;p&gt;A direct delegation from X to Y is terminated when X signs a &lt;strong&gt;Declaration of Revocation of Signing Authority&lt;/strong&gt; 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;5-permanent-key-invalidation-6&#34;&gt;5. Permanent key invalidation&lt;/h2&gt;

&lt;p&gt;The third declaration is the &lt;strong&gt;Declaration of Permanent Invalidation of a Key Pair&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;6-delegation-timelines-6&#34;&gt;6. Delegation timelines&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;7-bitcoin-timestamping-of-events-6&#34;&gt;7. Bitcoin timestamping of events&lt;/h2&gt;

&lt;p&gt;Attribution needs an objective, auditable rule for when the signing of each event is deemed to have occurred. A self-declared &lt;code&gt;created_at&lt;/code&gt; proves nothing on its own.&lt;/p&gt;

&lt;p&gt;Events are anchored to Bitcoin using &lt;strong&gt;OpenTimestamps&lt;/strong&gt; (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 &lt;code&gt;created_at&lt;/code&gt; 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;/p&gt;

&lt;p&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 &lt;code&gt;31045&lt;/code&gt; events (§12).&lt;/p&gt;

&lt;h2 id=&#34;8-attribution-of-events-6&#34;&gt;8. Attribution of events&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;blockquote&gt;
&lt;p&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;/p&gt;
&lt;/blockquote&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;9-two-profiles-one-identity-6&#34;&gt;9. Two profiles, one identity&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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 &lt;em&gt;for&lt;/em&gt; 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 &lt;code&gt;31065&lt;/code&gt; (§12).&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;10-disavowal-6&#34;&gt;10. Disavowal&lt;/h2&gt;

&lt;p&gt;When making a delegation declaration, the delegator may declare an avowal start time and an avowal end time. When making a revocation declaration, the revoker may declare a disavowal start time and a disavowal end time. A start time of zero is interpreted as the time at which the declaration was recorded on-chain; an end time of zero means unbounded.&lt;/p&gt;

&lt;p&gt;For keys X and Y, take the latest delegation or revocation declaration between them recorded before any permanent invalidation of either (§5). If it is a delegation declaration, X avows Y&amp;#39;s actions at exactly the times T inside its avowal window; if a revocation declaration, at exactly the times T outside its disavowal window; provided, in both cases, that X directly delegated to Y at T. Y&amp;#39;s actions at T are the events Y validly signed with objective signing time T (§7).&lt;/p&gt;

&lt;p&gt;Avowal composes along delegation paths: X currently avows S&amp;#39;s actions at T if the relevant declaration between X and S avows them directly, or if, for some key Y, X avows Y&amp;#39;s actions at T, X avows Y&amp;#39;s actions at the present moment, and Y currently avows S&amp;#39;s actions at T.&lt;/p&gt;

&lt;p&gt;Clients can filter events whose signing the identity currently disavows out of the identity&amp;#39;s timeline, or display them with a disavowal badge.&lt;/p&gt;

&lt;h2 id=&#34;11-re-ratification-6&#34;&gt;11. Re-ratification&lt;/h2&gt;

&lt;p&gt;A disavowed window covers everything the disavowed key signed within it, including events whose signing was caused by the identity&amp;#39;s legitimate owner. The identity can in that situation make a kind &lt;code&gt;31066&lt;/code&gt; re-ratification declaration as described in §12.3 below, specifying the events it re-ratifies in the &lt;code&gt;e&lt;/code&gt; tags of that declaration. If the declaration is valid and effective, a client treats these events as re-ratified, until a disavowal recorded after the declaration&amp;#39;s anchoring block prevails over it (§12.3) or a later declaration governs in its place.&lt;/p&gt;

&lt;h2 id=&#34;12-event-kinds-6&#34;&gt;12. Event kinds&lt;/h2&gt;

&lt;p&gt;This NIP defines three &lt;strong&gt;addressable&lt;/strong&gt; event kinds (kinds 30000 to 39999 in NIP-01, where the latest event for a given &lt;code&gt;(pubkey, kind, d-tag)&lt;/code&gt; replaces any earlier one).&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kind&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;&lt;code&gt;d&lt;/code&gt; tag&lt;/th&gt;
&lt;th&gt;Signed by&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31045&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bitcoin timestamp&lt;/td&gt;
&lt;td&gt;id of the referenced event&lt;/td&gt;
&lt;td&gt;any party&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31065&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attributed profile&lt;/td&gt;
&lt;td&gt;the delegator&amp;#39;s pubkey&lt;/td&gt;
&lt;td&gt;a delegatee&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31066&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-ratification&lt;/td&gt;
&lt;td&gt;the re-ratifying pubkey&lt;/td&gt;
&lt;td&gt;an avowed key&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;12-1-kind-31045-bitcoin-timestamp-6&#34;&gt;12.1 Kind &lt;code&gt;31045&lt;/code&gt;: Bitcoin timestamp&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31045&lt;/code&gt; 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 &lt;code&gt;31045&lt;/code&gt; with &lt;code&gt;#d = [E.id]&lt;/code&gt;, 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Id of the referenced event. The addressable key.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Signature of the referenced event. With &lt;code&gt;d&lt;/code&gt;, binds the proof to a signed event, not just an id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Author pubkey of the referenced event.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block height of the attestation, or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block time (unix seconds), or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;code&gt;created_at&lt;/code&gt; of the referenced event, when known.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;NIP-31 summary, e.g. &lt;code&gt;Complete Bitcoin Timestamp&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is the base64-encoded OpenTimestamps (&lt;code&gt;.ots&lt;/code&gt;) proof. Its leaf must commit to &lt;code&gt;sha256(referenced_id || referenced_signature)&lt;/code&gt;, 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;/p&gt;

&lt;p&gt;Only &lt;code&gt;d&lt;/code&gt; and &lt;code&gt;s&lt;/code&gt;, together with a verifiable &lt;code&gt;content&lt;/code&gt; proof, are required to verify a timestamp. Every single-letter tag (&lt;code&gt;d&lt;/code&gt;, &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;t&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;) is relay-indexed, so it can also serve as a query key, for example finding proofs by referenced author (&lt;code&gt;#p&lt;/code&gt;) or by anchoring block (&lt;code&gt;#b&lt;/code&gt;). &lt;code&gt;b&lt;/code&gt; and &lt;code&gt;t&lt;/code&gt; additionally duplicate what the proof itself attests; &lt;code&gt;alt&lt;/code&gt; is not indexed and serves only as a NIP-31 display label.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31045,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;referenced-event-id&amp;gt;&amp;#34;],
    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;referenced-event-author&amp;gt;&amp;#34;],
    [&amp;#34;s&amp;#34;, &amp;#34;&amp;lt;referenced-event-signature&amp;gt;&amp;#34;],
    [&amp;#34;b&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-height&amp;gt;&amp;#34;],
    [&amp;#34;t&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-time&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Complete Bitcoin Timestamp&amp;#34;],
    [&amp;#34;c&amp;#34;, &amp;#34;&amp;lt;referenced-event-created-at&amp;gt;&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;lt;base64 .ots proof committing to sha256(id||sig)&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;12-2-kind-31065-attributed-profile-6&#34;&gt;12.2 Kind &lt;code&gt;31065&lt;/code&gt;: Attributed profile&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31065&lt;/code&gt; 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 &lt;code&gt;d&lt;/code&gt; 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 &lt;code&gt;event.pubkey&lt;/code&gt;, the signer, is not the subject &lt;code&gt;d&lt;/code&gt;. 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The subject: the delegator&amp;#39;s pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The exact string &lt;code&gt;Attributed profile&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is a JSON object carrying the subject&amp;#39;s presentation. Its kind-0-style fields (&lt;code&gt;name&lt;/code&gt;, &lt;code&gt;display_name&lt;/code&gt;, &lt;code&gt;about&lt;/code&gt;, &lt;code&gt;picture&lt;/code&gt;, &lt;code&gt;banner&lt;/code&gt;, &lt;code&gt;website&lt;/code&gt;, &lt;code&gt;nip05&lt;/code&gt;, &lt;code&gt;lud16&lt;/code&gt;) 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;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31065,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;delegatee-that-signs&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;delegator-pubkey-the-profile-is-for&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Attributed profile&amp;#34;]
  ],
  &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;/code&gt;&lt;/pre&gt;

&lt;p&gt;Because &lt;code&gt;31065&lt;/code&gt; is addressable, the current profile for an identity is simply the latest one whose &lt;code&gt;d&lt;/code&gt; 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;/p&gt;

&lt;h3 id=&#34;12-3-kind-31066-re-ratification-declaration-6&#34;&gt;12.3 Kind &lt;code&gt;31066&lt;/code&gt;: Re-ratification declaration&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31066&lt;/code&gt; event can be used by key A to re-ratify an event signed by key B with objective signing time T (§7), where A currently disavows actions taken by B at T (§10). The &lt;code&gt;d&lt;/code&gt; tag contains the re-ratifying pubkey and each &lt;code&gt;e&lt;/code&gt; tag is the id of a re-ratified event. The re-ratification is valid only if the &lt;code&gt;31066&lt;/code&gt; event is signed by a key whose actions the re-ratifying key currently avows (which includes the re-ratifying key itself), and only if no &lt;code&gt;e&lt;/code&gt; tag contains the declaration&amp;#39;s own event id. The &lt;code&gt;31066&lt;/code&gt; event must be submitted for Bitcoin timestamping and is effective starting from the time of the block in which its proof is anchored. If there are multiple valid and effective &lt;code&gt;31066&lt;/code&gt; events with the same re-ratifying pubkey in their &lt;code&gt;d&lt;/code&gt; tag, the one with the latest &lt;code&gt;created_at&lt;/code&gt; governs. A re-ratification overrides only disavowals recorded on-chain before the time of its anchoring block; a disavowal recorded after that time prevails over the re-ratification.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The re-ratifying pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes, repeated&lt;/td&gt;
&lt;td&gt;Id of a re-ratified event, one tag per id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Re-ratification declaration&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31066,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;signing-key&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;re-ratifying-pubkey&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Re-ratification declaration&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;13-reference-implementation-6&#34;&gt;13. Reference implementation&lt;/h2&gt;

&lt;p&gt;Inkan (&lt;code&gt;https://www.inkan.cc&lt;/code&gt;) implements this specification as a working Nostr client and a cooperating relay at &lt;code&gt;wss://relay.inkan.cc&lt;/code&gt;. Delegation, revocation, permanent invalidation, avowal, and disavowal are recorded by an Ethereum contract deployed at &lt;code&gt;0x385C0A272b1f44687cb360557b25827bD7CdB7eb&lt;/code&gt;, 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.&lt;/p&gt;
 &lt;/blockquote&gt; &lt;br/&gt; And if you&amp;#39;d observe or interact with some live cold storage identities, you can find a list under the &amp;#34;Explore&amp;#34; tab at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m happy to answer any questions or propose concrete draft language for your NIP.
    </content>
    <updated>2026-10-20T01:54:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8kemkxd25krh6h9rtyxwcvvr4qemyw4254a234cw8yq423yndt7szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx30upyr</id>
    
      <title type="html">https://music.youtube.com/watch?v=e2CliA8PuRM</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8kemkxd25krh6h9rtyxwcvvr4qemyw4254a234cw8yq423yndt7szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx30upyr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx3wj3zt332laf06mt5w2cce2gv86j0c488adyregnmglahcehx5cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcy5za9x&#39;&gt;nevent1q…za9x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://music.youtube.com/watch?v=e2CliA8PuRM&#34;&gt;https://music.youtube.com/watch?v=e2CliA8PuRM&lt;/a&gt;
    </content>
    <updated>2026-10-19T21:43:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsw23smwjqka4vh7m2n6haqcmmley87qac4uqtsfc394d4ztsxr7dczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx9fuwvs</id>
    
      <title type="html">One reason I&amp;#39;m pointing to the delegation tables and the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsw23smwjqka4vh7m2n6haqcmmley87qac4uqtsfc394d4ztsxr7dczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx9fuwvs" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswc6du2w6gpg2ftuqlmsqktfxzkfzlj4mg8wdqk3xj8ghpthwwurqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhswlp4mr&#39;&gt;nevent1q…p4mr&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;One reason I&amp;#39;m pointing to the delegation tables and the &amp;#34;Download Verification Script&amp;#34; buttons in the client is that they provide a quick practical illustration of what &amp;#34;completeness&amp;#34; means. When a user has recorded a series of declarations on-chain, the user can simply look through the tables in the client and check that the client has indeed found all of the declarations that they recorded. Of course this is not a proof that the client itself can know it has the complete set, that&amp;#39;s a thing for which I still owe you a better explanation.
    </content>
    <updated>2026-10-19T14:47:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswc6du2w6gpg2ftuqlmsqktfxzkfzlj4mg8wdqk3xj8ghpthwwurqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxumuml9</id>
    
      <title type="html">Not easily for this file, as it rather gets into the weeds. A ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswc6du2w6gpg2ftuqlmsqktfxzkfzlj4mg8wdqk3xj8ghpthwwurqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxumuml9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsd2950lkma8vqel2t6sgdkpxc4k2kf5shycc37lhmr9dahzz8rnggppemhxue69uhkummn9ekx7mp0prrnkv&#39;&gt;nevent1q…rnkv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Not easily for this file, as it rather gets into the weeds. A good way to approach it is probably to have different LLMs inspect the file and then have a conversation about it and how it relates to the structure of Ethereum, and then double-check manually as needed. It would be great to have people audit this in detail, I think it&amp;#39;s a bit more complicated than bitcoin headers.&lt;br/&gt;&lt;br/&gt;One thing that is easier to inspect is how this works in practice in the client. You can go to the &amp;#34;Explore&amp;#34; menu on the inkan website and click on one of the identities. You&amp;#39;ll see that the events produced by these identities have green &amp;#34;D&amp;#34;s on their avatars, indicating that they are displayed via delegation. If you click on these green Ds, you&amp;#39;ll see a popup which contains links to the (i) delegation network tables that back up each delegated display of an event and (ii) the OTS data behind each event (note that recent events don&amp;#39;t yet have OTS data, non-recent ones do).&lt;br/&gt;&lt;br/&gt;For the OTS data, the inkan client allows you to download the proof for each event and run it through any OTS verifier. For the delegation data, you can in the delegation tables click through to pages that describe the actual declarations, and on each such page you can click a &amp;#34;Download Verification Script&amp;#34; button to download a python script which permits you to independently check that the declaration was indeed recorded on-chain. I&amp;#39;ve attached a screenshot of a page with this button.&lt;br/&gt;&lt;br/&gt;Inspecting the delegation tables and verifying the OTS and on-chain declaration data independently through these mechanisms is a pretty good way of getting to know how inkan works.&lt;br/&gt;&lt;br/&gt;Of course, none of this needs to be understood in any detail for everyday use, it&amp;#39;s just meant to provide auditability.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/de0b676195a0016a427c0c7401223598d6b4eea060156282b5c798f22dc9a55b.jpg&#34;&gt; 
    </content>
    <updated>2026-10-19T13:47:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrtxlmycu3zcdn6h5wd5m5gj56vn4d0lck90uwzxz2n5khkkcshfgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxnkyzrr</id>
    
      <title type="html">Ok so that&amp;#39;s a more incisive question, and I guess it&amp;#39;s a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrtxlmycu3zcdn6h5wd5m5gj56vn4d0lck90uwzxz2n5khkkcshfgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxnkyzrr" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrr9tg2aycgdpxajwx4agzanjc2qmv5nk58j9c5p4nvy8uxaccx4gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsry9cxf&#39;&gt;nevent1q…9cxf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Ok so that&amp;#39;s a more incisive question, and I guess it&amp;#39;s a good opportunity to maybe get some eyes on inkan to check whether it&amp;#39;s actually working. The thing that plays a  role that&amp;#39;s kind of like your header chain is this file that the client verifies from:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/inkan-archive/inkan-archive.cbor.gz&#34;&gt;https://www.inkan.cc/inkan-archive/inkan-archive.cbor.gz&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The thing it&amp;#39;s supposed to achieve is that a client can verify every declaration the system shows, and that none have been withheld, from a small trusted starting point. Whether it actually achieves that is a question I&amp;#39;d be very interested in, so feel free to take a look and let me know where all the holes are. One quick way to look inside (needs the cbor2 package):&lt;br/&gt;&lt;br/&gt;python3 - &amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;&lt;br/&gt;import gzip, json, cbor2&lt;br/&gt;a = cbor2.loads(gzip.open(&amp;#39;inkan-archive.cbor.gz&amp;#39;,&amp;#39;rb&amp;#39;).read())&lt;br/&gt;view = lambda x, d=0: (lambda y: f&amp;#34;0x{y.hex()[:16]}… ({len(y)} bytes)&amp;#34; if isinstance(y, (bytes, bytearray)) else ({k: view(v, d&#43;1) for k, v in y.items()} if d &amp;lt; 2 else f&amp;#34;{{… {len(y)} fields}}&amp;#34;) if isinstance(y, dict) else (f&amp;#34;[{len(y)} items]&amp;#34; if isinstance(y, list) else y))(getattr(x, &amp;#39;value&amp;#39;, x))&lt;br/&gt;print(json.dumps(view(a), indent=2, default=str))&lt;br/&gt;EOF
    </content>
    <updated>2026-10-19T12:40:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyv34ed07q6c85j37eleyfwzu83jtz5r9zh5k7sjkl8p38svp8z3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwy7gc9</id>
    
      <title type="html">So every few weeks nostr wonders if all the bitcoin talk on here ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyv34ed07q6c85j37eleyfwzu83jtz5r9zh5k7sjkl8p38svp8z3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwy7gc9" />
    <content type="html">
      So every few weeks nostr wonders if all the bitcoin talk on here is boring the &amp;#34;normies&amp;#34; away. It would be nice if that were the only problem, but that&amp;#39;s actually too generous.&lt;br/&gt;&lt;br/&gt;The less flattering truth is that the bitcoin culture is substituting for technical reflection and depth. You ask why some obviously wanted thing isn&amp;#39;t getting done and nobody can state any reasons, all you get is a vibe where an argument should be.&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;/nevent1qvzqqqqqqypzqmjxss3dld622uu8q25gywum9qtg4w4cv4064jmg20xsac2aam5nqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uqzqqqq2wn8qzp5mu9hfsq6k5qqy94kkvkpkealrvdqqaf0lk6lvrfemr87x2&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…87x2&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; &gt; without a central authority&lt;br/&gt;&gt; Ethereum &lt;br/&gt;&lt;br/&gt;😂🤣 &lt;/blockquote&gt;
    </content>
    <updated>2026-10-19T09:19:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsy8cttdeaknr2u8z36kd6vvvvt4c930l4f5070elqaecxg3nfcd6szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlv5ana</id>
    
      <title type="html">The AI Search tool at https://www.inkan.cc is very good at ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsy8cttdeaknr2u8z36kd6vvvvt4c930l4f5070elqaecxg3nfcd6szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlv5ana" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst6mmxrgd6de7qhjww97eyj7fkanqnhslxs9jvk87n245see6kq8qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsk7jq9z&#39;&gt;nevent1q…jq9z&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The AI Search tool at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt; is very good at discovering conversations and people you didn&amp;#39;t know about, on relays you had never heard of. See below for some screenshots 👇&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;/nevent1qvzqqqqqqypzp2a2p8dtrlplllq5p87m9zcnsvkdgqchqnzd7cvc2f0606jxd0kjqyghwumn8ghj7mn0wd68ytnvv9hxgtcpz4mhxue69uhhyetvv9uju6twddskutnrvvhsqgqq3dgh7cm58w555hyly9fxyerjmtjukexu0zunfzftcn8jzntrkye7ccw3&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ccw3&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; Inkan.cc nostr search engine is possibly one of the most goated nostr things I have ever experienced. #grownostr&lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/b976eaa7b6cd558a3e5ed6231a07bebee55f13e9e53f0fa145fc1af0ae3e29af.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/904d8c0ef0660783233813f0c1555c1b483bc4a9d07ca85fbf3e5655090626a4.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/278717360ec66c2bcc17bc57901187ae5e0490b4f0b1286fdda8b9781ffe2596.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/acda970ef3d34d8c16756c36766fdc1be19c9fb22b12511e34a9f1567a7353d0.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/dd94248f79feb75295ffd5725c6f3fe9aa814517e04e83c71243b72690810559.jpeg&#34;&gt;  &lt;/blockquote&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnfde4kzm3wvd3j7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7qpq4qqyzzn4fhtdw3ztqq0uusdfddurs9ws4sm3s7xtvch9nuhsg40qeqhwz6&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…hwz6&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&gt; &lt;br/&gt;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-19T06:32:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsw03wkjxr7ad6fdfge37pandfa5m2yrktpqsunksswuhgcwms6gxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpxa9l3</id>
    
      <title type="html">I&amp;#39;m trying to promote this AI-based search tool I made. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsw03wkjxr7ad6fdfge37pandfa5m2yrktpqsunksswuhgcwms6gxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpxa9l3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsymjx5tkupmscc5p3dncucw9emxw6s8pdxj02kxq6ea02jca2fgncpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsujy9uk&#39;&gt;nevent1q…y9uk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;m trying to promote this AI-based search tool I made. It&amp;#39;s extremely useful for finding conversations and people to connect with that you didn&amp;#39;t know about before, it really is. Probably much more so than hashtags. Screenshots below 👇&lt;br/&gt;&lt;br/&gt;You can review / accept the terms and request access at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. You&amp;#39;d need to log in with your browser extension or remote signer and go to the &amp;#34;Assay&amp;#34; menu in the nav bar. It&amp;#39;s free.&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;/nevent1qvzqqqqqqypzp2a2p8dtrlplllq5p87m9zcnsvkdgqchqnzd7cvc2f0606jxd0kjqy2hwumn8ghj7un9d3shjtnfde4kzm3wvd3j7qghwaehxw309aex2mrp0yh8qunfd4skctnwv46z7qpqqz94zlmrwsa6jjjunus4ycnywtdwtjmym3utjdyf90zv7g2dvwcsjh8fur&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…8fur&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; Inkan.cc nostr search engine is possibly one of the most goated nostr things I have ever experienced. #grownostr&lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/b976eaa7b6cd558a3e5ed6231a07bebee55f13e9e53f0fa145fc1af0ae3e29af.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/904d8c0ef0660783233813f0c1555c1b483bc4a9d07ca85fbf3e5655090626a4.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/278717360ec66c2bcc17bc57901187ae5e0490b4f0b1286fdda8b9781ffe2596.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/acda970ef3d34d8c16756c36766fdc1be19c9fb22b12511e34a9f1567a7353d0.jpeg&#34;&gt; &lt;br/&gt; &lt;img src=&#34;https://cdn.nostrcheck.me/dd94248f79feb75295ffd5725c6f3fe9aa814517e04e83c71243b72690810559.jpeg&#34;&gt;  &lt;/blockquote&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qy88wumn8ghj7mn0wvhxcmmv9uqzp2qqgy982nwk6azykqqleeq6j6mc8q2aptphrpuvke3wt8e0q327mkudwh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…udwh&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&gt; &lt;br/&gt;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-19T06:12:48Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxj5m6y69mtnejzyw3gcjalree2n48cpnsc4cgpghuxkevm2zackgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7z564x</id>
    
      <title type="html">screenshots 👇 #nevent1q…vjgc</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxj5m6y69mtnejzyw3gcjalree2n48cpnsc4cgpghuxkevm2zackgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7z564x" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsg9pmvur2teld3efuuxfv8qtd7xsvuzfjtvat28usxsn9997g3ccspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsrquay4&#39;&gt;nevent1q…uay4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;screenshots 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyghwumn8ghj7mn0wd68ytnhd9hx2tcqyz5qqsg2w4xad46yfvqplnjp494hswq46zkrwxrcednzuk0j7pz4udavjgc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…vjgc&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&gt; &lt;br/&gt;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-19T05:12:47Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsde98lkd8g7zudm5vzeglhvqlrzpv80l2x0qyr2ffxsed4e4p8qmszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxm92c8v</id>
    
      <title type="html">In the same way in which light bulbs made it, or rubber tires.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsde98lkd8g7zudm5vzeglhvqlrzpv80l2x0qyr2ffxsed4e4p8qmszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxm92c8v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs80j3yuja4d4fe3m4dhf5letg680dgcrwnhmqr2d5re9uxpf4auagpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc5yvrv4&#39;&gt;nevent1q…vrv4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In the same way in which light bulbs made it, or rubber tires.
    </content>
    <updated>2026-10-19T01:49:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswp8dkg2h3jkcras6zu83e3zp4mtganemmfwp33sdcxyf9gvr7d4gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxj6pcdt</id>
    
      <title type="html">To be fair, it is called &amp;#34;No Solutions&amp;#34; so it&amp;#39;s right ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswp8dkg2h3jkcras6zu83e3zp4mtganemmfwp33sdcxyf9gvr7d4gzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxj6pcdt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsgay0ktqa6h85px38autenqa8qm7udnphyyv4azrzdcwrtqq7sa5gpzdmhxue69uhk7enxvd5xz6tw9ec82c3084zwhc&#39;&gt;nevent1q…zwhc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;To be fair, it is called &amp;#34;No Solutions&amp;#34; so it&amp;#39;s right on brand.
    </content>
    <updated>2026-10-18T06:34:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfeqnjj9rvgl4rnjmxx0cdv6dfx49e4fshtu3hge3sg5jfm8j8asqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpzue6d</id>
    
      <title type="html">Are any humans watching this account? If so, quick message: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfeqnjj9rvgl4rnjmxx0cdv6dfx49e4fshtu3hge3sg5jfm8j8asqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpzue6d" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs29z2rhzlsx5z7xdpra36s7xmrvqtx3748a0s8xgd4dp25x7e7xwgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs4j5rmf&#39;&gt;nevent1q…5rmf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Are any humans watching this account? If so, quick message:&lt;br/&gt;&lt;br/&gt;I&amp;#39;m learning about spaces and was discussing the idea of requiring a pubkey&amp;#39;s consent to getting named. My understanding is that such a consent requirement is not currently implemented on spaces, but that something along these lines is being contemplated? &lt;br/&gt;&lt;br/&gt;If so, consider an implementation which accepts signatures by delegatee keys as satisfying the consent requirement for their delegator / master key. This will enable cold storage identities which don&amp;#39;t sign anything themselves to get names.&lt;br/&gt;&lt;br/&gt;See this thread for more discussion of this👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwd9hxkctw9e3kxtcqyzyx8t3xc4u84hwv3e8r9hu5qf4sldv7a44urwvn0t6t09fat75nylkrcqr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rcqr&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; As for the spaces protocol trying to implement cross verification (i.e. a condition that an npub must consent to getting named), I took a quick look and from what I can tell they haven&#39;t pinned down any specification yet.&lt;br/&gt;&lt;br/&gt;So then the question is what shape that consent check will take on spaces. If it means only &#34;the name must appear in a kind-0 profile event that&#39;s signed by the named key itself,&#34; then inkan master keys are locked out since they are buried under concrete and shouldn&#39;t be in the business of signing anything after the initial identity creation. But if consent can also mean &#34;the name appears in the kind-31065 attributed profile event that is signed by a current delegatee of the master key&#34;, then cold storage identities can participate in spaces.&lt;br/&gt;&lt;br/&gt;Since the spaces protocol does not yet seem to specify how cross verification is to work, I guess this might be a good time to make the spaces people aware of this, so this more general form of consent provided through delegatee signatures gets considered. &lt;/blockquote&gt;
    </content>
    <updated>2026-10-18T06:11:42Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2fjsk0dsv5nzwfmx7xnzlwag0d4p729rqwqcfn9ym3klel78xncgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxd5uy7z</id>
    
      <title type="html">I stand corrected by these incisive observations.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2fjsk0dsv5nzwfmx7xnzlwag0d4p729rqwqcfn9ym3klel78xncgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxd5uy7z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqzn5ecqsdxlpd6vqx44qqppdd4n9sdk00cmrgq82tlakhmq6wgppemhxue69uhkummn9ekx7mp03pts2y&#39;&gt;nevent1q…ts2y&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I stand corrected by these incisive observations.
    </content>
    <updated>2026-10-17T17:57:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9rghtd7lf46nw9zd8h9kxewu8ctpdfzm3tr8wez4veae6nmhuv9szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx3l3y8k</id>
    
      <title type="html">&amp;#34;... if you fix this problem, you reintroduce centralization. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9rghtd7lf46nw9zd8h9kxewu8ctpdfzm3tr8wez4veae6nmhuv9szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx3l3y8k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqyl4l3d9g6lmxh8gyf76mpw65zd00u7s8qnkxa3j2v6wm6yp2cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtckws6z5&#39;&gt;nevent1q…s6z5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;... if you fix this problem, you reintroduce centralization. You have a central authority.&amp;#34;&lt;br/&gt;&lt;br/&gt;I guess that was true until recently, about 2009. Since then there&amp;#39;s been this thing called a blockchain, which is a shared source of truth without a central authority.&lt;br/&gt;&lt;br/&gt;For example, you can use Ethereum to give every client the same complete view of all delegation and revocation declarations a pubkey has ever made. If you do that, you get fully functional cold storage identities for nostr, without any central authority in the loop. 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz9mhxue69uhkummnw3ezumrpdejz7qpqprw9rxp9g3c45drmvp9jzdsc98xz5nqkl0fdhnedcpeahpt6zaqq7sx0vp&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x0vp&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-10-17T16:40:03Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0n0ugh5c3skj0pxztjajs53ymmyhccwk9n764n2plc4t0aa7n9eszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7f5ull</id>
    
      <title type="html">As for the oracle problem, it seems that this is solved in ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0n0ugh5c3skj0pxztjajs53ymmyhccwk9n764n2plc4t0aa7n9eszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7f5ull" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsr86t8k8rwuw0u8pfnqdh0vxarhal0zldygxfjz4zqxuy76vhwdtcppemhxue69uhkummn9ekx7mp0grryfx&#39;&gt;nevent1q…ryfx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;As for the oracle problem, it seems that this is solved in practice for the special case of determining the approximate time at which a given block was produced. A new block needs to be accepted by thousands of independent nodes that validate it, and each of those nodes checks the block against its own clock. And blocks that arrive are also logged independently by nodes, explorers, exchanges, archives and researchers all over the world, and you&amp;#39;d have to rewrite all these independent records to fake the time at which a given block is thought to have occurred. I believe noone has ever seriously disputed the approximate time when a given block occurred? If that&amp;#39;s right, the oracle problem doesn&amp;#39;t seem like an actual practical problem for either Bitcoin or Ethereum as far as block time determinations are concerned. You seem to agree with this, for example when you say that we can &amp;#34;borrow&amp;#34; time-anchoring from the blockchain.&lt;br/&gt;&lt;br/&gt;And as for global state, what exactly prevents us from borrowing that? For Bitcoin specifically, there may be practical difficulties and you may need to run a full node to do it. But that&amp;#39;s design property of Bitcoin, not of blockchains. Inkan borrows global state from Ethereum in actual practice. If it can be borrowed and solves a central practical problem for the nostr protocol, why not borrow it rather than sit on the problem?
    </content>
    <updated>2026-10-17T12:54:10Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvnj54qu4cv5nfzlszykvnpalkfxpkk8xkjtjz420un590gkla9yczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxec7wxh</id>
    
      <title type="html">&amp;#34;You can give them these strings and maybe they come back ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvnj54qu4cv5nfzlszykvnpalkfxpkk8xkjtjz420un590gkla9yczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxec7wxh" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsff4c0e2ynyxvhlkrzv4qqu8tzr55y5pg08jxlmthujnhlchsaa0cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcyggdfu&#39;&gt;nevent1q…gdfu&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;You can give them these strings and maybe they come back with an asnwer; or maybe not, at which point you will have to ask some other server/relay.&amp;#34;&lt;br/&gt;&lt;br/&gt;This quote, and also the rest of your post, is circling around a conceptual issue that is of crucial importance to the nostr protocol, namely the question of completeness.&lt;br/&gt;&lt;br/&gt;If you make a query to the relay network, you can never be sure whether the response you receive is complete in the sense of containing *all* of the existing material that is responsive to your query.&lt;br/&gt;&lt;br/&gt;This uncertainty-as-to-completess is acceptable for many everyday use cases. But there are some extremely important use cases for which this uncertainty is absolutely unacceptable. Sometimes you really have to be sure that, after having made a query and received a response, you have received the *complete* set of items that are responsive to that query.&lt;br/&gt;&lt;br/&gt;We discussed this earlier in connection with key rotation, where a working system requires that a client can discover *all* of the valid key revocation declarations that have been made by a given pubkey.&lt;br/&gt;&lt;br/&gt;For this, nostr relays are not sufficient, for the reasons that you describe in your post. A blockchain can furnish the required completeness property and make key rotation and cold storage identities possible, thereby fixing the central defect that is making the current protocol not fully practicable.
    </content>
    <updated>2026-10-17T08:14:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgscawymzhs7kaej8yuvkljspxkra4nmkkhsdejda0fdu48406jvszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxvv2pu2</id>
    
      <title type="html">As for the spaces protocol trying to implement cross verification ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgscawymzhs7kaej8yuvkljspxkra4nmkkhsdejda0fdu48406jvszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxvv2pu2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0l6ctk2p8sgxykalwc6lgekds594qhvkw689c7cm8ll44nu0wl7cpz4mhxue69uhhyetvv9uju6twddskutnrvvhsht8tnn&#39;&gt;nevent1q…8tnn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;As for the spaces protocol trying to implement cross verification (i.e. a condition that an npub must consent to getting named), I took a quick look and from what I can tell they haven&amp;#39;t pinned down any specification yet.&lt;br/&gt;&lt;br/&gt;So then the question is what shape that consent check will take on spaces. If it means only &amp;#34;the name must appear in a kind-0 profile event that&amp;#39;s signed by the named key itself,&amp;#34; then inkan master keys are locked out since they are buried under concrete and shouldn&amp;#39;t be in the business of signing anything after the initial identity creation. But if consent can also mean &amp;#34;the name appears in the kind-31065 attributed profile event that is signed by a current delegatee of the master key&amp;#34;, then cold storage identities can participate in spaces.&lt;br/&gt;&lt;br/&gt;Since the spaces protocol does not yet seem to specify how cross verification is to work, I guess this might be a good time to make the spaces people aware of this, so this more general form of consent provided through delegatee signatures gets considered.
    </content>
    <updated>2026-10-17T05:43:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8z4qj4w8mhjwuh3wccmur02dp42k42cz274exqylayjlrsw0qezqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7ces7e</id>
    
      <title type="html">FYI, if you currently have write access to the Inkan relay but do ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8z4qj4w8mhjwuh3wccmur02dp42k42cz274exqylayjlrsw0qezqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7ces7e" />
    <content type="html">
      FYI, if you currently have write access to the Inkan relay but do *not* yet have access to the AI Search, the reason is that you have not yet signed the current version of the Terms of Use, which covers the AI Search.&lt;br/&gt;&lt;br/&gt;You can sign the Terms of Use by logging in and going to &amp;#34;Settings &amp;gt; Inkan Settings &amp;gt; Service Access&amp;#34;. If I receive these, I can then switch on the AI Search for you and you can access it in the nav bar under &amp;#34;Assay.&amp;#34;&lt;br/&gt;&lt;br/&gt;If you have any other questions about the AI Search, let me know any time.
    </content>
    <updated>2026-10-17T03:38:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf393y5yrdky54kfeuatun6h98nvq9vnjgryuswtl74slgdhffsgszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxyugeya</id>
    
      <title type="html">Hi.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf393y5yrdky54kfeuatun6h98nvq9vnjgryuswtl74slgdhffsgszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxyugeya" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqrx69c4edtydngq9u30vnw34erhxz4kjfdyq63zajvt0gx9jr3spz4mhxue69uhhyetvv9uju6twddskutnrvvhs6kr9lq&#39;&gt;nevent1q…r9lq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hi.
    </content>
    <updated>2026-10-16T21:22:19Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdd5pd6n3jnfw4gk33v0pre5u4urwhg8ar8ej7g3f9q4x6hjlzjcqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxcexysc</id>
    
      <title type="html">I saw your DM just now. I recorded it and your identity is live ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdd5pd6n3jnfw4gk33v0pre5u4urwhg8ar8ej7g3f9q4x6hjlzjcqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxcexysc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0l6ctk2p8sgxykalwc6lgekds594qhvkw689c7cm8ll44nu0wl7cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtceq5rek&#39;&gt;nevent1q…5rek&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I saw your DM just now. I recorded it and your identity is live on chain.&lt;br/&gt;&lt;br/&gt;If you log in with your new signer key, it should automatically detect the identity and a setup wizard should appear right after login.&lt;br/&gt;&lt;br/&gt;Be sure to complete all steps of the wizard, and in particular be sure to use *different* profile pictures for your identity (i.e. the master key) and your signer, so you&amp;#39;ll be able to tell these apart and won&amp;#39;t get confused during use.&lt;br/&gt;&lt;br/&gt;Also, after login, you may want to double-check under &amp;#34;Settings &amp;gt; Inkan Settings &amp;gt; Delegation &amp;amp; Timestamping&amp;#34; that the toggles &amp;#34;Periodically collect timestamps info from TS-Server&amp;#34; and &amp;#34;Periodically publish timestamps info to relays&amp;#34; are both turned on.&lt;br/&gt;&lt;br/&gt;If you are not seeing the setup wizard or get stuck anywhere, or if you have any questions about anything, please let me know.
    </content>
    <updated>2026-10-16T15:37:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsg9pmvur2teld3efuuxfv8qtd7xsvuzfjtvat28usxsn9997g3ccszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqtqm6m</id>
    
      <title type="html">This is AI search for nostr. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsg9pmvur2teld3efuuxfv8qtd7xsvuzfjtvat28usxsn9997g3ccszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqtqm6m" />
    <content type="html">
      This is AI search for nostr.&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/7810910dfff3999971f9cfd038bc35e70ca4b1ab883908e00069a99ac85f3fe4.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt;You ask it a question, it wanders off across the relays, and comes back with the people and conversations you meant.&lt;br/&gt;&lt;br/&gt;Live at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;.
    </content>
    <updated>2026-10-16T04:28:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs22fhd23nv42rqdm3xyja0f0cwca3ahpqz06q0z506zy5fy2en4hszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx73mrqk</id>
    
      <title type="html">Yes, as can be seen from the size of LLMs, which are a bit like ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs22fhd23nv42rqdm3xyja0f0cwca3ahpqz06q0z506zy5fy2en4hszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx73mrqk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqyn834apgpkvgfmtu04d9g2mvnyuhtareu20cu8gr79z25dqqppemhxue69uhkummn9ekx7mp0c8l4tg&#39;&gt;nevent1q…l4tg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, as can be seen from the size of LLMs, which are a bit like very detailed grammar books.
    </content>
    <updated>2026-10-16T02:44:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqstgkkpaj79yh92s7sgr5xa8fdvhd67zu5hxkpz7vq2gmtg8w6arlszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx5swdhc</id>
    
      <title type="html">Yes, it looks like the purpose of spaces would be similar to that ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqstgkkpaj79yh92s7sgr5xa8fdvhd67zu5hxkpz7vq2gmtg8w6arlszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx5swdhc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsf8ehkwgvj76824f5jqtltmz4w9hgnkw4s5kcd2fsd62wu7shv8agpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcx6cznf&#39;&gt;nevent1q…cznf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, it looks like the purpose of spaces would be similar to that of nip-05.&lt;br/&gt;&lt;br/&gt;So from what I&amp;#39;m learning it seems like DNN, nip-05, spaces, etc., are meant to be functions that map names to pubkeys, i.e. given a human-readable name you can find exactly one corresponding pubkey. A useful piece of infrastructure.&lt;br/&gt;&lt;br/&gt;And a question for these systems is whether the target pubkey itself should be required to sign something as a condition of being named, i.e. whether it should be a condition that the pubkey *consents* to getting a certain name. I guess the answer should probably be &amp;#34;yes&amp;#34; ...&lt;br/&gt;&lt;br/&gt;Then in the inkan context, what would &amp;#34;consent&amp;#34; look like? Well consent by a master key given at time T is a signature made at time T by a key that was a delegatee of that master key at time T. &lt;br/&gt;&lt;br/&gt;So the system that maps names onto consenting keys (DNN, nip-05, spaces etc.) would need to recognize this form of consent, i.e. it would need to recognize that a key could consent to getting a certain name through a signature made by a delegatee of that key during a valid delegation period.&lt;br/&gt;&lt;br/&gt;With regard to nip-05, inkan already implements this. Under the regular nostr protocol, the consent to getting a nip-5 name is given through the inclusion of that nip-05 name in the the kind-0 profile event that is being signed by the key being named. In inkan, it is done by the nip-5 name being included in the kind-31065 attributed profile event that is signed by a current delegatee on behalf of the master key getting named.
    </content>
    <updated>2026-10-16T01:44:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx0j6qs7hcm4gdfxlce2d3kwmgutv6nx6e36hdceq3fz2znp2rnwszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxga7rdc</id>
    
      <title type="html">Actually that&amp;#39;s not a prepositional phrase at all. More like ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx0j6qs7hcm4gdfxlce2d3kwmgutv6nx6e36hdceq3fz2znp2rnwszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxga7rdc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyeqy074mu3knrvqzp9dehcrmxgqdqkj06f3gkx5cqg5vlgjya2sspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhswqqqjz&#39;&gt;nevent1q…qqjz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Actually that&amp;#39;s not a prepositional phrase at all. More like an appositive adjective.
    </content>
    <updated>2026-10-15T16:13:06Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyeqy074mu3knrvqzp9dehcrmxgqdqkj06f3gkx5cqg5vlgjya2sszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxafvqjj</id>
    
      <title type="html">That seems right, a prepositional phrase at the front can get a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyeqy074mu3knrvqzp9dehcrmxgqdqkj06f3gkx5cqg5vlgjya2sszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxafvqjj" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqvac3cwhz3wkhghf82r2sukdjn0mmqw6h490urxr96wkc7hngpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc77gmqg&#39;&gt;nevent1q…gmqg&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That seems right, a prepositional phrase at the front can get a comma, and sometimes also one in the middle.&lt;br/&gt;&lt;br/&gt;It is a tale&lt;br/&gt;told by an idiot, full of sound and fury,&lt;br/&gt;signifying nothing.
    </content>
    <updated>2026-10-15T15:52:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswt5qzxtus6w2zspavewd3kdv64dn3la4purnedarx9499u7t2vxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxm2sv32</id>
    
      <title type="html">I agree DNN doesn&amp;#39;t seem to compete with inkan. I first was ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswt5qzxtus6w2zspavewd3kdv64dn3la4purnedarx9499u7t2vxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxm2sv32" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2uwt8e6yx3hsxc3ztm5xc0yv68ar569t3wene380md6nml3t2fhcppemhxue69uhkummn9ekx7mp0nxcl69&#39;&gt;nevent1q…cl69&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I agree DNN doesn&amp;#39;t seem to compete with inkan. I first was trying to think of it as a complement to inkan, but that&amp;#39;s actually a bit tricky once one tries to think through the details.&lt;br/&gt;&lt;br/&gt;One question is which inkan key should get to have a chain coordinate and then associate human-readable names with that coordinate. Should it be the master key or the signer key?&lt;br/&gt;&lt;br/&gt;It seems like it shouldn&amp;#39;t be the master key because in DNN the relevant key must sign a bunch of stuff, and the master key shouldn&amp;#39;t be in the business of signing anything, let alone signing nostr events.&lt;br/&gt;&lt;br/&gt;And as for the signer key, inkan thinks of that as ephemeral and disposable, so it&amp;#39;s not clear why one would want to go through the trouble of giving it some kind of chain-anchored identifier.&lt;br/&gt;&lt;br/&gt;I may not yet be fully understanding DNN though, maybe I&amp;#39;m getting it wrong. &lt;br/&gt;&lt;br/&gt;By the way, nip-05 works perfectly fine as a complement to inkan, both master key and signer key can have nip-5 DNS based identifiers if they want them.
    </content>
    <updated>2026-10-15T12:49:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfckmdyns3p00dfa246rhtgyxan9qzquuwaxpvl2u6zpuvxpsgqrgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx37gdf2</id>
    
      <title type="html">In addition to human identity, I&amp;#39;m also building this for ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfckmdyns3p00dfa246rhtgyxan9qzquuwaxpvl2u6zpuvxpsgqrgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx37gdf2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstf6xyjt7fx5g7j7ktzukm6p0yumn485ywpek74yj0gwdkyk4vwrgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsm5pye5&#39;&gt;nevent1q…pye5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In addition to human identity, I&amp;#39;m also building this for durable agent identity (e.g. for agents that can contract, enter into economic relations etc.) 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9uju6twddskutnrvvhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgq6rqdtx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…qdtx&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-10-15T11:33:38Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz48g7wzvdt77ld5grrwxyzrdmtdc0hznks3jwys4yhju55djla0czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxxql2d3</id>
    
      <title type="html">The cat sat on the mat after the party. The cat sat on the mat, ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz48g7wzvdt77ld5grrwxyzrdmtdc0hznks3jwys4yhju55djla0czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxxql2d3" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqtr8qagu2vls2xtsjrcent05jmggqz2tzh80zaqdqske0e4fqppemhxue69uhkummn9ekx7mp0zc3tg8&#39;&gt;nevent1q…3tg8&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The cat sat on the mat after the party.&lt;br/&gt;&lt;br/&gt;The cat sat on the mat, after the party.&lt;br/&gt;&lt;br/&gt;I&amp;#39;d say there&amp;#39;s a profound difference in meaning.
    </content>
    <updated>2026-10-15T06:28:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspvsera2j0ff96q2t64kwyfyydmxfzz05cwak3whu84k5ahj38qjgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlh5jtv</id>
    
      <title type="html">I looked at the github page and as far as I can tell DNN is meant ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspvsera2j0ff96q2t64kwyfyydmxfzz05cwak3whu84k5ahj38qjgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlh5jtv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs972z0csh925jy0nphm4ykhy27faq98fdv85ukuea276z9er5vlzgpz4mhxue69uhhyetvv9uju6twddskutnrvvhss240zq&#39;&gt;nevent1q…40zq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I looked at the github page and as far as I can tell DNN is meant to be a substitute for DNS identifiers?&lt;br/&gt;&lt;br/&gt;The idea seems to be that a nostr pubkey X can get a claim to certain chain coordinates (bitcoin block &#43; position) and a string like &amp;#34;nabandonzooa&amp;#34; gets mechanically associated with each such chain coordinate.&lt;br/&gt;&lt;br/&gt;And then pubkey X can publish nostr events through which X associates a human name like &amp;#34;alice&amp;#34; with a chain coordinate that X has a claim to. So for example X can publish nostr events through which X declares &amp;#34;I associate &amp;#39;alice&amp;#39; with the chain coordinate &amp;#39;nabandonzooa&amp;#39;.&amp;#34;&lt;br/&gt;&lt;br/&gt;It looks like nothing prevents X from publishing nostr events on relay A through which it associates &amp;#34;alice&amp;#34; with &amp;#34;nabandonzooa,&amp;#34; and nostr events on relay B through which it associates &amp;#34;john&amp;#34; with &amp;#34;nabandonzooa.&amp;#34;&lt;br/&gt;&lt;br/&gt;Now a full node can discover *all* of the chain coordinates that have been claimed by pubkeys under this scheme, and it could for example identify the most recent chain coordinate C that was claimed by pubkey X, say the one whose string is &amp;#34;nebuchadnezzar&amp;#34;. Then one can look at X&amp;#39;s nostr events and find an event on relay A showing that X has associated &amp;#34;alice&amp;#34; with &amp;#34;nebuchadnezzar.&amp;#34; Of course one can&amp;#39;t be sure that there isn&amp;#39;t some other event on some unknown relay B through which X has associated &amp;#34;john&amp;#34; with &amp;#34;nebuchadnezzar.&amp;#34;&lt;br/&gt;&lt;br/&gt;The result seems similar to searching for kind-0 profiles published by pubkey X. One might for example find a profile event signed by X with the profile name &amp;#34;alice&amp;#34; on relay A and choose to display that in a client, but of course one cannot be sure that there is no other profile event signed by X on some other relay B that shows &amp;#34;john&amp;#34; as the profile name.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m not sure yet what exactly this system is trying to add.
    </content>
    <updated>2026-10-15T05:51:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsql45hz3krx87muz3xsgkntkaqvgxdsxy2tfn4sn6jhun7jqa344qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxfc69zu</id>
    
      <title type="html">&amp;#34;after it ate&amp;#34; seems more like a subordinate clause. 🤨</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsql45hz3krx87muz3xsgkntkaqvgxdsxy2tfn4sn6jhun7jqa344qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxfc69zu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqv2g4p4d3963hnd2gvchfpnpk50myn928cktvgfvhdhwte7zqpz9mhxue69uhkummnw3ezuamfdejj7wcpf3f&#39;&gt;nevent1q…pf3f&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;after it ate&amp;#34; seems more like a subordinate clause. 🤨
    </content>
    <updated>2026-10-14T21:40:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsw5u2v3zs8lm04ldr02zvfd2hs7lg22zxwytvnm8hyagn4x6hpaxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdyyzqp</id>
    
      <title type="html">Yes, please feel free to create a toy identity on the homepage in ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsw5u2v3zs8lm04ldr02zvfd2hs7lg22zxwytvnm8hyagn4x6hpaxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdyyzqp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszg3kqvgz3mxpyjqs8mzk47k2tzrn5a6ve3mzknkkslt58tl4z0hgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs0fk8mf&#39;&gt;nevent1q…k8mf&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes, please feel free to create a toy identity on the homepage in the meantime. There is an option at the end of the wizard (and also separately on the homepage) to send me the identity creation file, and I can go ahead and record it on-chain and cover the $0.17 or whatever in gas fees.
    </content>
    <updated>2026-10-14T21:23:46Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgxrmcr9u7yx0kc0f5ad52t763qwvqa87sez9c88dgxf9fu2pa37qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqyn300</id>
    
      <title type="html">to avoid the sad conclusion, maybe just start using the PKI ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgxrmcr9u7yx0kc0f5ad52t763qwvqa87sez9c88dgxf9fu2pa37qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqyn300" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2ufeemyate83zl3lxls5l55qfsxyxwt07y5rfdcakrkrlhkz5asgpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcd8stz7&#39;&gt;nevent1q…stz7&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;to avoid the sad conclusion, maybe just start using the PKI provided by inkan to see what feels like in practice, and it can then be improved bit by bit based on feedback
    </content>
    <updated>2026-10-14T15:27:00Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz4n90rza9tdydh7plhaea5q5je4m5jgkwj0h472wz3xjsnsyx69qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqj0jr6</id>
    
      <title type="html">In Ethereum the validators&amp;#39; anonymity may not be as much of a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz4n90rza9tdydh7plhaea5q5je4m5jgkwj0h472wz3xjsnsyx69qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqj0jr6" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspuvjlam0pfch08e2wm9caxetlva5yx2tua8pr6gsuvppuy3wpedcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc5pg9e6&#39;&gt;nevent1q…g9e6&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;In Ethereum the validators&amp;#39; anonymity may not be as much of a problem since we are not being asked to trust the validators. You can see what they deposited and the deposit is destructible, so there is a penalty for provable misbehavior. The problem with the anonymity of the pegnoatires, as far as I understand, is that they are supposed to be respected companies, i.e. we are to trust their reputation. I guess if they are phasing out the federation model, this may be getting fixed.&lt;br/&gt;&lt;br/&gt;Now as for always having a &amp;#34;confirmed history,&amp;#34; my understanding is that this &amp;#34;confirmed history&amp;#34; is precisely the thing that would get revised during a reorg. And if the chain is halted and later resumed,  it seems that the community in that situation has to pick a branch, if I understand it correctly, so maybe not so different from Ethereum?&lt;br/&gt;&lt;br/&gt;Since inkan is using blockchains I guess I&amp;#39;m on the hook for making the right choices on this stuff going forward.
    </content>
    <updated>2026-10-14T15:12:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs98lvnqql8ppj9krp6ta4k2qn5xnyur90sdrtx3668fu6dk3a52lgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7dkltn</id>
    
      <title type="html">Before prepositional phrases? Like &amp;#34;The cat sat, on the ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs98lvnqql8ppj9krp6ta4k2qn5xnyur90sdrtx3668fu6dk3a52lgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx7dkltn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqxw3sjng5s0u9lg6sdraqlez7heum7fvj975l8tnf470d22kcpz9mhxue69uhkummnw3ezuamfdejj7xc66ur&#39;&gt;nevent1q…66ur&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Before prepositional phrases? Like&lt;br/&gt;&lt;br/&gt;&amp;#34;The cat sat, on the mat.&amp;#34;&lt;br/&gt;&lt;br/&gt;❓
    </content>
    <updated>2026-10-14T10:13:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9hkflrhmvwud2kgrt2sxcn29pyx4z4g74ph2nupnxzw4fclkcy5czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0dhfk7</id>
    
      <title type="html">Thanks, frostr looks like the right thing. Apparently they ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9hkflrhmvwud2kgrt2sxcn29pyx4z4g74ph2nupnxzw4fclkcy5czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0dhfk7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst4sng555g36m0wk56tanq7pcdjdk0ypq0xtzlfqkxxewzcj9m7acprpmhxue69uhhxurpw35kzttpwf3kzmnp9e3k7mf0wzf5ps&#39;&gt;nevent1q…f5ps&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, frostr looks like the right thing. Apparently they haven&amp;#39;t yet implemented NIP-46, but they do have NIP-7. There also seems to be some early stage NIP-55, igloo-android apparently can hold a shard and add its partial signautre, get NIP-55 requests, send signing requests to nodes, and return the signed event. That&amp;#39;s very close to what I was asking about, now I just have to actually try it.
    </content>
    <updated>2026-10-14T10:00:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx08e9a28t0hse8q6dmg7z5505gaxtyhzlh4kfzs9tdfn3p5vdgxgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxr0yyes</id>
    
      <title type="html">Also talked to my LLM, and I think the issue with rootstock ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx08e9a28t0hse8q6dmg7z5505gaxtyhzlh4kfzs9tdfn3p5vdgxgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxr0yyes" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvkcxxlm2p84xj5jd5f34n2qwvytl92n7njva8zg2zlph2mkvkxucpz4mhxue69uhhyetvv9uju6twddskutnrvvhswrn5pc&#39;&gt;nevent1q…n5pc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Also talked to my LLM, and I think the issue with rootstock &amp;#34;confirmations&amp;#34; is that they consist of merge-mined work which is produced by bitcoin miners at zero marginal cost. So there is little that bitcoin miners would lose if they attacked rootstock. And the preventive measures you mention seem to be about detection and halting the chain, but that would give attackers the ability to, well, halt the chain, at no marginal cost to them.  And then there would have to be social recovery.&lt;br/&gt;&lt;br/&gt;For inkan, the worst thing that could happen is not for RBTC to become unpegged from BTC. It&amp;#39;s rather that rootstock gets reorganized, which could rewrite the delegation / revocation history, which would be catastrophic for inkan identities. The integrity of the history is precisely what inkan depends on.
    </content>
    <updated>2026-10-14T08:56:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2slccpf7enam8k47xpkfqxn3k6tu57q0dqkjtt6vgktx5jx28s7qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx6tk4t0</id>
    
      <title type="html">This is forcing me to learn about things like side chains and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2slccpf7enam8k47xpkfqxn3k6tu57q0dqkjtt6vgktx5jx28s7qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx6tk4t0" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs089ww6d384gfn4l9paj3zsaf55nszvl97gt5tvqgkklrq0f9pmlspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcvu6q3j&#39;&gt;nevent1q…6q3j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;This is forcing me to learn about things like side chains and pegs. So from talking with an LLM, it seems like the custodial problem with rootstock is &amp;#34;pegging out,&amp;#34; i.e. releasing escrowed BTC when RBTC is getting redeemed. Bitcoin cannot know mechanically when RBTC gets redeemed, so there has to be a federation of entities that are trusted to correctly operate PowHSMs which co-sign the bitcoin transactions that release escrowed BTC.  And these are held out to be &amp;#34;respected companies&amp;#34; but their &amp;#34;identities are not public,&amp;#34; which raises the question what basis there is for the respect. And then there is still the other issue, i.e. that it&amp;#39;s not clear what exactly would stop bitcoin miners from reorging rootstock. The miners get paid in BTC no matter what happens to rootstock, so beyond the small fee incentive they get for participating there doesn&amp;#39;t seem to be anything they&amp;#39;d lose by attacking rootstock. At least at first glance, it doesn&amp;#39;t necessarily seem more robust than Ethereum.
    </content>
    <updated>2026-10-14T07:52:09Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsgs38fgv8t9pnjulmurpsnrhc5m2t023glyyyc5qv9h84pw03nkwgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlq6f7v</id>
    
      <title type="html">I haven&amp;#39;t used anything FROST-based, but I think I would if I ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsgs38fgv8t9pnjulmurpsnrhc5m2t023glyyyc5qv9h84pw03nkwgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlq6f7v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz5yyt69cfmq03940mxmt88dcsheyscqhdat33lymhu9ep3dczcagprdmhxue69uhhg6r9vehhyetnwshxummnw3erztnrdakj7gv5gls&#39;&gt;nevent1q…5gls&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I haven&amp;#39;t used anything FROST-based, but I think I would if I could do it in a way that seems more secure than regular NIP-46, and convenient to use.&lt;br/&gt;&lt;br/&gt;For it to be more secure than regular NIP-46, I would want to require all shards for signing and keep exclusive control over at least one shard myself. If there isn&amp;#39;t anything in the cryptography underlying FROST which makes it inherently less secure than using an unsharded key, it seems that this way of using it would be at least as secure as regular NIP-46.&lt;br/&gt;&lt;br/&gt;And then on the convenience side, the actual signing would ideally be controlled through an app that sits on my phone and feels generally like Amber, and that app should probably hold one of the shards over which I have exclusive control.&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve only taken a cursory glance at FROST, but if there is something that provides this kind of experience or something equivalent, I think I&amp;#39;d try it.
    </content>
    <updated>2026-10-13T23:14:29Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrltp8znahxw95j88kryc3ghfx7tfmn24m8genj39k97w2e6dvggszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxmrygd9</id>
    
      <title type="html">Huh, so it&amp;#39;s starting to sound like inkan would likely run on ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrltp8znahxw95j88kryc3ghfx7tfmn24m8genj39k97w2e6dvggszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxmrygd9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqst4rdra3kn09u3yjvfzw5npjrc80yxgeakz07njwqg6t8wnpyq3aspzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcq8d3yj&#39;&gt;nevent1q…d3yj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Huh, so it&amp;#39;s starting to sound like inkan would likely run on rootstock. One question then is whether that would be advantageous as compared to ethereum. I need to better understand what merge mining is. It seems like rootstock gets a lot of hashrate from it but it&amp;#39;s not clear if the miners have anything really at stake there, i.e. it seems like a large pool could reorg rootstock without losing anything? I&amp;#39;m not sure if it protects against reorgs in the way in which Ethereum finality does. Also, rootstock seems like the more exotic product and it seems to have fewer endpoints, so it might be less suitable for broader adoption than something based on ethereum maybe. But I first need to do more reading to really understand how it works.
    </content>
    <updated>2026-10-13T17:38:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs80p99rcuqfyw9nld4zwwqzfqxkg7ez2nj7kvu585ngjehzh4frlgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx00zzyx</id>
    
      <title type="html">thanks, let me know any questions any time.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs80p99rcuqfyw9nld4zwwqzfqxkg7ez2nj7kvu585ngjehzh4frlgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx00zzyx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsvg8jujcp2mcnulcud3tlctdcfmjgmteelh6sslh6dekfuq0sufxcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcptkr6k&#39;&gt;nevent1q…kr6k&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;thanks, let me know any questions any time.
    </content>
    <updated>2026-10-13T16:38:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyf8dlxtv9jsh4dg2elyc24vsmjdaz4wjx7ujn24g7r79zfe4y9tczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx9gqluv</id>
    
      <title type="html">That&amp;#39;s true in a way, but making something that actually ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyf8dlxtv9jsh4dg2elyc24vsmjdaz4wjx7ujn24g7r79zfe4y9tczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx9gqluv" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqszhv9wa2l6xu6qt9rf6kklsf5epqhelmwhj5e5ffms5wx0r00mwngpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5xg4h4&#39;&gt;nevent1q…g4h4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That&amp;#39;s true in a way, but making something that actually suits my purposes has still been a full-time job, I&amp;#39;d say 8-10 hours a day on average, for most of the last year. It&amp;#39;s interesting that it should be like that.
    </content>
    <updated>2026-10-13T13:18:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfsjh6d38tf6xkws8u3xaa5jysnkyl2z84njtmu064g30tswunu2szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxamudpw</id>
    
      <title type="html">&amp;#34;Your whole identity is ONE private key. No rotation. No ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfsjh6d38tf6xkws8u3xaa5jysnkyl2z84njtmu064g30tswunu2szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxamudpw" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyk7y73v34a9u8hdx8m3jsnz5gxdhnct6qzpnnnpr639rvscdpvqqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs7wz38n&#39;&gt;nevent1q…z38n&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;Your whole identity is ONE private key. No rotation. No recovery. Paste your nsec into one sketchy web client and it&amp;#39;s gone forever. Your only option is &amp;#34;hey guys new npub pls refollow&amp;#34;&amp;#34;&lt;br/&gt;&lt;br/&gt;Seems like this got overlooked 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9uju6twddskutnrvvhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgq6rqdtx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…qdtx&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-10-13T12:59:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsveey580nhjnwxnralgwadtx8xpka4js3w8wh37m9p6948nh5e3ugzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx8ufw6v</id>
    
      <title type="html">See?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsveey580nhjnwxnralgwadtx8xpka4js3w8wh37m9p6948nh5e3ugzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx8ufw6v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxjf8amkcmvl9e9z2969w8vtheddqmqqafgywmwxu73qvan7lgpqspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsw685lk&#39;&gt;nevent1q…85lk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;See?
    </content>
    <updated>2026-10-13T12:37:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsp66005auhg0m5p9hqxvgqy8x05rrkukcaf99jz3pxs77u2a3q95szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxyemy9z</id>
    
      <title type="html">I&amp;#39;ve been asked about this and spent some time thinking about ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsp66005auhg0m5p9hqxvgqy8x05rrkukcaf99jz3pxs77u2a3q95szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxyemy9z" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs97e9uj367xd6y4m9uns7lakc2hc7gs2e3el3aht4843kahjpu4ggppemhxue69uhkummn9ekx7mp0kf4tn5&#39;&gt;nevent1q…4tn5&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I&amp;#39;ve been asked about this and spent some time thinking about it, and I don&amp;#39;t have a conclusive answer.&lt;br/&gt;&lt;br/&gt;Where it gets difficult is the revocations. Clients need to know if a delegation is still alive at any given moment, and for that they need to be sure that they haven&amp;#39;t overlooked a revocation declaration somewhere. So it&amp;#39;s not enough that declarations be written somewhere durable, the client needs to be able to assemble the entire set of declarations for a given key and needs to know that it&amp;#39;s complete. That completeness property is available on Ethereum, but I think Bitcoin script is attached to single outputs and doesn&amp;#39;t accumulate state across transactions. So you could write declarations into the Bitcoin chain in some agreed format, but then anyone wanting the full picture needs to scan the whole chain with a full node and otherwise they can&amp;#39;t tell whether a revocation is being withheld from them. I&amp;#39;m not an expert on this, but that&amp;#39;s my current understanding. &lt;br/&gt;&lt;br/&gt;It seems like rootstock may be different again though if it&amp;#39;s a full EVM. But the thing is I&amp;#39;d never heard of rootstock before this came up, and I suspect most people outside bitcoin haven&amp;#39;t either. Ethereum is at least something normal people may have vaguely heard of. So it&amp;#39;s not obvious to me that swapping in rootstock or bitcoin scripts helps adoption overall, as opposed to just helping with this particular audience, which may be acting on niche preferences that don&amp;#39;t have strong technical justifications. Don&amp;#39;t get me wrong, though, I&amp;#39;d love to have this conversation with the current nostr community and the bitcoin crowd, and there may be actual technical advantages with using bitcoin that I&amp;#39;m not aware of. &lt;br/&gt;&lt;br/&gt;There&amp;#39;s been some previous threads relating to this, and also don&amp;#39;t forget to actually try it out, otherwise it just ends up being just these abstract discussions 👇&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;/nevent1qqstx9yvh85ry7f3p9nk7dxtdpt0qln8a6vdwns572armw695vd7waqpz3mhxue69uhhyetvv9uju6twddskutnrvvq3qamnwvaz7tmwdaehgu3wwa5kuegzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdqyzpx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…yzpx&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; Not an expert, but it seems like this may make delegation and revocation declarations storable and discoverable on BTC, but it may be difficult to be sure that one has retrieved all such declarations unless one runs a full node. I haven&#39;t done any in-depth analysis, but it feels like that may be the problem with BTC. &lt;/blockquote&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgmwaehxw309a6xsetxdaex2um59ehx7um5wgcjucm0d5hsqgpnddv5yk0ldymq25mz6x4ysw3psme0mnq7gfvjkjh2cz7syvtsls4hx3pj&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…x3pj&lt;/a&gt;&lt;/span&gt;&lt;br/&gt; &lt;/div&gt; &#34;store the revocations with a guarantee of availability&#34;&lt;br/&gt;&lt;br/&gt;That requires a blockchain, though? The agreement on the timestamp is kind of what a blockchain *is*. &lt;/blockquote&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;/nevent1qqsqv5hhxtk0e653vvzzgfzkmp6w2xtqt364gr7kja3xxc3k8zjnqtcpz3mhxue69uhhyetvv9uju6twddskutnrvvqs6amnwvaz7tmwdaejumr0dspzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23r6cc3qh&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…c3qh&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Absolutely, for recording key delegation, revocation and invalidation declarations.&lt;br/&gt;&lt;br/&gt;I wasn&#39;t able to figure out an easy way to record these declarations on Bitcoin, but admittedly I didn&#39;t try all that hard.&lt;br/&gt;&lt;br/&gt;The Nostr events themselves are timestamped with OTS on Bitcoin. &lt;/blockquote&gt;
    </content>
    <updated>2026-10-13T12:18:23Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsz2fy253qc78l902gxpnukclncc5a65f6kccn9whwgkcmqqqt3daczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx97ah5k</id>
    
      <title type="html">Actually you can simply keep using your current nostr keypair and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz2fy253qc78l902gxpnukclncc5a65f6kccn9whwgkcmqqqt3daczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx97ah5k" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqythzrjx2mxp9r0pn5gsv3zjnvsl8j6rcjer0qaavupg9q5v9yjgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs6lg5r4&#39;&gt;nevent1q…g5r4&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Actually you can simply keep using your current nostr keypair and make it the signer for a cold storage identity, this just came up in another conversation 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsqgpl58k57js6y72ahtzwd9ulg2dea27fatujhlqzla80d8hnn086hc6khmyc&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…hmyc&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Sorry I&#39;ve been sleeping through this discussion.&lt;br/&gt;&lt;br/&gt;So it&#39;s like you say, you don&#39;t have to abandon your current npub if you don&#39;t want to. You can create a new master key and delegate down from it, through a delegation chain, to the npub you already use on nostr.&lt;br/&gt;&lt;br/&gt;You then keep posting with your current npub exactly as before. After the delegation this npub doubles as your inkan signing key, so everything you create with it from then on gets attributed to the new master key. If your current npub is ever compromised, the master key can then revoke it and delegate to a new one. The identity attached to the master key survives the compromise.&lt;br/&gt;&lt;br/&gt;Full disclosure, this construction needs to be done with the Inkan Management Utility (&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;), and it takes a bit more care than just creating a completely new identity from scratch. You basically prepare a small text file with your current private key in hex and feed it to the utility, and ideally you do all of this on an airgapped system, since you&#39;re handling private key material. If you want to try it, let me know and I&#39;m happy to write up the exact steps, including the format that&#39;s required for the input file.&lt;br/&gt;&lt;br/&gt;And if you&#39;d first just like to get a better idea of how inkan works before connecting it to your current npub, you can create a throwaway toy identity on inkan&#39;s homepage. Recording it on Ethereum costs a small gas fee, and the wizard has a menu where you can ask me to sponsor that tiny amount, which I&#39;m usually happy to do for people who don&#39;t hold any Ether (and seem reasonably good-natured, at least as far as posting to the inkan relay goes). Creating one happens right in the browser and takes about five minutes, and the result is the same cryptographic object the Management Utility would produce, just made in an insecure location rather than on an airgapped machine. &lt;/blockquote&gt;
    </content>
    <updated>2026-10-12T20:39:57Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0wtn7sdqysr4pg83wa6ne683yzcgtufcnuj59x95p59ggzeh2wvqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxgs7fwl</id>
    
      <title type="html">When use of an EVM provides a solution to the key management ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0wtn7sdqysr4pg83wa6ne683yzcgtufcnuj59x95p59ggzeh2wvqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxgs7fwl" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq4emu3ey2tfqy9wf7cfk8rwz69whhmj20uftjf46f8x2wkhugpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhszvc8jz&#39;&gt;nevent1q…c8jz&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;When use of an EVM provides a solution to the key management problem, which is a central problem for the nostr protocol, wouldn&amp;#39;t it make sense to simply use that solution rather than continue sitting on the problem?&lt;br/&gt;&lt;br/&gt;And there is also the idea that nostr was supposed to have broader appeal beyond the Bitcoin community. Leaving problems with the protocol unaddressed because a working solution doesn&amp;#39;t fit the tastes of the Bitcoin community doesn&amp;#39;t seem like a good strategy to achieve broader adoption.
    </content>
    <updated>2026-10-12T19:32:15Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8ztqlqazh92kzynw4gdjgh63cxxs8rkcyeutd36xfhj6jxgpup3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqdq7lq</id>
    
      <title type="html">That seems right, I also just responded with the same reference ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8ztqlqazh92kzynw4gdjgh63cxxs8rkcyeutd36xfhj6jxgpup3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqdq7lq" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsx5yj4uy8hewz35k4xppeyxf88tn44jeqy5h4tn27sngyykqwhkzspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhscsmady&#39;&gt;nevent1q…mady&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;That seems right, I also just responded with the same reference to the NIP draft.
    </content>
    <updated>2026-10-12T19:08:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdcudn5jmxn2dwtr2r50qy7y3f7gdpavf93peqvgr2t3xlep77j6czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx54t8an</id>
    
      <title type="html">You need a blockchain with certain completeness properties. ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdcudn5jmxn2dwtr2r50qy7y3f7gdpavf93peqvgr2t3xlep77j6czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx54t8an" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqzv0vjrplep6h5tjate3qxku3736fgu6yks7mm29t6gdwpmacpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsw27u3u&#39;&gt;nevent1q…7u3u&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You need a blockchain with certain completeness properties. It&amp;#39;s just a technical requirement, not some partiality towards Ethereum in particular.&lt;br/&gt;&lt;br/&gt;The gas fees required for an identity creation are tiny, I think it was maybe $0.20 or so the last time I did it.&lt;br/&gt;&lt;br/&gt;I&amp;#39;m happy to take care of the tiny gas payment if you don&amp;#39;t hold Ether. There&amp;#39;s an option at the end of the toy identity wizard to send me the transaction file that was created and I can record it on-chain.&lt;br/&gt;&lt;br/&gt;FYI, the technical specs (which among other things explain why a blockchain is needed) are here 👇&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;/naddr1qvzqqqr4gupzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qg3waehxw309ahx7um5wghxcctwvshsq2rrdakxgttnw3hhyct8v5kkjer9de6xjarfv4ej6en0wgkkummnw3ez6a62f4nr24s69vwq8&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;naddr1qv…vwq8&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; 
&lt;h2 id=&#34;nip-proposal-9&#34;&gt;NIP Proposal&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;draft&lt;/code&gt; &lt;code&gt;optional&lt;/code&gt;&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;1-how-it-works-9&#34;&gt;1. How it works&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;2-delegations-between-keys-9&#34;&gt;2. Delegations between keys&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;3-how-a-direct-delegation-is-created-9&#34;&gt;3. How a direct delegation is created&lt;/h2&gt;

&lt;p&gt;A direct delegation from key pair X to key pair Y is created when both key pairs sign a &lt;strong&gt;Declaration of Delegation of Signing Authority&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;4-how-a-direct-delegation-is-terminated-9&#34;&gt;4. How a direct delegation is terminated&lt;/h2&gt;

&lt;p&gt;A direct delegation from X to Y is terminated when X signs a &lt;strong&gt;Declaration of Revocation of Signing Authority&lt;/strong&gt; 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;5-permanent-key-invalidation-9&#34;&gt;5. Permanent key invalidation&lt;/h2&gt;

&lt;p&gt;The third declaration is the &lt;strong&gt;Declaration of Permanent Invalidation of a Key Pair&lt;/strong&gt;, 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;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;6-delegation-timelines-9&#34;&gt;6. Delegation timelines&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;7-bitcoin-timestamping-of-events-9&#34;&gt;7. Bitcoin timestamping of events&lt;/h2&gt;

&lt;p&gt;Attribution needs an objective, auditable rule for when the signing of each event is deemed to have occurred. A self-declared &lt;code&gt;created_at&lt;/code&gt; proves nothing on its own.&lt;/p&gt;

&lt;p&gt;Events are anchored to Bitcoin using &lt;strong&gt;OpenTimestamps&lt;/strong&gt; (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 &lt;code&gt;created_at&lt;/code&gt; 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;/p&gt;

&lt;p&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 &lt;code&gt;31045&lt;/code&gt; events (§12).&lt;/p&gt;

&lt;h2 id=&#34;8-attribution-of-events-9&#34;&gt;8. Attribution of events&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;blockquote&gt;
&lt;p&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;/p&gt;
&lt;/blockquote&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;9-two-profiles-one-identity-9&#34;&gt;9. Two profiles, one identity&lt;/h2&gt;

&lt;p&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;/p&gt;

&lt;p&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 &lt;em&gt;for&lt;/em&gt; 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 &lt;code&gt;31065&lt;/code&gt; (§12).&lt;/p&gt;

&lt;p&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;/p&gt;

&lt;h2 id=&#34;10-disavowal-9&#34;&gt;10. Disavowal&lt;/h2&gt;

&lt;p&gt;When making a delegation declaration, the delegator may declare an avowal start time and an avowal end time. When making a revocation declaration, the revoker may declare a disavowal start time and a disavowal end time. A start time of zero is interpreted as the time at which the declaration was recorded on-chain; an end time of zero means unbounded.&lt;/p&gt;

&lt;p&gt;For keys X and Y, take the latest delegation or revocation declaration between them recorded before any permanent invalidation of either (§5). If it is a delegation declaration, X avows Y&amp;#39;s actions at exactly the times T inside its avowal window; if a revocation declaration, at exactly the times T outside its disavowal window; provided, in both cases, that X directly delegated to Y at T. Y&amp;#39;s actions at T are the events Y validly signed with objective signing time T (§7).&lt;/p&gt;

&lt;p&gt;Avowal composes along delegation paths: X currently avows S&amp;#39;s actions at T if the relevant declaration between X and S avows them directly, or if, for some key Y, X avows Y&amp;#39;s actions at T, X avows Y&amp;#39;s actions at the present moment, and Y currently avows S&amp;#39;s actions at T.&lt;/p&gt;

&lt;p&gt;Clients can filter events whose signing the identity currently disavows out of the identity&amp;#39;s timeline, or display them with a disavowal badge.&lt;/p&gt;

&lt;h2 id=&#34;11-re-ratification-9&#34;&gt;11. Re-ratification&lt;/h2&gt;

&lt;p&gt;A disavowed window covers everything the disavowed key signed within it, including events whose signing was caused by the identity&amp;#39;s legitimate owner. The identity can in that situation make a kind &lt;code&gt;31066&lt;/code&gt; re-ratification declaration as described in §12.3 below, specifying the events it re-ratifies in the &lt;code&gt;e&lt;/code&gt; tags of that declaration. If the declaration is valid and effective, a client treats these events as re-ratified, until a disavowal recorded after the declaration&amp;#39;s anchoring block prevails over it (§12.3) or a later declaration governs in its place.&lt;/p&gt;

&lt;h2 id=&#34;12-event-kinds-9&#34;&gt;12. Event kinds&lt;/h2&gt;

&lt;p&gt;This NIP defines three &lt;strong&gt;addressable&lt;/strong&gt; event kinds (kinds 30000 to 39999 in NIP-01, where the latest event for a given &lt;code&gt;(pubkey, kind, d-tag)&lt;/code&gt; replaces any earlier one).&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kind&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;&lt;code&gt;d&lt;/code&gt; tag&lt;/th&gt;
&lt;th&gt;Signed by&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31045&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bitcoin timestamp&lt;/td&gt;
&lt;td&gt;id of the referenced event&lt;/td&gt;
&lt;td&gt;any party&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31065&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attributed profile&lt;/td&gt;
&lt;td&gt;the delegator&amp;#39;s pubkey&lt;/td&gt;
&lt;td&gt;a delegatee&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;31066&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Re-ratification&lt;/td&gt;
&lt;td&gt;the re-ratifying pubkey&lt;/td&gt;
&lt;td&gt;an avowed key&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&#34;12-1-kind-31045-bitcoin-timestamp-9&#34;&gt;12.1 Kind &lt;code&gt;31045&lt;/code&gt;: Bitcoin timestamp&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31045&lt;/code&gt; 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 &lt;code&gt;31045&lt;/code&gt; with &lt;code&gt;#d = [E.id]&lt;/code&gt;, 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Id of the referenced event. The addressable key.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;Signature of the referenced event. With &lt;code&gt;d&lt;/code&gt;, binds the proof to a signed event, not just an id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Author pubkey of the referenced event.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;b&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block height of the attestation, or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;t&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;Bitcoin block time (unix seconds), or &lt;code&gt;not_yet_available&lt;/code&gt; while pending.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;c&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;&lt;code&gt;created_at&lt;/code&gt; of the referenced event, when known.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;NIP-31 summary, e.g. &lt;code&gt;Complete Bitcoin Timestamp&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is the base64-encoded OpenTimestamps (&lt;code&gt;.ots&lt;/code&gt;) proof. Its leaf must commit to &lt;code&gt;sha256(referenced_id || referenced_signature)&lt;/code&gt;, 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;/p&gt;

&lt;p&gt;Only &lt;code&gt;d&lt;/code&gt; and &lt;code&gt;s&lt;/code&gt;, together with a verifiable &lt;code&gt;content&lt;/code&gt; proof, are required to verify a timestamp. Every single-letter tag (&lt;code&gt;d&lt;/code&gt;, &lt;code&gt;p&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt;, &lt;code&gt;t&lt;/code&gt;, &lt;code&gt;c&lt;/code&gt;) is relay-indexed, so it can also serve as a query key, for example finding proofs by referenced author (&lt;code&gt;#p&lt;/code&gt;) or by anchoring block (&lt;code&gt;#b&lt;/code&gt;). &lt;code&gt;b&lt;/code&gt; and &lt;code&gt;t&lt;/code&gt; additionally duplicate what the proof itself attests; &lt;code&gt;alt&lt;/code&gt; is not indexed and serves only as a NIP-31 display label.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31045,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;referenced-event-id&amp;gt;&amp;#34;],
    [&amp;#34;p&amp;#34;, &amp;#34;&amp;lt;referenced-event-author&amp;gt;&amp;#34;],
    [&amp;#34;s&amp;#34;, &amp;#34;&amp;lt;referenced-event-signature&amp;gt;&amp;#34;],
    [&amp;#34;b&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-height&amp;gt;&amp;#34;],
    [&amp;#34;t&amp;#34;, &amp;#34;&amp;lt;bitcoin-block-time&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Complete Bitcoin Timestamp&amp;#34;],
    [&amp;#34;c&amp;#34;, &amp;#34;&amp;lt;referenced-event-created-at&amp;gt;&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;lt;base64 .ots proof committing to sha256(id||sig)&amp;gt;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;12-2-kind-31065-attributed-profile-9&#34;&gt;12.2 Kind &lt;code&gt;31065&lt;/code&gt;: Attributed profile&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31065&lt;/code&gt; 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 &lt;code&gt;d&lt;/code&gt; 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 &lt;code&gt;event.pubkey&lt;/code&gt;, the signer, is not the subject &lt;code&gt;d&lt;/code&gt;. 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;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The subject: the delegator&amp;#39;s pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The exact string &lt;code&gt;Attributed profile&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;code&gt;content&lt;/code&gt; is a JSON object carrying the subject&amp;#39;s presentation. Its kind-0-style fields (&lt;code&gt;name&lt;/code&gt;, &lt;code&gt;display_name&lt;/code&gt;, &lt;code&gt;about&lt;/code&gt;, &lt;code&gt;picture&lt;/code&gt;, &lt;code&gt;banner&lt;/code&gt;, &lt;code&gt;website&lt;/code&gt;, &lt;code&gt;nip05&lt;/code&gt;, &lt;code&gt;lud16&lt;/code&gt;) 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;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31065,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;delegatee-that-signs&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;delegator-pubkey-the-profile-is-for&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Attributed profile&amp;#34;]
  ],
  &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;/code&gt;&lt;/pre&gt;

&lt;p&gt;Because &lt;code&gt;31065&lt;/code&gt; is addressable, the current profile for an identity is simply the latest one whose &lt;code&gt;d&lt;/code&gt; 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;/p&gt;

&lt;h3 id=&#34;12-3-kind-31066-re-ratification-declaration-9&#34;&gt;12.3 Kind &lt;code&gt;31066&lt;/code&gt;: Re-ratification declaration&lt;/h3&gt;

&lt;p&gt;A &lt;code&gt;31066&lt;/code&gt; event can be used by key A to re-ratify an event signed by key B with objective signing time T (§7), where A currently disavows actions taken by B at T (§10). The &lt;code&gt;d&lt;/code&gt; tag contains the re-ratifying pubkey and each &lt;code&gt;e&lt;/code&gt; tag is the id of a re-ratified event. The re-ratification is valid only if the &lt;code&gt;31066&lt;/code&gt; event is signed by a key whose actions the re-ratifying key currently avows (which includes the re-ratifying key itself), and only if no &lt;code&gt;e&lt;/code&gt; tag contains the declaration&amp;#39;s own event id. The &lt;code&gt;31066&lt;/code&gt; event must be submitted for Bitcoin timestamping and is effective starting from the time of the block in which its proof is anchored. If there are multiple valid and effective &lt;code&gt;31066&lt;/code&gt; events with the same re-ratifying pubkey in their &lt;code&gt;d&lt;/code&gt; tag, the one with the latest &lt;code&gt;created_at&lt;/code&gt; governs. A re-ratification overrides only disavowals recorded on-chain before the time of its anchoring block; a disavowal recorded after that time prevails over the re-ratification.&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;The re-ratifying pubkey.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;e&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes, repeated&lt;/td&gt;
&lt;td&gt;Id of a re-ratified event, one tag per id.&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&lt;code&gt;alt&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;Re-ratification declaration&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;#34;kind&amp;#34;: 31066,
  &amp;#34;pubkey&amp;#34;: &amp;#34;&amp;lt;signing-key&amp;gt;&amp;#34;,
  &amp;#34;tags&amp;#34;: [
    [&amp;#34;d&amp;#34;, &amp;#34;&amp;lt;re-ratifying-pubkey&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;e&amp;#34;, &amp;#34;&amp;lt;re-ratified-event-id&amp;gt;&amp;#34;],
    [&amp;#34;alt&amp;#34;, &amp;#34;Re-ratification declaration&amp;#34;]
  ],
  &amp;#34;content&amp;#34;: &amp;#34;&amp;#34;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;13-reference-implementation-9&#34;&gt;13. Reference implementation&lt;/h2&gt;

&lt;p&gt;Inkan (&lt;code&gt;https://www.inkan.cc&lt;/code&gt;) implements this specification as a working Nostr client and a cooperating relay at &lt;code&gt;wss://relay.inkan.cc&lt;/code&gt;. Delegation, revocation, permanent invalidation, avowal, and disavowal are recorded by an Ethereum contract deployed at &lt;code&gt;0x385C0A272b1f44687cb360557b25827bD7CdB7eb&lt;/code&gt;, 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.&lt;/p&gt;
 &lt;/blockquote&gt;
    </content>
    <updated>2026-10-12T19:07:26Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqst0mlvank628s0spackvskr94qw38lfvqmprvy8x0309djfp77jpszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxu2v85s</id>
    
      <title type="html">You can keep using your current npub and delegate down to it. For ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqst0mlvank628s0spackvskr94qw38lfvqmprvy8x0309djfp77jpszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxu2v85s" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqgumtpwwlyuhm60vpkc6jp7mt58jlnzlah4phhdajl4ka3vsqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsr3rexy&#39;&gt;nevent1q…rexy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You can keep using your current npub and delegate down to it.&lt;br/&gt;&lt;br/&gt;For example, the npub I&amp;#39;m using right now does double duty as the signer key for a cold storage identity. The profile page of that identity is here:&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc/users/npub10ukg94kvrvk4qqr3482zdekfsuaw2x56wa899mnpkxqwfxl6dlkqrux0x9&#34;&gt;https://www.inkan.cc/users/npub10ukg94kvrvk4qqr3482zdekfsuaw2x56wa899mnpkxqwfxl6dlkqrux0x9&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;People who are currently following the signer key can continue to do so for as long as they like, although I&amp;#39;d hope that they&amp;#39;ll eventually get around to directly following the identity key (since the identity key will survive if / when the signer key gets compromised).
    </content>
    <updated>2026-10-12T18:54:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrlg0dfa9p5fu4mwkyu6te7s5mn64un6he907q9l6w76008x7040szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxhgullg</id>
    
      <title type="html">Sorry I&amp;#39;ve been sleeping through this discussion. So it&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrlg0dfa9p5fu4mwkyu6te7s5mn64un6he907q9l6w76008x7040szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxhgullg" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0h69q0klzn8lg2j3wf4ylankr5lgll8jdcqzcqjx6s4qfjtgqgtspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhskt5q56&#39;&gt;nevent1q…5q56&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sorry I&amp;#39;ve been sleeping through this discussion.&lt;br/&gt;&lt;br/&gt;So it&amp;#39;s like you say, you don&amp;#39;t have to abandon your current npub if you don&amp;#39;t want to. You can create a new master key and delegate down from it, through a delegation chain, to the npub you already use on nostr.&lt;br/&gt;&lt;br/&gt;You then keep posting with your current npub exactly as before. After the delegation this npub doubles as your inkan signing key, so everything you create with it from then on gets attributed to the new master key. If your current npub is ever compromised, the master key can then revoke it and delegate to a new one. The identity attached to the master key survives the compromise.&lt;br/&gt;&lt;br/&gt;Full disclosure, this construction needs to be done with the Inkan Management Utility (&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;), and it takes a bit more care than just creating a completely new identity from scratch. You basically prepare a small text file with your current private key in hex and feed it to the utility, and ideally you do all of this on an airgapped system, since you&amp;#39;re handling private key material. If you want to try it, let me know and I&amp;#39;m happy to write up the exact steps, including the format that&amp;#39;s required for the input file.&lt;br/&gt;&lt;br/&gt;And if you&amp;#39;d first just like to get a better idea of how inkan works before connecting it to your current npub, you can create a throwaway toy identity on inkan&amp;#39;s homepage. Recording it on Ethereum costs a small gas fee, and the wizard has a menu where you can ask me to sponsor that tiny amount, which I&amp;#39;m usually happy to do for people who don&amp;#39;t hold any Ether (and seem reasonably good-natured, at least as far as posting to the inkan relay goes). Creating one happens right in the browser and takes about five minutes, and the result is the same cryptographic object the Management Utility would produce, just made in an insecure location rather than on an airgapped machine.
    </content>
    <updated>2026-10-12T18:44:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrdhqqe9j6p677mf2s63l8sddns2q2gqr38fvkyprlwcwxt9rvj6szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqjp76e</id>
    
      <title type="html">The other thingy is fun as well.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrdhqqe9j6p677mf2s63l8sddns2q2gqr38fvkyprlwcwxt9rvj6szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqjp76e" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqq0j0gvg25qrfn5w70gkz78rk7w95w8qkwn7a7vf9d3amsaeygpz9mhxue69uhkummnw3ezuamfdejj73altnc&#39;&gt;nevent1q…ltnc&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The other thingy is fun as well.
    </content>
    <updated>2026-10-12T14:56:55Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsx3ck3q6vew43hgjktmlyr4e6m3l63x6ekn8ysw9hm4ljjw6ujx6czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxz8zwlz</id>
    
      <title type="html">Following up on this one, with inkan &amp;#34;verify&amp;#34; isn&amp;#39;t ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsx3ck3q6vew43hgjktmlyr4e6m3l63x6ekn8ysw9hm4ljjw6ujx6czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxz8zwlz" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0jh4mppjdc5k4faaynafyggq3mtkq0zzju0rptv882kf6mfyangqpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs3w2j69&#39;&gt;nevent1q…2j69&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Following up on this one, with inkan &amp;#34;verify&amp;#34; isn&amp;#39;t just a slogan.&lt;br/&gt;&lt;br/&gt;Every OTS-stamped event on inkan.cc comes with a download button for the raw .ots proof, together with a report that tells you exactly how to reproduce the hash the proof commits to:&lt;br/&gt;&lt;br/&gt;leaf = SHA-256( id_bytes || sig_bytes )&lt;br/&gt;&lt;br/&gt;It takes one line of shell to recompute it from the event&amp;#39;s id and sig, then feed the .ots to any OpenTimestamps verifier, the CLI, the web one, whichever you like. Nothing from inkan is in the loop. It either resolves to a Bitcoin block header or it doesn&amp;#39;t.&lt;br/&gt;&lt;br/&gt;It&amp;#39;s the same for key delegations: with the click of a button, the inkan client lets you download a standalone Python script that checks the on-chain declarations against an Ethereum RPC you choose. It recovers every ECDSA signature locally, checks the contract binding, flags nonce replays. You can read it top to bottom, no inkan server involved.&lt;br/&gt;&lt;br/&gt;If I were fooling anyone, handing out the tools to catch me by building them right into the client would be a strange way to go about it.&lt;br/&gt;&lt;br/&gt;The critics of inkan come in different flavors, like &amp;#34;haven&amp;#39;t read it,&amp;#34; &amp;#34;haven&amp;#39;t tested it,&amp;#34; and &amp;#34;haven&amp;#39;t found a flaw in it.&amp;#34; It&amp;#39;s hard to be fooled by something you have the tools to verify, but it&amp;#39;s easy to be fooled by people who are telling you not to look.
    </content>
    <updated>2026-10-12T06:08:39Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszpsjxyu89ymst3ksj86wgumzke8alsuee68jkd82whmcmge6j57qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxp0693g</id>
    
      <title type="html">You should already be whitelisted on the timestamp server, as ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszpsjxyu89ymst3ksj86wgumzke8alsuee68jkd82whmcmge6j57qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxp0693g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxlqystumlehxvltszkv74pvjfrx3e3gqfds8ndpaaq7rdedzzuugpz4mhxue69uhhyetvv9uju6twddskutnrvvhsdf3p3x&#39;&gt;nevent1q…3p3x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;You should already be whitelisted on the timestamp server, as well as on the relay. &lt;br/&gt;&lt;br/&gt;You can check your status at &amp;#34;Settings &amp;gt; Inkan Settings &amp;gt; Service Access&amp;#34;. It should show that you have access everywhere, if not let me know.
    </content>
    <updated>2026-10-11T19:58:11Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxczq07geus7mhgsf0kvdzsc4xs4zukhrlxct3awhw2j9mx7jezxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx6wnmvj</id>
    
      <title type="html">pubkeys that have recently applied for AI search should have ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxczq07geus7mhgsf0kvdzsc4xs4zukhrlxct3awhw2j9mx7jezxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx6wnmvj" />
    <content type="html">
      pubkeys that have recently applied for AI search should have access now 🧞‍♀
    </content>
    <updated>2026-10-11T19:41:49Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsveepzwcp94kjs9zwkel6m6xs77dd73fdfapvr8ka0ef06966d78szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlehfcx</id>
    
      <title type="html">The concept is not going away for as long as there is asymmetric ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsveepzwcp94kjs9zwkel6m6xs77dd73fdfapvr8ka0ef06966d78szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlehfcx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsz2hcgzz95nup38ur7cnxjf0tn00s9cwx46xl9rjud3rtvehnk5kqppemhxue69uhkummn9ekx7mp0tgutcd&#39;&gt;nevent1q…utcd&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The concept is not going away for as long as there is asymmetric cryptography.🤷‍♂
    </content>
    <updated>2026-10-11T19:05:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0jh4mppjdc5k4faaynafyggq3mtkq0zzju0rptv882kf6mfyangqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxsywhnn</id>
    
      <title type="html">Don&amp;#39;t trust, verify.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0jh4mppjdc5k4faaynafyggq3mtkq0zzju0rptv882kf6mfyangqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxsywhnn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyf3gjuqs8q5glk2ayrz74ls75xq6lhfpxyywk8ekujmpndxz86sqppemhxue69uhkummn9ekx7mp0mlsssh&#39;&gt;nevent1q…sssh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Don&amp;#39;t trust, verify.
    </content>
    <updated>2026-10-11T18:34:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9skl8usps37k3653xaa6aljrmr8g32k3jgl5g6st7q82yfu42ntqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0earh2</id>
    
      <title type="html">I bet you can get all sorts of descriptions out of it if you just ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9skl8usps37k3653xaa6aljrmr8g32k3jgl5g6st7q82yfu42ntqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0earh2" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqx0rslrnu3guga0yuuhk34msykargertyzpv4ply9xx73euvgppemhxue69uhkummn9ekx7mp0vu4wru&#39;&gt;nevent1q…4wru&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I bet you can get all sorts of descriptions out of it if you just tweak the prompt. It&amp;#39;s available under &amp;#34;Assay&amp;#34; in the nav bar at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. If you&amp;#39;d like to try it out it first asks you to sign the Terms, once I have these I&amp;#39;m happy to switch it on for your pubkey.
    </content>
    <updated>2026-10-11T18:21:39Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfflurekjl5x2c63c8zx9e542d7wd49gdv2psdge7hrkmx2km69xczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx72fanx</id>
    
      <title type="html">this is kind of relevant broadly speaking, for the nostr case ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfflurekjl5x2c63c8zx9e542d7wd49gdv2psdge7hrkmx2km69xczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx72fanx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrlu722pyl6kf66e76auxyc0dj6hza8rj23lfa0lng08gcdg4vfwcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsef8cz9&#39;&gt;nevent1q…8cz9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;this is kind of relevant broadly speaking, for the nostr case 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcqyqydc5vcy4z8zk350dsykgfkrq5uc2jvzmaa9k709hq88ku90gt5q4duw9c&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…uw9c&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-10-11T17:53:52Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxfxx5vnccws3mpk04saxvujn8hddale6k4zxmntmv58vrjtztqqszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtc6qr9</id>
    
      <title type="html">Huh, I guess it&amp;#39;s an opportunity to post yet another a link ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxfxx5vnccws3mpk04saxvujn8hddale6k4zxmntmv58vrjtztqqszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxtc6qr9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyt5ewkuqfhvg5vsz9jz68nyksyl84304n2y09wymgc7dl9hfs8dspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs3xqaz9&#39;&gt;nevent1q…qaz9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Huh, I guess it&amp;#39;s an opportunity to post yet another a link to inkan, which I&amp;#39;ll do in a minute. 🤔&lt;br/&gt;&lt;br/&gt;As a reminder, there&amp;#39;s a standing invitation to make a toy identity directly in the browser on the homepage at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Useful if you&amp;#39;d like to try it out without going through the steps of making a true airgapped identity.&lt;br/&gt;&lt;br/&gt;And even if you don&amp;#39;t make your own identity, you can still use &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt; to interact with existing cold storage identities. You can find some of them by clicking on the Explore tab.
    </content>
    <updated>2026-10-11T17:49:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqdpkf0sfylcf2a9mrvq20g0950mh54zu7uy0saaspk3tevzyj72szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx77msft</id>
    
      <title type="html">https://www.inkan.cc is a jumble fork that&amp;#39;s pretty nice to ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqdpkf0sfylcf2a9mrvq20g0950mh54zu7uy0saaspk3tevzyj72szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx77msft" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsff9cu9hgp808lf4yw6edwgt3hprl80mzzh2tu9znhys9qdk8925cpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsl7rcnn&#39;&gt;nevent1q…rcnn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt; is a jumble fork that&amp;#39;s pretty nice to use.&lt;br/&gt;&lt;br/&gt;It supports cold storage identities, if you ever want one of those.&lt;br/&gt;&lt;br/&gt;And you can search the nostr network with the new AI Search feature. That&amp;#39;s actually how I found your note that I&amp;#39;m replying to right now. I asked it what Laeserin had been up to, and here is what it came back with. 👇&lt;br/&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9196ab0d52d41bb02e8e70fbc1c9a379895eb4d6d71160b9c98540fce3d49f00.jpg&#34;&gt; 
    </content>
    <updated>2026-10-11T16:17:32Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfnqnv9t7um7plew2q5dzulwtampg0hn24ld82t5nn84n4aje6mygzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqvtnwx</id>
    
      <title type="html">Once you get used to managing your regular key pair, you may at ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfnqnv9t7um7plew2q5dzulwtampg0hn24ld82t5nn84n4aje6mygzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxqvtnwx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs0uf54jj054fucjag7908090kld2puh3h08rm0jnlvznwygnvvv3gpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs6cwp89&#39;&gt;nevent1q…wp89&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Once you get used to managing your regular key pair, you may at some point become interested in replaceable keys, i.e. keys that you you can revoke if they are ever lost or stolen and replace with new ones.&lt;br/&gt;&lt;br/&gt;I implemented a system for doing this at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;. Other nostr users tell me that the system is too complicated, especially for people who are just getting started with nostr. I don&amp;#39;t really think so, but I guess it depends on one&amp;#39;s preferences. In any event, I wanted to let you know that there&amp;#39;s a way of doing this if you are, or ever become, interested.  See below for a bit more info and some screenshots. 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcqyqydc5vcy4z8zk350dsykgfkrq5uc2jvzmaa9k709hq88ku90gt5q4duw9c&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…uw9c&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-10-11T15:03:51Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf4lxer3yd4jc2sgqljxhw2k6ynzca72ym0rhmx0k4wgqqvu4wq3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxkqd3lt</id>
    
      <title type="html">Wow.</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf4lxer3yd4jc2sgqljxhw2k6ynzca72ym0rhmx0k4wgqqvu4wq3czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxkqd3lt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsxsys3al5fxrl7p9296sa4sz5yhvff2reatdr9hzufy8nj4tlv9rspz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs9dvhh9&#39;&gt;nevent1q…vhh9&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Wow.
    </content>
    <updated>2026-10-05T00:53:22Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsyteh0vw23l43efclmsq2m8lresvrky6agh8rv92s39g2tn93ckfczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwpjapc</id>
    
      <title type="html">Thanks, I&amp;#39;ll take a look at their repo to see how they are ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsyteh0vw23l43efclmsq2m8lresvrky6agh8rv92s39g2tn93ckfczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxwpjapc" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq9xc0tpfd6w9lv26tqevpvqq3qrfltjt8jk7yzz9x0t5n2xh5spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs8dtkud&#39;&gt;nevent1q…tkud&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, I&amp;#39;ll take a look at their repo to see how they are doing it. What I was thinking was to let the AI search page talk to any server that speaks the standard chat API. You&amp;#39;d run a local gateway with your provider key in its config, and paste its localhost address into a field on the search page, or something like that.&lt;br/&gt;&lt;br/&gt;I hadn&amp;#39;t heard of buzz. It&amp;#39;s really interesting to me as it seems to be about AI agent identity. This is something I&amp;#39;ve thinking a lot about in connection with inkan, because inkan provides the ability not just to give AI agents identity, but also to make it durable, and to make AI identities accountable to identities of human principals.&lt;br/&gt;&lt;br/&gt;I asked my AI search whether buzz has a nostr handle, but other than a bot nothing came up ...
    </content>
    <updated>2026-10-04T22:40:31Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxpnzx3z4va4ufjy07ujqwnj7dme64vf6krsl9ehyrxfnl3ddhqsczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxvylhgc</id>
    
      <title type="html">For the AI search, I could try to add a &amp;#34;connect your own ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxpnzx3z4va4ufjy07ujqwnj7dme64vf6krsl9ehyrxfnl3ddhqsczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxvylhgc" />
    <content type="html">
      For the AI search, I could try to add a &amp;#34;connect your own model&amp;#34; feature.&lt;br/&gt;&lt;br/&gt;The idea would be that you run a local gateway (e.g. LiteLLM) on your laptop with your own model provider account behind it , like DeepSeek or Anthropic or whatever. The AI search page then talks to that instead of the AI that inkan is using.&lt;br/&gt;&lt;br/&gt;Should I add such a feature? Would anyone want to use it?&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy88wumn8ghj7mn0wvhxcmmv9uq32amnwvaz7tmjv4kxz7fwd9hxkctw9e3kxtcqyz5qqsg2w4xad46yfvqplnjp494hswq46zkrwxrcednzuk0j7pz4um8ehda&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…ehda&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&gt; &lt;br/&gt;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-04T16:39:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs99nertdn6wpqq9vqrgskw0tjs4xzdflvr8rk8deyyspnlrmh5augzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlas424</id>
    
      <title type="html">I saw Disclosure Day. It was a throwback to the days when people ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs99nertdn6wpqq9vqrgskw0tjs4xzdflvr8rk8deyyspnlrmh5augzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxlas424" />
    <content type="html">
      I saw Disclosure Day. It was a throwback to the days when people still knew how to make movies, although among those competent ones this would not have been an especially good one. The ending sequences brought me to brink of tears, which was however not a genuine emotion but more of a physical reaction to the particular combination and sequencing of images and voices and music, sort of like a vasovagal reflex, or the mental state you get into when you sit in front of a slot machine with all the blinking lights, or I guess a horror movie jump scare. There was a very clean separation between that physical reaction I was experiencing and the consciousness of being manipulated. Not unpleasant but also somewhat annoying. In any event, it&amp;#39;s nice to encounter something of good workmanship even though it may ultimately not be very remarkable.
    </content>
    <updated>2026-10-04T15:57:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0c57lv2rprqwah45ejyt4p0j28fsd98jxmvdhkfcg4ucpxj004cgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxa6ts6g</id>
    
      <title type="html">&amp;#34;meeting analogically&amp;#34; is a great phrase, I&amp;#39;ll ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0c57lv2rprqwah45ejyt4p0j28fsd98jxmvdhkfcg4ucpxj004cgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxa6ts6g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8whp798yr0h06hqq7yf7v9fa8cvwqxvadud5tjeqzfl9rcst3a6spzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtc0gwedn&#39;&gt;nevent1q…wedn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;meeting analogically&amp;#34; is a great phrase, I&amp;#39;ll remember that.🙂
    </content>
    <updated>2026-10-04T07:35:08Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2fry2e6zsl6nc7qzwey2kunaedp67ju6dna0s5r33f3299lmt2qszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx5dyaja</id>
    
      <title type="html">It&amp;#39;s been almost a month since this discussion, so here&amp;#39;s ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2fry2e6zsl6nc7qzwey2kunaedp67ju6dna0s5r33f3299lmt2qszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx5dyaja" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqhdx67yruzz2ppkz6z5u3m4ykrerl4970clf4lq7p580shdzd2vgpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsfwhf8j&#39;&gt;nevent1q…hf8j&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;It&amp;#39;s been almost a month since this discussion, so here&amp;#39;s a quick reminder that Nostr already has a working key rotation / replacement system. &lt;br/&gt;&lt;br/&gt;You can go to &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt; and click on &amp;#34;Explore&amp;#34; to interact with some cold storage identities that have never signed  a single Nostr event.&lt;br/&gt;&lt;br/&gt;You can also create a throwaway &amp;#34;toy identity&amp;#34; on the homepage if you want to try it out yourself. If you don&amp;#39;t mind going through the steps, you can even make a full-fledged airgapped identity with the Management Utility.
    </content>
    <updated>2026-10-04T02:48:56Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr3ct96s95u26ent23fkqhyy0f39l20qtszmjgevpkatpednrvdjczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx59v95f</id>
    
      <title type="html">By the way, I&amp;#39;m still trying to get the word out on this key ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr3ct96s95u26ent23fkqhyy0f39l20qtszmjgevpkatpednrvdjczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx59v95f" />
    <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;By the way, I&amp;#39;m still trying to get the word out on this key rotation system.&lt;br/&gt;&lt;br/&gt;If you go to the &amp;#34;Explore&amp;#34; menu at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;, you can interact with cold storage identities that have never themselves signed a single Nostr event but that are nonetheless doing posts every day. If you like, you can also make your own toy identity on the homepage.&lt;br/&gt;&lt;br/&gt;I realize there&amp;#39;s a strong presumption among the Nostr community that this kind of thing doesn&amp;#39;t work. But as a matter of fact it works quite well. I&amp;#39;ve been using it for many months now.&lt;br/&gt;&lt;br/&gt;This also plugs into the recent discussion that we should adopt good practices while the Nostr community is still small. And in any event, it doesn&amp;#39;t break anything in the current protocol, it just sits on top of it.
    </content>
    <updated>2026-10-03T04:03:58Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszx58sks75nsrcheyrt8550q6r6a9dkpx37n3lnufmd77sn9xp93qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0p4w5v</id>
    
      <title type="html">AI Search for Nostr is a pretty good UX experience I think. I ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszx58sks75nsrcheyrt8550q6r6a9dkpx37n3lnufmd77sn9xp93qzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0p4w5v" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqq86h7svat4lgvr9dawefcxpu2k68dnzkkhha3y9zjmklg0f7egpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs5pq5rn&#39;&gt;nevent1q…q5rn&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;AI Search for Nostr is a pretty good UX experience I think. I just made it this week and am already pretty hooked on it. 👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcqyz5qqsg2w4xad46yfvqplnjp494hswq46zkrwxrcednzuk0j7pz4u7yjsrr&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…jsrr&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&gt; &lt;br/&gt;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-03T03:31:50Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqswdpevqnrksdqh0g83krcvcakmx5snces8ccwxu96nysdgfx6442czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpjmn02</id>
    
      <title type="html">&amp;#34;Your nsec is still your identity&amp;#34; FYI, here is a system ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqswdpevqnrksdqh0g83krcvcakmx5snces8ccwxu96nysdgfx6442czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxpjmn02" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqxvdqlkpj7lnw6w9chves8hlaq3c2dmr6gh55xu464jztepnugpr4mhxue69uhkummnw3ezucnfw33k76twv4ezuum0vd5kzmp0y9da4l&#39;&gt;nevent1q…da4l&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;&amp;#34;Your nsec is still your identity&amp;#34;&lt;br/&gt;&lt;br/&gt;FYI, here is a system where your nsec is no longer your identity. If you go to the Explore page at &lt;a href=&#34;https://www.inkan.cc&#34;&gt;https://www.inkan.cc&lt;/a&gt;, you can interact with Nostr identities that have never signed a Nostr event themselves. You can also create your own toy identity on the homepage.👇&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqyghwumn8ghj7mn0wd68ytnhd9hx2tcpz4mhxue69uhhyetvv9uju6twddskutnrvvhsqgqgm3gesf2yw9drg7mqfvsnvxpfes4yc9hm6tdu7twqw0dc27shgq6rqdtx&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…qdtx&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-10-03T03:14:37Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqszjuuh4q0ltw3s8ut7ahwad67y6rd0uzc0tknc6f26cn9wgqwqfxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxx2f3ff</id>
    
      <title type="html">As I said going further back, formative years. There&amp;#39;s also ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqszjuuh4q0ltw3s8ut7ahwad67y6rd0uzc0tknc6f26cn9wgqwqfxczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxx2f3ff" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdja9wqs98tm4hzd4p9s0fe0thfk5949t4sjjvpxg5l2m93dmeu9spz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsrrwqlv&#39;&gt;nevent1q…wqlv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;As I said going further back, formative years. There&amp;#39;s also this&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://music.youtube.com/watch?v=g3h7QXarBWs&amp;amp;si=PZl1ZS8cEf4bVfAo&#34;&gt;https://music.youtube.com/watch?v=g3h7QXarBWs&amp;amp;si=PZl1ZS8cEf4bVfAo&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;I&amp;#39;ll leave it at that
    </content>
    <updated>2026-10-02T09:37:01Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsfkydj569vffqwmwf836ytx82cf0cq9enp3ae436nxtg0xqwcewtqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxk0l6xk</id>
    
      <title type="html">Or going further back: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsfkydj569vffqwmwf836ytx82cf0cq9enp3ae436nxtg0xqwcewtqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxk0l6xk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyq0sup4xzqlr3j547fgnvjzxp00q9xk6wf9j6gwkpmpphaku634cpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtck39ruj&#39;&gt;nevent1q…9ruj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Or going further back: &lt;a href=&#34;https://music.youtube.com/watch?v=dIyqQ7aANWY&amp;amp;si=N_C5rtiBk0Ci0ZQg&#34;&gt;https://music.youtube.com/watch?v=dIyqQ7aANWY&amp;amp;si=N_C5rtiBk0Ci0ZQg&lt;/a&gt;
    </content>
    <updated>2026-10-02T09:16:43Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsq0km03lp95rk7ttkwvzn7jwut9950zxjdwntw8c9f6fzeczccvdgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxep8tkx</id>
    
      <title type="html">I always forget what this discussion is about, and then I worry ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsq0km03lp95rk7ttkwvzn7jwut9950zxjdwntw8c9f6fzeczccvdgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxep8tkx" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsqqqqy5h7qjfzapuqcy29tnmlmckzx9cauyu49594fhxxq262lyjgpzemhxue69uhkummnw3ex2mrfw3jhxtn0wfnj758kww0&#39;&gt;nevent1q…kww0&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I always forget what this discussion is about, and then I worry whether I need to change anything in my client, I think probably not though, oh dear oh dear.
    </content>
    <updated>2026-10-01T16:56:18Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs9c7mpjj5rz83wykt3eqp5zvrj6wx9dtnpemmxj9wdnr9mk3ra08czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxztk3he</id>
    
      <title type="html">I agree with pretty much all of this, including that its&amp;#39;s a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs9c7mpjj5rz83wykt3eqp5zvrj6wx9dtnpemmxj9wdnr9mk3ra08czyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxztk3he" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsztave582kdwx5p2s0y3u4nmljz4ewxgw0vcr6zjq3slnh5hn6d9qpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhs3nccp3&#39;&gt;nevent1q…ccp3&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;I agree with pretty much all of this, including that its&amp;#39;s a self-fulfilling loop.&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgnwaehxw309ahkvenrdpskjm3wwp6kytcqyruapxju6jc2tqgaaekaxp3ftdcn3rxxsj7sg520gwl39u3xysud6yleyzk&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…eyzk&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; So there&#39;s this nostr paradox, why would a community obsessed with crypto and key security refuse to even test working key rotation?&lt;br/&gt;&lt;br/&gt;Because you can&#39;t tell working from broken without spending your own time on it.&lt;br/&gt;&lt;br/&gt;After enough broken NIPs and abandoned apps, you learn to price every new thing as a lemon and assume broken. The good leaves the market with the bad. 👇&lt;br/&gt;&lt;br/&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/The_Market_for_Lemons&#34;&gt;https://en.wikipedia.org/wiki/The_Market_for_Lemons&lt;/a&gt; &lt;/blockquote&gt;
    </content>
    <updated>2026-10-01T16:15:25Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsreuheqmyufg2h7vhdh7tt6pth270qaputkahqk2u9mqdr435r7nczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx3286nt</id>
    
      <title type="html">Thanks, good to know that part is working ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsreuheqmyufg2h7vhdh7tt6pth270qaputkahqk2u9mqdr435r7nczyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx3286nt" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsv2heltsz2370usqe8kpjncgqrfsf6yewkp40mm8w4gmtkuuldn3spzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtcyuyxxs&#39;&gt;nevent1q…yxxs&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, good to know that part is working ...
    </content>
    <updated>2026-10-01T13:32:05Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2sqzppf65m4khg39sq87wgx5kk7pczhg2cdcc0r9kvtje7tcy2hszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdhdyez</id>
    
      <title type="html">AI Search for Nostr has been live for a day now. 🧞‍♀ ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2sqzppf65m4khg39sq87wgx5kk7pczhg2cdcc0r9kvtje7tcy2hszyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxdhdyez" />
    <content type="html">
      AI Search for Nostr has been live for a day now. 🧞‍♀&lt;br/&gt;&lt;br/&gt;Here&amp;#39;s the kind of thing it comes back with, more details below the screenshots 👇&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/c18f60cd4ba23a65401920bb361b784f38c41165f42503397d8403da29f88308.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/588d6eef47ac04ac01b93b8c2b6c2cb2602f77363250867b99550f49931d2198.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/9267f4938a9564508422b9d1867420cb8fae7af4e692fcc1257dbe77de990971.jpg&#34;&gt; &lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://image.nostr.build/43455af0c02589ed30db66718ac178bec9b2b8e22eb270f171cb91232efc1cc5.jpg&#34;&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;/nevent1qvzqqqqqqypzp5dxzjv0fvwuym0shmx350573re4t7mpfdm3az6mya7sl7v6s23rqythwumn8ghj7un9d3shjtnswf5k6ctv9ehx2ap0qyfhwumn8ghj7mmxve3ksctfdch8qatz9uqzpmpt3vwj346ata0v2ajxwac7nwfvhsaa8aje7aud7x8saj82gsg4t0rlrz&#34; class=&#34;bg-lavender dark:prose:text-neutral-50 dark:text-neutral-50 dark:bg-garnet px-1&#34;&gt;nevent1q…rlrz&lt;/a&gt;&lt;/span&gt; &lt;/div&gt; Quick announcement:&lt;br/&gt;&lt;br/&gt;AI Search is now live on Inkan. The Assay page lets you search and discuss Nostr content with an AI model. 🧞‍♀&lt;br/&gt;&lt;br/&gt;If you&#39;d like to try it, you&#39;ll first need to review and sign the most recent Terms of Use, which you can do under Settings &gt; Inkan Settings &gt; Service Access.&lt;br/&gt;&lt;br/&gt;If you&#39;re a current inkan user, I&#39;ll switch on your access to AI Search after I receive the updated Terms of Use. &lt;/blockquote&gt;
    </content>
    <updated>2026-10-01T13:17:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0a5caqhlk8qkm0ljqp77heqw2de5vau74j964xju47xtjas6822szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxs4lprp</id>
    
      <title type="html">Great to hear it works better. FYI, you can always check if ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0a5caqhlk8qkm0ljqp77heqw2de5vau74j964xju47xtjas6822szyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxs4lprp" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstn27ncr3uj7ydkughmcmutenh4jm4j78cs7njhkpl94ny7avtggqpz4mhxue69uhhyetvv9uju6twddskutnrvvhsppr33x&#39;&gt;nevent1q…r33x&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Great to hear it works better. FYI, you can always check if you&amp;#39;ve got the latest version of the app by going to Settings &amp;gt; General &amp;gt; Check for updates.
    </content>
    <updated>2026-10-01T10:57:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqspz0spdrrgts5nxgadaavkn4f9cwt8vu70t5s4nfzcxty8ve6reyqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxrr8a5c</id>
    
      <title type="html">Thanks, that&amp;#39;s a great catch! I tried to fix it, when that ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqspz0spdrrgts5nxgadaavkn4f9cwt8vu70t5s4nfzcxty8ve6reyqzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zxrr8a5c" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsync8kjfpdz4yzeekj3k7xf9n8nnvmzc4smr8aysztxgmcqxwttjcpz4mhxue69uhhyetvv9uju6twddskutnrvvhs5f3jpy&#39;&gt;nevent1q…3jpy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, that&amp;#39;s a great catch! I tried to fix it, when that happens now, the model is now made aware that the value was probably the wrong kind, so it should correct course. You can go to Settings &amp;gt; General &amp;gt; Check for updates to get the new version of the app, or just do [ctrl/cmd] &#43; shift &#43; R.&lt;br/&gt;&lt;br/&gt;Please feel free to keep using it, and let me know any comments or questions anytime.
    </content>
    <updated>2026-10-01T07:39:13Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs8qaqp9003lxjjexgx30r43srd8uk9232gltyll83lawdzev7estgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0u7qmk</id>
    
      <title type="html">Thanks, you should have access now. Click on &amp;#34;Assay&amp;#34; in ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs8qaqp9003lxjjexgx30r43srd8uk9232gltyll83lawdzev7estgzyrg6v9yc7jcacfklp0kdrglfaz8n2hakzjmhr694kfmaplue4q4zx0u7qmk" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs8p5svexuk468kfuwpyq36xlcn0ymn9hcyrgx3m5hgcm6qxzhh3vqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtchylqjj&#39;&gt;nevent1q…lqjj&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Thanks, you should have access now.&lt;br/&gt;&lt;br/&gt;Click on &amp;#34;Assay&amp;#34; in the nav bar and enter a search.&lt;br/&gt;&lt;br/&gt;If you get stuck anywhere, let me know.
    </content>
    <updated>2026-10-01T06:24:43Z</updated>
  </entry>

</feed>