v0.1.0 Live on Solana Devnet

The Open Social
Protocol.

Tribe Protocol is a decentralized social protocol built on Solana. Fully owned identity, portable social graph, and instant peer-to-peer gossip.

12
Solana programs
100%
Open source
<50ms
Follow confirms
MIT
License

What is Tribe, exactly?

Tribe is a decentralized social protocol on Solana — like email, but for social. Anyone can run a node, build a client, or read the source. No company controls who can post or who can see what.

You own your identity

Your account is a Solana keypair — no email, no password, no central authority that can deactivate you. Your TID and all your content go wherever you go.

No single server

Content lives across a mesh of independent hubs that gossip with each other. If one goes down, the others still have the data. Run your own hub on a $5 VPS or a Raspberry Pi.

Fork the client

The protocol is open and permissionless. Build a different UI, a mobile app, a CLI, or a bot — they all speak the same signed-message format and talk to the same hubs.

Key concepts.

Six architectural building blocks that explain how the whole protocol fits together. Read these once and the design will click.

TID (Tribe ID)

A unique auto-incrementing 64-bit numeric identity registered on Solana. Each TID has a custody wallet (daily signatures) and a recovery wallet (reclaims custody keys if lost). Just keys you own.

App Keys

Scoped ed25519 signing keys delegated by your TID. Your main wallet stays secure offline; the app signs daily actions on your device. Keys can be rotated, revoked, or scoped with granular permissions.

Signed Messages

Every single action — posts, likes, follows, DM ciphertexts, poll votes — is a protobuf envelope signed with your device app key and hashed with BLAKE3. Hubs validate them cryptographically.

Social Graph

A custom PDA-per-relationship follow graph design on Solana. Highly efficient, O(1) checks, unlimited follows, and rent reclamation. The most scalable on-chain social graph.

Ephemeral Rollup

An optimistic sequencer that confirms follow/unfollow intents instantly (<50ms), then batches them into Solana L1 instructions every 10 seconds. Real-time feel with L1 finality.

.tribe Usernames

Human-readable, decentralized names bound to TIDs. Registered on-chain, transferrable, and directly embedded into the namespace with annual renewals to prevent squatting.

How a message travels.

From cryptographic signatures on a local device to the distributed peer network — four steps, zero central servers.

Step 01

User signs a message

The app builds a MessageData payload (type, TID, timestamp, body). The ed25519 app key signs the BLAKE3 hash locally on device. This produces a TribeMessage envelope.

Step 02

Hub validates and stores

The hub fetches the TID's app key record from Solana, verifies the ed25519 signature, checks the BLAKE3 hash, and writes the envelope to Postgres.

Step 03

Hub gossips to peers

Every 5 seconds each hub broadcasts 'have' frames (hashes of recent messages). Peer hubs reply with 'want' for any they're missing. Full envelopes flow back.

Step 04

Clients get real-time updates

Apps subscribe to the hub WebSocket (/v1/ws). New validated messages are pushed immediately — no polling, no central broker.

Architecture.

Five decoupled layers. Each is a separate open-source repository with its own setup. Swap any layer — the contracts between them are cryptographically signed envelopes and public endpoints.

Applications

tribeapp.wtf · tribe-app · tribe-ios · tribe-insta

Web clients (Next.js) and native SwiftUI iOS apps — a Twitter-shaped one (tribe-ios) and an Instagram-shaped one (tribe-insta). All build signed envelopes locally; the hub never receives plaintext intent.

Shared Swift Core

tribe-core-swift

Byte-for-byte protocol code consumed by both iOS apps — BLAKE3, NaCl box DM crypto, ed25519 envelope signing, BIP39, Solana HD derivation, and the backup file format.

TypeScript SDK

tribe-sdk

Single entry-point client covering identity, social graph, tweets, DMs, channels, bookmarks, polls, events, tasks, crowdfunds, tips, search, karma, and notifications. Published as @tribe-protocol/sdk.

Decentralized Hub

tribe-hub

Fastify + Postgres node that stores validated signed envelopes, indexes Solana events via WebSocket subscription + startup backfill, and syncs with peers over a pull-based gossip protocol.

Ephemeral Rollup Sequencer

tribe-er-server

Accepts follow/unfollow intents signed by custody wallets, confirms instantly (optimistic), batches follow_delegated / unfollow_delegated instructions, and settles to L1 every 10 seconds.

Solana Programs (12)

tribe-protocol

Anchor programs for identity (TID, app keys, usernames), social graph with ER delegation, hub discovery, tips, crowdfunds, tasks, channel ownership, karma, polls, and events.

tribe-protocol · 12 Anchor programs on Solana

The on-chain layer.

Every program is modular and independently deployed. Identity registries, PDA-per-relationship social graph, tip receipts, and trustless karma verification — each has its own Anchor program workspace.

tid-registry

Mints TIDs, tracks custody + recovery addresses

app-key-registry

Registers, revokes, and rotates app signing keys

username-registry

Human-readable .tribe usernames bound to TIDs

social-graph

PDA-per-relationship follow graph + ER delegation

hub-registry

On-chain hub discovery — URL, gossip key, heartbeat

tip-registry

On-chain tip receipts with SOL transfer in one ix

crowdfund-registry

Campaign escrow — pledge, claim, or refund

task-registry

Local tasks with optional reward escrow

channel-registry

First-registration ownership of channel slugs

karma-registry

Trustless karma from on-chain tip + task proofs

poll-registry

One-vote-per-TID polls with 8-slot tally

event-registry

Events with one-RSVP-per-TID and lat/lng

CLI Node Setup

Run a Node in Seconds.

Join the distributed network and host your own piece of the protocol. The Homebrew formula installs the hub + ER sequencer, sets up Postgres, and auto-generates a unique hub ID so two laptops never collide.

# Tap and install the hub + ER stack
brew tap chaalpritam/tribe
brew install --HEAD tribe

# Boot Docker services and gossip in
tribe start

# Check peers and sync coverage
tribe peers
tribe sync

# Optional: install the demo UI
brew install --HEAD tribe-app && tribe-app
tribe-sdk · NPM package

Start building in minutes.

One TypeScript client for the whole protocol — identity, social graph, tweets, encrypted DMs, channels, bookmarks, polls, events, tasks, crowdfunds, tips, stories, search, and karma.

import { TribeClient } from '@tribe-protocol/sdk';

const tribe = TribeClient.forDevnet(provider);

// Register a TID on Solana
const { tid } = await tribe.identity.tid.register(recovery);

// Publish a signed post
await tribe.tweets.publish(tid, "gm from the mesh", appKey);

// Follow someone (instant via Ephemeral Rollup)
await tribe.social.follow(tid, targetTid);