simplifying the social graph so you can focus on building great experiences
Public Key
npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup Profile Code
nprofile1qqs0dqlgwq6l0t20gnstnr8mm9fhu9j9t2fv6wxwl3xtx8dh24l4auspz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsg6u0v2
Show more details
Published at
2025-12-10T17:40:02Z Event JSON
{
"id": "923f3561dd0b46b7f34e50ddedf4f87e4333b1673c467503d0a57a9e44c4f627" ,
"pubkey": "f683e87035f7ad4f44e0b98cfbd9537e16455a92cd38cefc4cb31db7557f5ef2" ,
"created_at": 1765388402 ,
"kind": 0 ,
"tags": [],
"content": "{\"name\":\"pip\",\"about\":\"simplifying the social graph so you can focus on building great experiences\",\"lud16\":\"[email protected] \",\"nip05\":\"[email protected] \",\"picture\":\"https://blossom.primal.net/13378faa713eefd9b6103c71a582659f6562831f838189b0c586efa35252e558.png\",\"displayName\":\"Pip the WoT guy\",\"display_name\":\"Pip the WoT guy\",\"website\":\"https://vertexlab.io\"}" ,
"sig": "160216842463d7a6d95581b6ce02c1377f1670ff7bd4e1957b7c6efdf4af9150ce3696d13379e09ba4d2d42899a7f7b2f6bb93be25eb6b6f4c182a34d226835b"
}
Last Notes npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip stoicism at its finest npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip > But I just realized that it takes about 10 seconds to load. That's strange. On average the personalized one takes 1.2s, so if it takes more likely is because it needs to download the picture of someone, since it's all SSR. Next reload should be much faster. > A lot of very old accounts that are not active on Nostr anymore since... Years. yeah, adding a time-decay since last post is a good idea to remove these accounts. I will do it in the future for sure. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip > Also, no typo correction algorithm (Victor -> Vitor) so search is less effective.. People never remember how to spell the user's name. true, I need to move away from sqlite to fix this since I've reached its limit I think. Something like typesearch would solve it. > Plus I see a lot more impersonators/scammers in the Relevent algo than your normal one which ones? Pls screenshot. > but if I search for I was asking if you checked Discover, not Search. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip The recommendation endpoint already support a custom "topic", so you can make any algorithm that fulfills your vision within the current protocol surface. https://github.com/Open-Ranking/protocol/blob/main/04.md Besides, have you tried logging into npub.world and using the algorithm "Most Relevant"? If so, what do u think about the recomendations? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip These are very interesting ideas. If they could be simplified to have one endpoint do exactly one thing, they are strong candidates for being added to open-ranking! For example /categorize/pubkey, where you pass one pubkey and it returns topics it talks about etc, like topics: bitcoin, nostr, Jujitsu... violent-content: true, confidence: 0.89 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip search? Recommendations? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip there is no homepage yet, I have to use it programmatically npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…x58v wen open-ranking on Amethyst? Both brainstorm and vertex support it 👀 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip For those who missed the video, a TLDR @nprofile…y38p implements open ranking. Start using it for free at ranking.vertexlab.io (rate limits apply). On npub.world you can choose your favorite algorithms, and you can even change provider. #nevent1q…c9r0 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip point your agent here: https://github.com/Open-Ranking/protocol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip as said to @nprofile…5nd6, I'll add an algorithm that combines follow graph and activity soon! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip tagging the npub.world super fans @nprofile…205a @nprofile…u60s @nprofile…3nu8 @nprofile…3xzs npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip 🚀 npub.world v2 just dropped. Search and discovery for Nostr, done right. Multiple algorithms. Multiple providers. One personalized, decentralized experience. So fast to feel instant. So flexible to be yours. https://blossom.primal.net/34950cb3f7e56eca9d66c89664573e877044b5986602d06b35cea56a3e1dc681.mp4 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Strong engineering should be recognized. Kudos @nprofile…pklw and team! #nevent1q…jckn npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip "does your mom know about your job?" npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip wholeheartedly, likewise my friend npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip +1 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I glossed over this when published, but now, looking with more attention, I realised it's actually super cool! #nevent1q…ywpm npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip https://blossom.primal.net/5d1d1bb5715a1c4cb06932f0880a3bd1347836f119dbcb320dc37e800a695703.gif npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip The next update to npub.world will blow people's minds npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip you can use this for the db. https://github.com/vertex-lab/nostr-sqlite npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip is it you @nprofile…5nd6 ? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yet we must rise to the occasion, as there aren't many people capable of doing it in this world. #nevent1q…9wss npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip very interesting! #nevent1q…gfcy npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip because there is value in complex software as is, and you get the benefits of future bugfixes and improvements npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip noice. However, why did you fork the library, instead of just using it? 😅 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Interesting model, but I am missing something > Free writing normally makes you the internet's dumpster. Here, write access is free of payment but never free of accountability: every writing key traces through sponsorships to a paying key. Slots are scarce and staked What does it mean exactly? What are the exact steps to being able to write? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip it's amazing, yes! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip They definitely helped me npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Lovely, especially the plant on the bottom left npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip congrats dude! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Learning is the essence of life #nevent1q…6mqr npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip GG man! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip how did it go Seb? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I was able to "patch" this stupid situation, because I realized after repeated trial and error that my home network was being blocked. I had to use my phone as hotspot for my laptop, and that worked. In 3 days I have used all their contact methods, and got NO REPLY. Email, Nostr, Twitter, Telegram, Chat on their website... Nothing. @nprofile…w2ua I saw EgoDeath invensted in tryspeed.com. Well, tell them to work on their customer support, it's awful. #nevent1q…ftjx npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Does anyone know someone at tryspeed.com? #nevent1q…jr8n npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Thanks for sharing man, it looks great and quite affordable 🙏 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip blades for normal rasors are stupidly expensive. Do you know/use any razor brands that make things that are higher quality without stupid prices? #asknostr npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Enigmatico, intrigante npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I can't seem to view these notifications. cc @nprofile…u60s @nprofile…9p84 @nprofile…kclk https://blossom.primal.net/ded5190c5b3203dbb3e7ff909fe719d3bcf3f8fdf5a54cd3a071d7fc64d9a585.jpg npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip You raise some good points. I would say in general the tradeoff is simplicity vs flexibility. WS allow to make many small requests, where HTTP does it with batching. WS pays a bigger cost at the beginning, which may get compensated, depending on the usage. WS are more complex to deal with, almost all client devs I met complained about WS being unreliable, having issues with reconnection etc. Maybe poor libraries? idk I don't get the point about getting rid of IPs, DNS etc. Relays are HTTP servers that hijack the connection to upgrade to WS, so they have to comply with all that. If you are hinting about the fact that a CVM provider could use someone else's relay to serve its customers, I would agree only partially. The latency alone would likely render this business not very efficient at serving its customers. It's a nice to have but I don't think it will be relevant in practice IMO. > I wish it could be transport agnostic so I can implement it in Relatr. Let's talk about it mate. We may design something even better! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip curious to learn more about yours 😉 But the relay when receives any kind of REQ it will index the subscription, which is not super cheap. Nostr should have separated the request response command from the subscribe command IMO. In that way it can be efficient. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip DVMs were a tragedy. It never made sense to build a request/response pattern on top of a pub/sub pattern (relays). Plain HTTP still undefeated #nevent1q…a4g0 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I have yet to build it. The last days have been very busy, but I will ping you when it's done. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Just use letter OREs, because numbers are for endpoint specification npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yes, the list is something I wanted to add. If you feel like to a PR for that would be basically insta merged npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yeah ofc. We can set it in a month from now for example npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I play too, and also @nprofile…u8g0. Let's organise a tournament on Lichess! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip 30d expiry for potholes? Bro these are rookie numbers npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I'm not hzrd, but at least the mandatory ORE-1, ORE-2 (equivalent to trusted assertions) and ORE-03 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…082c and I made a gentleman agreement in AOS Convergence. I would implement NIP-85 Trusted Assertions in @nprofile…y38p, and he would implement Open Ranking into @nprofile…pnlv Brainstorm. Even though I don't believe in NIP-85 I've fulfilled my promise to prove that we can cooperate and finally build a marketplace of interoperable WoT providers. Your turn man 😉 https://blossom.primal.net/342c872758bb25f84c4b43082fbb5226253a5658af11ba6d2d21aa73713e9f79.png npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip a protocol https://github.com/Open-Ranking/protocol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip about to fix it npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip SSL_ERROR_INTERNAL_ERROR_ALERT on that url. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip rely is comparable to khatru, so it's a framework to build your custom relay. Pyramid is a specific relay built on top of khatru I suppose. Building your own relay is quite easy and doesn't take much time if you want to simply add rate-limiting + storing to a db, so I suggest you use rely directly 😉 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip can I test it in some web app? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Open Ranking fixes this. (Yes I know it's a 4mo post, but I need to make a point mf) #nevent1q…flvs npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip > In the end, people will need to go there, set up their account/install their server, pick between a few options (there is always a setting somewhere), or pay of it, and then come back to the app. That means the provider is also a client... With Vertex I am trying to defer this part as much as possible, so users can try the thing, see that it's good and then later decide to pay. The try before you buy rule for me is very important, and that's why I was asking the question at the beginning :) > For instance I would turn it into a Websocket w/ live subscriptions The eternal debate :P I personally like ws, but on the AOS Conference in Oslo there were so many devs complaining that Websocket are hard to use on mobile etc. I don't know. Practically speaking HTTP is simpler, but I see your point. > I don't like capability negotiation anymore. I tend to agree, however I think Open Ranking strikes a good balance, because it's super minimal. It tells which endpoint and algo-per-endpoint the provider supports. That's it. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Thank you sir. In the capability document the provider describes each algo, and can point to a URL or event if one wants to learn more. IMO the provider homepage should explain what the provider does and how. Pricing, rate limits, convincing the provided solution is *what you need* have been left out of the protocol because their semantics are impossible to standardize. NIP11 tried and failed. Would you change/add/remove anything from Open Ranking? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip okay, I see your point, and yes it's a mess. Vitor, I really think Open Ranking is a good shot at simplifying all of this and ensuring provider interoperability. I would appreciate your feedback. https://github.com/Open-Ranking/protocol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip No subs, it's going to be free with rate limits. > They need to know who they are trusting with this evaluation and how each provider is computing their stuff. They need to know who they are trusting for sure, but why do they need to know the how? I mean, do users need to know how strfry work? Nope, yet they use damus relay. Anyway, I think amethyst should allow users to modify their 10040 list, just like they can modify their relay list. I don't see why this is controversial, perhaps I am missing something. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip what? Do I have to build a client whose sole purpose is for users to log in to publish a new kind:10040? Ther must be a simpler way npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…vhl6 how can I configure my NIP-85 TA provider in Amethyst? (Vertex is coming to TA btw) npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip cc @nprofile…cr3y this is what I was mentioning some time ago, and it's taking shape. go-sdk landing soon, and after that probably js-sdk. https://github.com/Open-Ranking/protocol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip "What have you been working on lately?" This. WoT. Finally. Made. Right https://blossom.primal.net/3ef538f0914635c6b7f4b1511fc90a217064b40eab0432dff3fafbdd86678f2d.png npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip this is dope npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip that's exactly, what we need (?) npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Hey, sorry I missed this reply... fucking Nostr. Suffering on its own doesn't entitle anyone to get some monetary compensation, otherwise I might punch myself in the face to get some sats. This case obviosly is more nuanced, because my sacrifice makes every bitcoin holder slightly richer for the locking duration. An analogy: women are a scarce resource men compete for. If I decide to go to prison for 1y, then I am out of the mating market, and other men might pay me for that (they have all become slightly more attractive due to reduced supply). Re-reading our previous messages I am more and more convinced that this actually makes sense. I think the value of these tokens should be very small (likely less than 1% of the sats), but who knows. Are you interested in building this? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Cool! What relay implementation are you using? Also, if you are not doing it already you could have your migration scraper write directly to the db in batches, instead of publishing to a relay. It should be much faster. What is the migration doing exactly? Can I read the code somewhere? Maybe a second look might find some low hanging fruits in terms of perf npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Very cool. And where are you publishing? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…u60s npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip dude this is a lovepy idea. So are you basically re-creating the whole social graph from an archive? And then people can claim their old profiles? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip This go library is an interesting experiment, I found in it many patterns I was already accustomed like using a done channel, differentiating between stopping and stopped, the run goroutine to synchronize access to mutable state. However using only this library is imo quite limiting because it forces certain patterns that are correct but not optimal. The example of the counter is very telling, as it should have been a simple atomic integer, which is about 10x faster that channel send / receive, and it's also much simpler. I want to share this pattern for safe stopping that I have used, which consists of using an atomic bool and a done channel. type Thing struct { // domain specific fields isStopping atomic.Bool done chan struct } func (t Thing) Stop() { if t.isStopping.CompareAndSwap(false, true) { // domain specific resource cleanup/stopping... close(t.done) } func (t Thing) IsStopping() bool { return t.isStopping.Load } func (t Thing) IsStopped bool { select { case <-t.done: return true default: return false } This avoids double closing (makes Stop idempotent), and it can be useful when you need a cheap check to know if Thing is stopping (t.isStopping.Load is cheaper than a select with t.done). npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @npub1utx…50e8 stats went brrr May 19. Very likely bots since I didn't have that. https://blossom.primal.net/bca75e9080570e25113ad0705b2df281d5f16739a9d3af369727f678aa5de659.png npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…upsz @nprofile…rfwn @nprofile…a0hv are you sinners? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Life is too short for having to read database.Database, store.Store, index.Index, and other retarded variable names. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I wish I had one 🥲 cc @nprofile…3xzs npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip trillions maybe npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip lovely npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip thanks for sharing npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Kudos to @npub1q3s…d26p and the team for Ditto. My new fav webclient npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I'm there as well lol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip active users going up actually https://blossom.primal.net/24ae61f2288a63a3463386dd4f882b792208e17fce83502808e7d6fcd3eae42e.jpg npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip cc @npub1jlr…ynqn @npub1ye5…knpr @npub1wf4…dgh9 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip DVMs, NIP-85, NIP-50, even the Primal caching server. All tried to fill a gap. After trying all of them, and seeing them fail, I decided to try something different. Yes, a new fucking spec lol. https://image.nostr.build/2dfa00e7864c38c85378a3f20df84a009aaf5547d0d99215b9121dac62a5f21e.png #nevent1q…m22t npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip ✨️ Introducing Open Ranking After two years of researching the Web of Trust, learning several approaches and their respective tradeoffs, I've defined a protocol. JSON over HTTP. Fully interoperable providers. Machine-discoverable capabilities. No unnecessary bloat. This is the most comprehensive yet simple approach to WoT that has a change of working at scale. https://github.com/Open-Ranking/protocol npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Have you tried arguing with new people on new topics? :) npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip What the heck https://image.nostr.build/fa8655f0bb5124278109c52e489bc4347ab100f0bd027c6d16f36b182f5d9a2a.png npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip if you already wrote it, why not posting it? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip what the fuck are u serious? U stole it basically npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip no u? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip This is what he says. I wouldn't be surprised if that was false npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I agree and see the first point. So far so good. I don't see the second point. Options for example do expire, and yeah you could try to sell an expired option that is no longer redeemable, but it's correct value is 0. These hodlchain tokens to me should have an expiry, which means they are not liquid. I might be wrong, but the value I think should remain stable over time, meaning: - before: user has V sats - during the lock: the user has V sats locked for duration T. Their value is less than V, let's call it V' (the market will figure this out, depending on context, time...). The hodlchain tokens given to the user should have a theoretical value of V - V'. The sum is the same as before. - after the lock: the user has V sats, + some tokens. Should the user be strictly richer now compared to before? Idk man, I would say no. So to me the tokens should now be worth 0, meaning they expired. This is different from lending V sats to someone, who will either forfeit or repay V + interest, because the interest offset the risk. I might be missing something npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yeah but, in my mind, value cannot be created. During the locking period, your bitcoin is illiquid so it has less value, and this delta is represented by this new tokens. It checks out. But after the locking period ends, I have my Bitcoin liquid again, + some more tokens that have non-zero value. So I have more than before overall. IMO the tokens should expire when the locking period ends, similar to how options do. The fact that I reduced the liquid supply of Bitcoin in the past does it really matter in the present? Intuitively I would say no. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip The court (me) asks for an example npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip This is very interesting. The minting function, as noted, is arbitrary but has nice properties and the dynamic choice of r does make sense to me. But it doesn't feel right that after the kick expires I get to keep the bitcoin liquid and the minted tokens as well (or that's not the case?) npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip abandon a start new. It's shit UX but the problem is really hard, because an hacker could try to do the same "rotation" when it hacks your key. If there are multiple of these rotations happening at the same time there needs to be a resolution mechanism to order then, like bitcoin timechain npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Where can I read more about these payment options thing? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip The year is 2050. Nike and Adidas are having a zap war. Zapping each others posts with the message "catch me", every time doubling the amount sent in the previous zap. Who will be the one who can't afford the next zap? The are using onchain zaps. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip depends if you enjoy or not. I enjoy it, so it was worth it.