Replying to Avatar paul keating

I’ve never felt right about creating an account for someone and then just giving them an nsec.. here’s the (possible) solution:

here's how the flow works for gifting. "Gift Flow Explained

1. Gift Creation (by you, the gifter)

• You select posts/articles on /gift

• Data is stored in the database with status pending

• No keypair is created yet

2. Worker Processing (server-side)

• Worker picks up pending gifts

• Generates temporary/ephemeral keypair (generate_temp_keypair() in worker.py:754)

• Downloads media from Instagram/TikTok

• Uploads to Blossom using the temp keypair for authentication (kind 24242 auth events)

• Gift status changes to ready

Key insight: Blossom is content-addressed — URLs are based on the SHA-256 hash of the file content. So the same file always gets the same URL (blossom.primal.net/) regardless of who uploaded it. The temp keypair is just for upload authorization, not for identity.

3. Gift Claiming (recipient’s browser)

When the recipient opens the claim link:

• A brand new random keypair is generated client-side in their browser:

const privateKeyBytes = crypto.getRandomValues(new Uint8Array(32));

• This happens at gift-claim/[token]/+page.svelte:118–130

• The keypair never leaves their browser — it’s not sent to your server

• Posts are signed and published to Nostr relays using this keypair

• Recipient is shown their nsec and prompted to save it

Your Access

Correct — you (the owner of ownyourposts.com) have zero access to the recipient’s private key because:

1. It’s generated with crypto.getRandomValues() in the browser

2. It’s never transmitted to the server

3. Only the signed Nostr events go to relays (public data)

The ephemeral worker keypair is discarded after upload — it was only used to authorize the Blossom upload, not to establish any ongoing identity.

Dude this is so illegal, good energy but please, yo, let's grow legally. Or mostly legally!

Reply to this note

Please Login to reply.

Discussion

Good point haha :modCheck:

Needs NIP-05 integrated verification based off the source profile data before unlocking the ability for someone to impersonate or clone a profile without validating custody.

Otherwise this looks pretty bitchin' - I even have a profile I can try this on that might be fun.

Nah, it's flat out Napster 2.0.

Instagram owns the data, as per their terms. It's up to Meta not the user.

Better to encourage people to just start again.

True true true. That is one thing about the pubkey is it is binding and traceable.

Sure, but if it ends up on Primal's relay then Meta can sue Primal and will easily win. Especially if a Primal employee is behind it. No fair use defence there. Or just tell Apple and Apple will remove Primal for not having the appropriate systemic moderation tools.

This will not happen because all of Nostr is far too small for most on the Meta legal team to have even heard of what Nostr is, let alone Primal.

Still though, not a good idea. People need to start again.

Something failed here, so close!

Lmk if you try again! Sometimes you literally have to press twice lol.

Gonna go check in on it.

Realizing that this is working on mobile and am getting further already likely some filtering on my end - disregard and thanks for building this!

Failed to create migration still on mobile perhaps not meant to be?

Are you trying just twitter? Will try to repro.

Ya twitter didn’t work for me. Will ping you when it’s fixed.

Yes this was with twitter that's my main test for now.. Thanks! There are a few profiles where I wonder how good they would do in a low-algo zone like this. It is becoming pretty clear how much of a walled garden X has become...

Is there any way to confirm only the account holder is able to unlock the data? Seems like that would help with end user confidence.

nostr:nprofile1qyxhwumn8ghj7mn0wvhxcmmvqyfhwumn8ghj7mn0wd68yt3cxumnwtnrdqqzqaf4zg3xgl9xyn8pvjch5gjkd2nhf53ldqzd2kla9a3ssug0mhx5xwa65j it's working smooth at the moment now if you're doing a standard migration. figuring out an issue with logging in with nostr now. Lmk if it works!

its alive! nice