Skip to content

Instantly share code, notes, and snippets.

@Dolu89
Last active January 12, 2021 18:53
Show Gist options
  • Save Dolu89/1c8306004e6ad9b2fcbdcd1f87beb37e to your computer and use it in GitHub Desktop.
Save Dolu89/1c8306004e6ad9b2fcbdcd1f87beb37e to your computer and use it in GitHub Desktop.
[Nostr] - New nip proof of account

NIP-XX

Proof of account protocol

draft mandatory

  1. Users can prove they own some accounts by publishing an event to the relays proof:<{pubkey}, {type}, {url}>
  • {pubkey} is a pubkey, as a hex string
  • {type} is a string with a single letter, which can be:
    • "t" : for twitter
    • "g" : for github
  • {url} is the url of the proof

Example : proof:{"pubkey":"19f....5dg", "type":"t", "url":"https://twitter.com/xxx/status/xxxxxxx"}

  1. Relay store the proof.

  2. Relay send back the the result to the client. Client has to validate the proof.

Proof content : TODO

@fiatjaf
Copy link

fiatjaf commented Jan 12, 2021

We cannot expect relays to validate anything. We can say they should validate, but ultimately the client must validate it by itself or ignore these proofs.

@Dolu89
Copy link
Author

Dolu89 commented Jan 12, 2021

We cannot expect relays to validate anything. We can say they should validate, but ultimately the client must validate it by itself or ignore these proofs.

I'm agree with that. I'll remove it. I'm just afraid on one thing. Client will have a lot of queries to do to validate the proof. But it should be ok

@fiatjaf
Copy link

fiatjaf commented Jan 12, 2021

It's not very ok, I think, but some clients may still choose to do it. Or they may choose to only do it with people they're browsing specifically and directly.

Also it's much easier to do this if you're doing it from a native client instead of a web client. Maybe it's not even possible to do it from a web client depending on what you want to verify.

Another thing that could be done is clients that come bundled with a special server (not a relay) that helps them do these expensive operations and keeps verification states and other goodies (of course, all trusted).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment