Shyft.lol
Decentralized social platform built on Solana with end-to-end encrypted messaging, creator tokens powered by Bags, and a fully gasless experience where users never pay a cent.
Install / Use
/learn @chandm1213/Shyft.lolREADME
Shyft
A decentralized social platform built on Solana with end-to-end encrypted messaging, creator tokens powered by Bags, and a fully gasless experience where users never pay a cent.
What is Shyft?
Shyft is a fully on-chain social platform. Every post, comment, like, follow, and chat message is a Solana transaction — stored permanently on-chain with no centralized database. Users sign in with their X account, get an instant embedded wallet through Privy, and start using the platform immediately. No seed phrases. No gas fees. No SOL required.
Creators can launch personal tokens directly inside Shyft using the Bags SDK. Fans trade them in-app, and every trade generates revenue that flows back through fee sharing.
Features
Social
- On-chain profiles, posts, comments, reactions, reposts, and follows
- Real-time feed with auto-refresh and live engagement counters
- Clickable profiles and hover cards (like X/Twitter)
- Image uploads, GIF support, YouTube embeds, rich link previews
Messaging
- End-to-end encrypted 1:1 chat using NaCl Box (X25519 + XSalsa20-Poly1305)
- Key exchange and ciphertext stored on-chain — nobody can read your messages except you and the recipient
- In-chat SOL payments
Creator Tokens
- Launch personal tokens via Bags SDK with bonding curve pricing
- In-app trading — buy and sell creator tokens without leaving Shyft
- Fee sharing — creators earn passively as their community trades
- Earnings dashboard with claim flow
Gasless UX
- Treasury-sponsored transactions — platform pays all gas fees and account rent
- Users never need to own, buy, or hold any SOL
- Privy embedded wallets with silent signing — no wallet popups
Architecture
Frontend (Next.js 16 · React 19 · Tailwind CSS 4)
↓
ShyftClient (src/lib/program.ts)
↓ ↓
Treasury Sponsorship API Bags SDK (Mainnet)
/api/sponsor-tx Token launch, trade, earnings
↓ ↓
Solana Devnet Solana Mainnet
Anchor Program Bags Protocol
| Layer | Technology | |-------|-----------| | Frontend | Next.js 16, React 19, Tailwind CSS 4, Zustand | | Auth | Privy embedded wallets (Twitter OAuth, email, Google) | | On-chain Program | Rust / Anchor, deployed on Solana Devnet | | Encryption | NaCl Box via tweetnacl (X25519 + XSalsa20-Poly1305) | | Creator Tokens | @bagsfm/bags-sdk on Solana Mainnet | | RPC | Helius | | Hosting | Vercel |
On-Chain Program
Program ID: EEnouVLAoQGMEbrypEhP3Ct5RgCViCWG4n1nCZNwMxjQ
All social data is stored as Solana PDAs (Program Derived Addresses). No database.
| Instruction | What It Does |
|------------|-------------|
| create_profile | Create an on-chain profile with username, bio, avatar |
| update_profile | Update display name, bio, avatar, banner |
| create_post | Publish a post on-chain |
| like_post | Like a post (increments on-chain counter) |
| create_comment | Comment on a post |
| react_to_post | React with emoji (❤️ 🔥 🚀 😂 👏 💡) |
| follow_user / unfollow_user | On-chain follow graph |
| create_chat | Initialize an encrypted chat channel |
| send_message | Send an E2E encrypted message on-chain |
Every instruction has a separate payer signer so the treasury can cover rent while the user only signs to prove identity.
Treasury Sponsorship
Users never pay anything. Here's how:
- User signs in → Privy creates an embedded Solana wallet (0 SOL balance)
- User takes an action (post, chat, follow, etc.)
- Frontend builds the transaction with
feePayer = treasury - User's wallet signs to prove identity
- Transaction is sent to
/api/sponsor-txwhere the treasury co-signs - Treasury pays both the gas fee (~0.000005 SOL) and account rent (~0.003 SOL)
Cost per user: ~$0.001 at current SOL prices.
E2E Encrypted Chat
| Component | Technology | |-----------|-----------| | Key Derivation | Wallet signs a deterministic message → SHA-256 → X25519 keypair | | Key Exchange | Public keys published on-chain as the first message in each chat | | Encryption | NaCl Box (X25519-XSalsa20-Poly1305) with random 24-byte nonces | | Storage | Ciphertext stored on-chain as Solana PDAs |
Each chat pair has a unique shared secret derived from Diffie-Hellman. Alice's chat with Bob uses a different shared secret than Alice's chat with Carol — full isolation between conversations.
Getting Started
Prerequisites
- Node.js 18+
- Rust + Anchor CLI (for program development)
- Solana CLI
Install & Run
git clone https://github.com/chandm1213/Shyft.lol.git
cd Shyft.lol
npm install
Create .env.local:
NEXT_PUBLIC_HELIUS_API_KEY=your_helius_key
HELIUS_DEVNET_RPC=https://devnet.helius-rpc.com/?api-key=your_key
TREASURY_PRIVATE_KEY=[your_treasury_keypair_bytes]
Run locally:
npm run dev
Build & Deploy the Solana Program
anchor build
anchor deploy --provider.cluster devnet
Deploy to Vercel
vercel --prod
Project Structure
├── programs/shadowspace/ Anchor/Rust on-chain program
│ └── src/lib.rs All instructions and account structs
├── src/
│ ├── app/ Next.js app router (pages, API routes)
│ ├── components/ React components (Feed, Chat, Profile, Tokens, etc.)
│ ├── contexts/ Privy wallet provider
│ ├── hooks/ Custom hooks (useProgram, useSessionKey, usePrivatePayment)
│ ├── lib/
│ │ ├── program.ts ShyftClient — all on-chain interactions
│ │ ├── encryption.ts NaCl Box E2E encryption utilities
│ │ ├── bags.ts Bags SDK wrapper (launch, trade, earnings)
│ │ ├── store.ts Zustand global state
│ │ └── idl.json Anchor IDL
│ └── types/ TypeScript types
├── target/deploy/ Compiled Solana program (.so)
└── public/ Static assets
Tech Stack
| | | |---|---| | Blockchain | Solana (Devnet for social, Mainnet for tokens) | | Smart Contracts | Rust, Anchor Framework | | Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS 4 | | Auth | Privy (Twitter OAuth, email, Google, embedded wallets) | | Tokens | Bags SDK (@bagsfm/bags-sdk) | | Encryption | tweetnacl (NaCl Box) | | RPC | Helius | | State | Zustand | | Hosting | Vercel |
Links
- Live: shyft.lol
- X: @Shyft_lol
- Program:
EEnouVLAoQGMEbrypEhP3Ct5RgCViCWG4n1nCZNwMxjQ
<p align="center"> Built on Solana · Powered by Bags · Secured by NaCl </p>
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
