simplifying the social graph so you can focus on building great experiences
Public Key
npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup Profile Code
nprofile1qqs0dqlgwq6l0t20gnstnr8mm9fhu9j9t2fv6wxwl3xtx8dh24l4auspz3mhxue69uhhyetvv9ujuerpd46hxtnfduq3vamnwvaz7tmjv4kxz7fwwpexjmtpdshxuet5qyxhwumn8ghj7mn0wvhxcmmvq42nxu
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 they can check it already on npub.world npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip benvenuti! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Imma gonna zap myself to be top of the feed. jokes aside, dealing with impostors, fake zaps ect. is why WoT matters npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip In go I would definitely use a constant. With JS I am much less proficient npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip so you want const to be used only for global constant, for example const SecondsInDay. Correct? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip you mean like private follow-lists? Yeah I think they exist. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip why? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip check out blossy, a framework for building custom blossom servers that I think will suit you well. https://github.com/pippellia-btc/blossy npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip So many things are so broken... Yet it's amazing! npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip If you want I can give the REQ to reproduce it npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Same bug in wss://satsage.xyz and wss://nostrelites.org (which also is not responding to new REQs at all). Is nostrelites yours @nprofile…0hy6 ? #nevent1q…p0ql npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip hey @nprofile…j5ga, I found a bug in your relay. When sending REQs where there are many authors (like 100), it returns events that don't match the filters. https://blossom.primal.net/8917f446835d2eba7dfcc98ede58a78444782e00a8552ee2713b49274f202b7e.png For some reasons it seems to return jack dorsey's follow list even though one doesn't ask for it. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Thanks for sharing, this is really valuable npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Thanks you mate🙏 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip man this is really good! I would have multi input forms for multi codes, but other than that it's 🧑🍳 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Since social graph computation is off by default, you could give the option to use a WoT provider like @nprofile…y38p 👀 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip just wow npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip It's an interesting concept, but imo there are several issues: - First of all, I don't understand why calling PUT /mirror client side "doesn't scale". It actually scale very well because there is no body to stream, except for a tiny URL the server will use to download the blob. - the /list/<pubkey> endpoint is unrecommended, and this spec uses it - server talking through nostr relays makes blossom server require websocket support, which makes compliant implementation heavier The normal case for having duplication of your blob is: - calling PUT /media (or PUT /upload) for the blob you want to upload - you receive back the blob descriptor. From there you extract the URL - use the URL is all PUT /mirror requests across o all servers you want to duplicate Or, there are distributed servers implementation, where you upload on one and all receive a copy. It can be used as a single server, but internally it's multiple servers. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip What do you mean? Let's brainstorm together. I think we can make something awesome out of it npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…auzy bro, why haven't you asked me? ;) No seriously I built a very similar producer-consumer architecture for Vertex. Also, Vertex search ranks search similarity results using pagerank or personalized Pagerank. @nprofile…tckv @nprofile…u8g0 how can I make Vertex so private that it can be considered for integration in WN? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip This new wave of spam is inflating all @nprofile…kclk followers count. Mine increased by 500 in the last week, while the real followers reported by @nprofile…jku2 remained almost flat. https://blossom.primal.net/6c00fb4e6c865040dae13b3ecc4a9d851f2e19e60ef73e809174be95651b1023.jpg https://blossom.primal.net/5346c11679205561b221410011707c5e948bd1a763980d7493293df03886a52d.jpg npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip holy shit bro your memes are 🔥🤣 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…wszm yesterday you asked me if I saw much spam in @nprofile…kclk. Notifications are a bit spammy. https://blossom.primal.net/96b242e248ad5288a96875b0181fe6b8037f354ee3265ba1de70a7c7c0f75c8e.jpg npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Thanks! I really appreciate npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip It's actually very hard for a bad bot to get more than 10 idiots to follow it. So for most practical scenarios, it does and will work. Graperank, in the CURRENT form, is not contextual and so it would not be a meaningful improvement (if an improvement it is). If Graperank has evolved from the last time I checked, send me a link to the code. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip They are below the real one, and even below other (relevant) profiles. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip There is a list for that. It's not a mega vulnerability, but it's a vulnerability caused by the fact that blossom auth doesn't allow to scope the token to a particular audience. Nostr Web Tokens allow that, and are indeed very simple, as they are inspired by JSON Web Token which are commonly used for these type of things. The new blossom Auth spec (BUD-11) will just add the server tag, which is fine and fixes it. In my own framework I'll just support both. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip There is a potential of a replay attack with DELETEs, because tokens are not scoped to any particular server. Check blossom PRs npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Ferrari always wins tests. Mercedes is totally the favourite this year. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip ✨ Meet blossy The easiest way to make custom blossom servers come to life. Think blossom server that support ecash, WoT gating and more. All so easy to use that your LLM is going to one-shot it (probably 😝). https://blossom.primal.net/a0ac480a1ab2987ac7ce37c9a09720a013ef9c27c6328e3b4a9ba6ecbdf97f52.mp4 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip This is phenomenal UX #nevent1q…ga45 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip WTF I'm exited #nevent1q…9qjc npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yo Ver. In the Vertex relay, COUNTs only count tags that have been indexed. For the sake of efficiency I am not indexing "p" tags. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip No encryption specified in the spec, but it can use NIP-44, or being sent using White Noise. https://github.com/nostr-protocol/nips/blob/master/44.md npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Improving signing UX while fixing a replay attack in Blossom. 👋 Say hello to Nostr Web Tokens. https://blossom.primal.net/0c8193e58b189d6bf16d937f6957c95a4c8a4564d76638d15397108856c529ad.mp4 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip That's a good take. Yeah the best as you said would be to categorize these users, giving the option to remove from the stats the non-reputsble according to some threshold and ranking algorithm. Let's continue this convo on Signal npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Me: I think it's bad to display the scores in general. The default IMO should be not to display them You (quote): You want to use these scores in the background but pretend like you’re not? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip what is the best NIP-07 extention signer with multi key support? #asknostr I have been using alby but now it cleared all my pubkeys and I don't know how to re-import them from their nsecs npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip The DM example IS filtering. If you do it manually every time, based on the score you see on the screen, one could send you 1M DMs... What I am saying is that we can hide the numbers from the head of people, and place a threshold selection in settings and teach how to use it. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I am talking design and UX. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip sorting and filtering, not ranking npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip exactly npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I don't think scores on the forehead are a good idea. It's objectifying people, as if any algorithm is going to be 100% precise in capturing the very contextual notion of trust. But they don't have to be shown, they can simply be used to increase signal and decrease noise, magically, and in the background. #nevent1q…d5xa npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Another great article by @nprofile…u8g0, this time on the Web of Trust. Nostr is accomplishing what PGP could never do: establishing and maintaining a network of cryptographic identities that vouch for each other, thereby enabling the development of a reputation system. This is huge #naddr1qq…5t4t npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Hey @nprofile…waas, I can't access my profile ranking at /profiles.html https://blossom.primal.net/5ea3f7e8c3e5d814a6344384c1fb58c29b6df0503a60d3c1da3e302baacf6b50.png npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Hey @nprofile…a2cl the web version has bugs. https://blossom.primal.net/36597955ae9a4b0dc1e5a423f9ad4f0750edbef3e9a332b3e1064ac8e7ce42b9.png I got this status http 500 when trying to upload a video. (this image was uploaded fine idk). I had to post this from coracle because I couldn't even post from Primal npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Link farms are a problem for sure, but the way you are presenting it I think is erroneous. First of all, that targeted report should have never been used. Eric only follows the bot, and is not connected in any way to chuck, so why should Chuck's opinion overwrite his own? That's the opposite of personalized. Also, reports can be and have been weaponized: many YT communities have been "at war" against each other, meaning one community members would report the opposite YT channel in order to get it banned. It's tradeoffs all the way down. I agree that integrating other signals have the potential to improve the ranking, but at the same time it shouldn't create loopholes like the weaponization of reports. Can you please show the scores that Graperank (default config) would give in both scenarios? That way we can have a deeper and more technical conversation. The way I am dealing with this kind of link farms is at a earlier step, meanin when I am crawling. Eric, being reputable, by following the first bit would make me include in the database, but then this other bot won't include the others unless it receives many more follows. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip I just tried and it seems to be working fine @nprofile…x895. When I have credits it produces a response, when it doesn't it returns kind 7000. https://blossom.primal.net/cb8379eb0a48e0c7f0050e62f4d5073bdf16e8a97b76bdc4135d5a1d30be5df4.png npub.world and zapstore are both working as well. Please share the event request so I'll try to reproduce the issue. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip We agree with the fact that Nostr is too small right now. But email was small too, but the it grew and I imagine gmail and co. use some paid services or host then themselves internally. It's so much easier for a user to relate with Amethyst, the client they use, rather than with a service provider they don't know it exists, don't know or understand what it does. Or rather, it does things that are so fundamental they never had to pay for them. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Why do you think clients won't pay? Traditionally apps are made by companies and those companies pay for the services they use. What makes you say nostr is different in this regard? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip It would be great. I am skeptical whether the end user would actually pay for such low-level primitives that every social media app has built-in, but I'm open to discuss. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Yes it's personalized, but still, searching for "nostr", no profile has "nostr" in the name. I am pretty sure hazard follows Nostriga, or the Nostr report, or Nostr Band, or nostr build. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Analysing kind:3 is more than enough. The problem is the ranking, where is gives a lot of weight even though these people have the search term in the nip-05 only. It should give more weight to people whose name contain the search term. npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip are these lists public? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip Daniel's post doesn't seem to be accusing anyone. It says "take a closer look" npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip How about a new library that has only data structures, no dependencies, minimal utilities like a relay pool, Query, Subscribe, and very performant JSON marshalling / unmarshalling? Man I am so tempted to build this npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip First of all, thank you for this PR. As I've explained in my other message, I'm not sure if I'll accept it. Questions for you. How bad would it be for you to migrate your own DB to using a new library? Do you use many of the feature of go-nostr / nostrlib provides other that structure methods (Sign, CheckID...)? If so, which ones? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip cc @nprofile…9qsr. I ping you since you previously shared appreciation for rely. I think you'll love the updates npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip ✨ Rely v1 is here. Build simpler, more performant relays with your own business logic. You don't have to reinvent the wheel, you have to update your libs. https://blossom.primal.net/f7ec87bb76426a063c0c361259ec01eaf23fd5cd716ee42d2dd124b9a060df98.mp4 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip btw, what are you using Vertex for? Search? npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip > new user wants to try nostr > new user fills it's profile > "almost done", he says as it's typing > "ohhhh wait, I need 1 sat for publishing it with opentimething." > "what is a sat, and do I need opentimething?" > new user is confused. > new user goes back to toc tic npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip wow wtf. It's perfect. Bro you fine tuned the technique bro npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip wss://relay.vertexlab.io stores all the follow lists and kind 0s and mutelist for all *reputable* nostr users, meaning all users minus the spam. No creation dates, as we weren't around for most of the history of Nostr, and open time stamping is not popular npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip btcd seems a good candidate https://github.com/btcsuite/btcd npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip @nprofile…y38p is now easier to use, and it's free! https://blossom.primal.net/2adcf07f8811e1fee526dc1124387f9db9c0632b20021296aae61fed31987a4c.mp4 npub176p7sup477k5738qhxx0hk2n0cty2k5je5uvalzvkvwmw4tltmeqw7vgup pip 🚀 Introducing Vertex v2. 7+ weeks of the most un-sexy work, debugging, refactoring, simplifying and squeezing every bit of performance, @nprofile…y38p is now: - faster - simpler - more stable All to make WoT as simple as possible for builders. https://blossom.primal.net/23f1ece5992563347f0ad6d2f0f77c456dc6d74a5a1822791c7696c171483506.mp4