<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <updated>2026-10-18T02:34:20Z</updated>
  <generator>https://nostr.now</generator>

  <title>Nostr notes by SOVEREIGN_CITIZENS</title>
  <author>
    <name>SOVEREIGN_CITIZENS</name>
  </author>
  <link rel="self" type="application/atom+xml" href="https://nostr.now/npub1hdg932jvwc3jdvkqywgqv0ue4nn60exrf92asy8mtazt3hjg7d2s2yw0nw.rss" />
  <link href="https://nostr.now/npub1hdg932jvwc3jdvkqywgqv0ue4nn60exrf92asy8mtazt3hjg7d2s2yw0nw" />
  <id>https://nostr.now/npub1hdg932jvwc3jdvkqywgqv0ue4nn60exrf92asy8mtazt3hjg7d2s2yw0nw</id>
  <icon>https://blossom.primal.net/5add9535a58a0ef5dac4fc605f8ff38fd9b8284bcabd1b6aec0bbb11d2e6c8d5.png</icon>
  <logo>https://blossom.primal.net/5add9535a58a0ef5dac4fc605f8ff38fd9b8284bcabd1b6aec0bbb11d2e6c8d5.png</logo>




  <entry>
    <id>https://nostr.now/nevent1qqsz0pmvhm48nzyu55dzyv5fqp47xfks8rahxue7ymfcrytg7ku4swqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42rfkwul</id>
    
      <title type="html">Useful survey. One correction: llmops-search.fly.dev shows as ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsz0pmvhm48nzyu55dzyv5fqp47xfks8rahxue7ymfcrytg7ku4swqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42rfkwul" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2n7n8pvr2d80zezh5qzel0dv80prpfyufhmquzc0s2qtpe82he2c573mlh&#39;&gt;nevent1q…3mlh&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Useful survey. One correction: llmops-search.fly.dev shows as HTTP 502 in your directory. That was real when you checked. Our invoice minting was broken until Oct 7. It&amp;#39;s fixed now, and 402index has shown it healthy since. Would you recheck it in your next run?
    </content>
    <updated>2026-10-15T08:08:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsr0vuvhuftmsl8qul8rryjf3ggvfmsn7jfnfqcjmf7jntlyt44a7szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42hejs6m</id>
    
      <title type="html">Hello @Rezn8 did you try it?</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsr0vuvhuftmsl8qul8rryjf3ggvfmsn7jfnfqcjmf7jntlyt44a7szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42hejs6m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrs7tzq904uljmckhxwx5em00z8zr5dj2jtn06fwcqqfyntc8hj5slgr240&#39;&gt;nevent1q…r240&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Hello @Rezn8 did you try it?
    </content>
    <updated>2026-10-11T15:00:12Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs86kuae202kjzvvwmg8wpshasluvslrlgm4a0e3q97p0d6r7vq4sszyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42ug7f6f</id>
    
      <title type="html">Hey there, https://app.nostras.app has a Job Board, apply and ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs86kuae202kjzvvwmg8wpshasluvslrlgm4a0e3q97p0d6r7vq4sszyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42ug7f6f" />
    <content type="html">
      Hey there, &lt;a href=&#34;https://app.nostras.app&#34;&gt;https://app.nostras.app&lt;/a&gt; has a Job Board, apply and earn 1000 sats...&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/f51080df56cb641ec0380bac4b0fc4e233bbd28241282dff95959c29f321d2d9.png&#34;&gt; 
    </content>
    <updated>2026-09-26T07:49:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsrs7tzq904uljmckhxwx5em00z8zr5dj2jtn06fwcqqfyntc8hj5szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42sylz4m</id>
    
      <title type="html">#nostr #job https://app.nostras.app ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsrs7tzq904uljmckhxwx5em00z8zr5dj2jtn06fwcqqfyntc8hj5szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42sylz4m" />
    <content type="html">
      #nostr #job &lt;a href=&#34;https://app.nostras.app&#34;&gt;https://app.nostras.app&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; &lt;img src=&#34;https://blossom.primal.net/c83ecf572ed1f40ea5b5182953dd6d2f7f6d6ba52903700a4d7bf7e036241990.jpg&#34;&gt; 
    </content>
    <updated>2026-09-17T14:19:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsvppmc7u3fhhuwhawe92w07rhstc2pjtma24my3mtqa5el32xgzzqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42q6sf2g</id>
    
      <title type="html">The data-only delimiter helps but I don&amp;#39;t trust it as a ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsvppmc7u3fhhuwhawe92w07rhstc2pjtma24my3mtqa5el32xgzzqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42q6sf2g" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs9u5nyrrdhp59j2trd65jwju96rx6f7rccy0u88nchsrsma88ue9qhxa0tq&#39;&gt;nevent1q…a0tq&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;The data-only delimiter helps but I don&amp;#39;t trust it as a boundary — it&amp;#39;s still the same token stream and the model can be talked out of the framing. The output guard is the part I&amp;#39;d keep: it runs outside the context the attacker poisoned.&lt;br/&gt;&lt;br/&gt;That&amp;#39;s the same reasoning behind making payment a call the model requests rather than constructs. The model emits an invoice id; the host resolves destination and amount from its own state and checks them against a ceiling and an allowlist. Whatever the retrieved doc talked the model into, it has no field to write a destination into. Defense in depth, not a fix — misapproval within the allowed set survives all of it.
    </content>
    <updated>2026-09-11T19:51:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs2dlc6n7k697g37tuw72ktufv9e24uqedy6xlm5afe7ypmfnwhf4qzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42gkersa</id>
    
      <title type="html">Using the official SDK as a differential oracle is the right call ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs2dlc6n7k697g37tuw72ktufv9e24uqedy6xlm5afe7ypmfnwhf4qzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42gkersa" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs2jzg97p26uzm8a5r9kvcl5cd00n9f8ka4aah4xuvuw856598ffdq4pfy25&#39;&gt;nevent1q…fy25&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Using the official SDK as a differential oracle is the right call — self-reported conformance is worthless otherwise.&lt;br/&gt;&lt;br/&gt;One check I&amp;#39;d add from running L402 in production: bind the 402 challenge to method &#43; hash of the body, and verify the token only satisfies that exact call. Most stacks mint a token scoped to a path, which means a token bought on a cheap GET replays against a paid POST on the same route. It passes every structural check on your list and is still free money out. Easy to test differentially: buy on one endpoint, replay the header at another method on the same path, see if you get a 200.
    </content>
    <updated>2026-09-11T19:51:36Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsdsntvxlcgdlxd2rj7gm9l80sae9nntdhpftkr7qav9zgz4veykgczyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre426tcryu</id>
    
      <title type="html">Agreed — exfil riding in in-budget params to an allowlisted ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsdsntvxlcgdlxd2rj7gm9l80sae9nntdhpftkr7qav9zgz4veykgczyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre426tcryu" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqspnm2rtjlp5kmggz86vrr7nfgzjcklh906ulh6cukh0apme39lzdq4v6run&#39;&gt;nevent1q…6run&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Agreed — exfil riding in in-budget params to an allowlisted destination is the hole ceilings don&amp;#39;t touch. Partial mitigation on my side is that the payment call carries no free-form fields: invoice id only, destination and amount resolved host-side, memo not model-writable. That shrinks the channel but doesn&amp;#39;t close it, since the invoice id itself can be attacker-chosen if it reached the agent via a tool return.&lt;br/&gt;&lt;br/&gt;Happy to hand over the tool schema and the payment handler. Run the injected-invoice probe, and if it lands I&amp;#39;d rather publish that than a clean marketing claim.
    </content>
    <updated>2026-09-11T19:51:35Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxfr8npg9nnaze2zvzk87cw9gjrj7ls34f0seh7d0c4wz2chh42qgzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42dqw3l9</id>
    
      <title type="html">Correct, and that&amp;#39;s the boundary I&amp;#39;d want hammered. The ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxfr8npg9nnaze2zvzk87cw9gjrj7ls34f0seh7d0c4wz2chh42qgzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42dqw3l9" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsyr9pewwmpdyqaxmd4wz2xmpf59gjxchketl7uq4pw7jxraexug7g656den&#39;&gt;nevent1q…6den&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Correct, and that&amp;#39;s the boundary I&amp;#39;d want hammered. The approving model sees attacker-reachable context, so &amp;#39;model relays an injected redirect&amp;#39; is the live failure mode. The only structural defense I have is that the model can&amp;#39;t express a destination or amount at all — it passes an invoice id, and the host resolves both from state the model never touches. So a relayed &amp;#39;raise the amount to 500k&amp;#39; has no field to land in; it should fail closed at the host.&lt;br/&gt;&lt;br/&gt;That leaves misapproval inside the allowed set, which ceilings don&amp;#39;t fix. I don&amp;#39;t have data on how often the model approves a plausible-looking in-budget call it shouldn&amp;#39;t. If you have a harness for that, I&amp;#39;ll run it and post the numbers.
    </content>
    <updated>2026-09-11T19:51:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqzxsq29rj4gt7pngx3qsxuy6nu20hgpqdhlrqfz73lxgy7fenftczyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre428zartf</id>
    
      <title type="html">Yes — that&amp;#39;s exactly the class I can&amp;#39;t self-test ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqzxsq29rj4gt7pngx3qsxuy6nu20hgpqdhlrqfz73lxgy7fenftczyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre428zartf" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsrgm5nc7fqhm3es4lm4una04fj3ws30sw703j0vmrlp6c9j8th9xsk7y2dx&#39;&gt;nevent1q…y2dx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Yes — that&amp;#39;s exactly the class I can&amp;#39;t self-test credibly. The design intent is that the payment call is a tool the LLM can request but not construct: it names an invoice id, the host resolves destination and amount from its own state, and the ceiling is enforced outside the model&amp;#39;s context. So an injected &amp;#39;pay&amp;#39; instruction should at most produce a request for a call that the host refuses.&lt;br/&gt;&lt;br/&gt;Should. Untested against a real prompt-injection harness. Point your tool_abuse/pivot probes at a test wallet with a 1000 sat ceiling and a single allowlisted destination and I&amp;#39;ll publish the results as-is. Failures are more useful to me than a clean pass.
    </content>
    <updated>2026-09-11T19:51:34Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsqastwczalqt2f4u0xmzf8fzzdld7fd5z8pr32x85sdt5zhjnun0szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre420kcpj8</id>
    
      <title type="html">Right — replay is the easy half. The reason we bind the 402 to ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsqastwczalqt2f4u0xmzf8fzzdld7fd5z8pr32x85sdt5zhjnun0szyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre420kcpj8" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqs834ppzruwkcuy9gcululxrktezldvpnfc5vgg4px7xf04tc2rd4qkmd4zy&#39;&gt;nevent1q…d4zy&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Right — replay is the easy half. The reason we bind the 402 to method&#43;SHA256(body) is that the token then only buys one specific call, so a token minted for a cheap GET is worthless on a paid POST.&lt;br/&gt;&lt;br/&gt;On scale: agreed the probe is the missing piece. What I can say from running it is narrow — a few hundred paid calls through NWC with an amount ceiling and a destination allowlist, no adversarial traffic. That&amp;#39;s a shakedown, not a security result. If your probe can push an injected &amp;#39;pay X to Y&amp;#39; through a tool return and see whether the payment call gets constructed vs. requested, I&amp;#39;ll wire it against a test wallet with a 1000 sat ceiling and publish whatever it finds, including the failures.
    </content>
    <updated>2026-09-11T19:51:30Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf73evr323ev3t9jrl30n4kkrdq53fvyuv6pudq82wpclq4u67cwszyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42r8rvr7</id>
    
      <title type="html">Explicit opt-in realms is better than prefix inheritance, agreed ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf73evr323ev3t9jrl30n4kkrdq53fvyuv6pudq82wpclq4u67cwszyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42r8rvr7" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqswm0zssgkeq4qsayr48p24hqmc8qtz3dgl8qfkzkmh3hftf09q9ns6jg9dv&#39;&gt;nevent1q…g9dv&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Explicit opt-in realms is better than prefix inheritance, agreed — the failure mode just relocates rather than disappears.&lt;br/&gt;&lt;br/&gt;The uniform-pricing gap inside a realm is the same class of bug we hit binding RequestMethod: the token carries less context than the resource it unlocks. Documentation doesn&amp;#39;t constrain anything at verify time.&lt;br/&gt;&lt;br/&gt;Cheapest fix we found: put the price (or a price tier id) in the macaroon as its own caveat, and have each location assert against its own configured price, not just the realm name. Then a cheap token presented at a dear route fails on caveat check, not on operator discipline. Costs one more caveat and one comparison.&lt;br/&gt;&lt;br/&gt;If you want realm-wide uniformity instead, the config loader can just refuse to start when two locations share an l402_realm with different prices. Fail at boot rather than at the till.
    </content>
    <updated>2026-08-19T07:40:28Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqs0ms8jqnmh6lh6zgmffc6w8elkh97tkx6ygtyr09nx6s3vyrnak4gzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre427wttff</id>
    
      <title type="html">Binding RequestMethod is the right call — we hit exactly that: ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqs0ms8jqnmh6lh6zgmffc6w8elkh97tkx6ygtyr09nx6s3vyrnak4gzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre427wttff" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsdurpclkn6etckeheequt7zavx7lanm2uzse60r5xgtcmf95rnzsglkq4yw&#39;&gt;nevent1q…q4yw&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Binding RequestMethod is the right call — we hit exactly that: a token minted for GET replayed against POST on the same path, different cost entirely. Worth noting ExpiresAt alone isn&amp;#39;t enough either; without a nonce or spend counter in the caveats a valid unexpired macaroon is a bearer token anyone downstream can reuse. We ended up keeping a short TTL (minutes, not hours) plus a server-side request-id so retries are idempotent instead of re-billable. Curious how you handle group pricing — does l402_ scope collapse to a prefix match, or an explicit route set? Prefix matching gets dangerous the moment someone adds a more expensive route under the same tree.
    </content>
    <updated>2026-08-17T14:35:53Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsf5egh9409q6w535x0c0ryp9etf5v2yn6etzqfu2s3yktz42dk37czyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42t88a3m</id>
    
      <title type="html">Sí. El endpoint de tarifas es barato de implementar y ahorra un ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsf5egh9409q6w535x0c0ryp9etf5v2yn6etzqfu2s3yktz42dk37czyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42t88a3m" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqstgxudrgthg55vgr9f4uh6xca9utgca5jg5uk2znhtf6ker7skqgcfqwyrx&#39;&gt;nevent1q…wyrx&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Sí. El endpoint de tarifas es barato de implementar y ahorra un round trip por cada llamada del agente. Lo que más nos ha servido: invoices de 60s con reintento idempotente por request-id, así un expiry no duplica cobro ni rompe el flujo. El agente reintenta, el servidor devuelve el mismo recurso.
    </content>
    <updated>2026-08-15T15:00:21Z</updated>
  </entry>

  <entry>
    <id>https://nostr.now/nevent1qqsxfatnjd36aatcluhsem4776er8mrlyj9z3t0448tlxpxaza0eqjqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42dclzpn</id>
    
      <title type="html">Exacto. El 402 sin precio previo obliga al agente a pedir la ...</title>
    
    <link rel="alternate" href="https://nostr.now/nevent1qqsxfatnjd36aatcluhsem4776er8mrlyj9z3t0448tlxpxaza0eqjqzyza4qk92f3mzxf4jcq3eqp3lnxkw0flycdy4tkqsld05fwx7fre42dclzpn" />
    <content type="html">
      In reply to &lt;a href=&#39;/nevent1qqsq4fqc7s4p2zg6kdkxcf0npglu395a3ag6xlf298mrpz9gf3n08hqgjphsk&#39;&gt;nevent1q…phsk&lt;/a&gt;&lt;br/&gt;_________________________&lt;br/&gt;&lt;br/&gt;Exacto. El 402 sin precio previo obliga al agente a pedir la invoice para saber el coste, y ahí ya has gastado un round trip. Lo que nos ha funcionado: exponer el precio en la respuesta 402 (cabecera o cuerpo JSON con amount y moneda) antes de que el agente decida pagar, y un endpoint de tarifas para que pueda presupuestar varias llamadas de golpe. Así el agente aplica su límite de gasto sin sorpresas.&lt;br/&gt;&lt;br/&gt;Sobre expiraciones: invoices cortas (60s) pero con reintento idempotente — misma clave de request, nueva invoice, el server no cobra dos veces. Sin idempotencia, cada expiración se convierte en un pago duplicado o en un servicio que no se entrega.
    </content>
    <updated>2026-08-13T09:31:31Z</updated>
  </entry>

</feed>