Skip to content
Melvin Carvalho edited this page May 14, 2023 · 1 revision

Nostr Social Graph

Welcome to the Nostr Social Graph wiki page. This page aims to document a decentralized, open-source social network, empowering users to take control of their data and interactions.

Overview

Nostr is a social networking protocol that's decentralized and open-source. It provides a platform for social interactions without the need for central servers or services. Users control their own data, and developers can build clients that interact with the Nostr network in various ways.

Important Links

Here are some essential links to get started with Nostr:

  1. Nostr NIP-39 External Identities in Profiles
  2. Nostr Directory
  3. Nostr Social Site

Account JSON Syntax

Each user in Nostr has an account represented by a JSON object. This object contains the user's public key, alias, biography, and avatar, among other things. Here is an example of what a user account might look like:

Example taken from nostr.social (work in progress)

{
  "@context": "http://schema.org",
  "@id": "",
  "@type": "Person",
  "name": "Melvin Carvalho",
  "image": "https://melvincarvalho.com/m.jpg",
  "description": "Mathematician and Web Developer 𓅦",
  "mainEntity": {
    "@context": "https://w3id.org/nostr/context",
    "@id": "nostr:pubkey:de7ecd1e2976a6adb2ffa5f4db81a7d812c8bb6698aa00dcf1e76adb55efd645",
    "following": [
      "nostr:pubkey:000000007baf73775eab7eed3e999d032e668d8398382f77d30b51ffc7f91582",
      "nostr:pubkey:6a02b7d5d5c1ceec3d0ad28dd71c4cfeebb6397b95fef5cd5032c9223a13d02a",
      "nostr:pubkey:f47d575f2c441f579acda9d032950f36c266961302e9e6c12c585f2c496724b2",
      "nostr:pubkey:27f186204dff66a612f584cc5e1ed20d8f43bd7b56706db19e56c59dc4d962ca",
      "nostr:pubkey:b81f6b275ebd27a8f04ffd05dc16bc9fa329cb8d9c464bc7bdbf5068818e03c0",
      "nostr:pubkey:03c3c9e9d399c250c71614f5e7760f8f8a5e4d5722e446a00a2678f038e2a655"
    ],
    "relay": [
      {
        "@id": "wss://relay.damus.io/",
        "mode": [
          "read",
          "write"
        ]
      },
      {
        "@id": "wss://nostr-pub.wellorder.net/",
        "mode": [
          "read",
          "write"
        ]
      },
    ],
    "name": "Melvin Carvalho",
    "picture": "https://melvincarvalho.com/m.jpg",
    "website": "https://melvincarvalho.com/",
    "nip05": "_@melvincarvalho.com",
    "about": "Mathematician and Web Developer 𓅦",
    "banner": "https://void.cat/d/KhHoehWtdyXFjmDh1NxKWZ",
    "display_name": "melvincarvalho",
    "identities": [
      {
        "type": "github",
        "claim": "melvincarvalho",
        "proof": "https://github.com/melvincarvalho"
      }
    ],
    "lud16": "melvincarvalho@ln.tips"
  }
}

For more details on account JSON syntax, please refer to the Nostr Specification.

Proofs

In Nostr, proofs are crucial to maintain the integrity of the network. A proof is a cryptographic signature that proves that a user authored a specific message. This ensures that no one else can forge messages on behalf of the user.

Interoperability

Nostr's open nature enables it to interoperate with other open protocols like Mastodon. This allows users to interact across platforms, further decentralizing social networking.

Proof of Publication

Proof of Publication is a mechanism that provides Sybil resistance in the Nostr network. It is a unique approach to ensure that a user cannot create multiple identities to manipulate the network. Users prove their authenticity by publishing messages that are timestamped and signed, ensuring that each user's identity is unique and verifiable.


We encourage developers and users alike to contribute to this exciting project. With your help, we can create a truly decentralized social network that puts users first. If you have any questions or ideas, don't hesitate to reach out or contribute on GitHub.

Clone this wiki locally