💡Nabi Overview
Last updated
Last updated
Nabi Protocol enables creators to own and control their connections and interactions with their communities through a decentralized social graph, giving them the freedom to form meaningful relationships on their own terms.
To achieve this, users can use a TON Wallet to first create a Nabi Profile through which they can then connect with other users and interact with various dApps built on the Nabi Protocol. A user's Nabi Profile also acts as a web3 digital identity with credentials, activities, connections and a reputation, which helps add colour and personality to a wallet address hash.
Nabi Protocol aims to shift users away from the conventional web2 social media to the new decentralized web3 social graph using TON blockchain technology.
Through the TON blockchain, Nabi Protocol stores users' activity, network and interactions verifiably on-chain. Additionally, Nabi Protocol can also seamlessly expose Telegram users to the web3 social ecosystem where they can properly own their data and use it on any Nabi-built application.
Publish to the profile. Publication types are:
Post: A piece of content consisting of both text and images.
Comment: A standard piece of content with a pointer to another publication.
Since comments include a pointer, this executes the pointed publication's "reference module" logic, if any.
Mirror: The equivalent of a "share" in a traditional sense, having no content but a pointer to another publication.
Set the profile's "follow module":
This whitelisted logic contract determines the logic that must be executed when a Nabi Profile attempts to follow the given profile.
Set the profile's image URI
Follow profiles:
This executes the following profile's "follow module" logic, if any.
This mints the follower profile a "follow NFT" unique to the following profile.
Follow NFTs have a custom URI set by profile owners.
Collect publications:
This executes any logic in the publication's "collect module."
If the publication is a mirror, this is executed on the originally mirrored publication with a referral.
This mints the collecting profile a "collect NFT" unique to that collected publication.
Create and mint Nabi Badges:
This allows users to create custom badges (NFTs) that be can distributed to or minted by other profiles.
Nabi Protocol has three instances of tokenization in the form of NFTs, implementing the Tact nft-standard-template which adheres to the TON NFT Standard.
NFTs on TON are implemented differently from the EVM ERC721 NFT standard where all NFT items exist as mappings of the item ID to the respective owner address in a single smart contract. Conversely, TVM smart contract best practices involve sharding, which means that the NFT Collection and each NFT Item exist distinctly and independently as their own smart contract. NabiHub can query the address of a specific NabiProfile using the initialization parameters of the target contract and each NabiProfile (NFT Item) contract has a pointer to the NabiHub (NFT Collection) contract address.
The NabiHub
contract is the core entry point for all interactions within the Nabi Protocol ecosystem and serves as the NFT collection that mints and deploys NabiProfile
NFT items.
Upon a profile's first follow, a FollowNFTCollection
contract is deployed, unique to the profile; this is the NFT collection contract that deploys and mints FollowNFTItem
contracts to follower profiles.
Lastly, upon a publication's first collect, a CollectNFTCollection
contract is deployed, unique to the publication; this is the NFT collection contract that deploys and mints CollectNFTItem
contracts to collector profiles.
Note that follow and collect NFT items are owned by a user's Nabi Profile and not his wallet. Withdraw capabilities are built into NabiHub
to allow users to withdraw any NFT items owned by their profile to their wallet, such that these NFT items can be listed on marketplaces or transferred as they please.
Modularity is at the core of the Nabi Protocol. Everything is built with community expansion and the continued development of new, innovative features in mind.
Modules are standalone, governance-whitelisted contracts that adhere to a specific interface. They hold state and are unlimited in potential scope beyond adhering to the interface.
Web3 is all about decentralization, your data, you own it!
Only content URIs of profile/publication data are stored on-chain. The actual files are stored in peer-to-peer storage — IPFS or Arweave.
Graphql + postgres?