Decentralized LinkTree on Sui Network with Encrypted Messaging & NFT Integration
Built for the Walrus Hackathon 2025.
SeaLink is a next-generation decentralized social profile platform tailored for the Sui ecosystem. It leverages Walrus for decentralized storage and Sui Move smart contracts to give users full ownership of their data, links, and interactions.
(If you have a banner, place it here, otherwise this is a placeholder)
- Sui-Native Profiles: Your profile is an NFT-like object on the Sui blockchain.
- Unstoppable: No central server can ban you or delete your links.
- SuiNS Integration: (Planned) Link your
.suinames directly to your specialized SeaLink profile.
- Decentralized Hosting: All profile metadata (bios, images, themes) and site assets are stored on Walrus, ensuring censorship resistance and high availability.
- Cross-Browser Sync: Utilizes Walrus Sites technology to render profiles directly from decentralized storage, accessible across any browser via aggregators.
- Cost-Efficient: Leverages Walrus's efficient blob storage for handling rich media (images, videos).
- Anonymous & Secure: Send end-to-end encrypted messages to any SeaLink profile owner.
- Walrus Seal: Uses Walrus Seal Blob Storage to store encrypted messages off-chain securely. Only the recipient's private key can decrypt the content.
- Censorship Resistant: Messages endure as long as the Walrus storage guarantees, without central database oversight.
- Showcase: Display your Sui NFTs directly on your LinkTree profile.
- Trade: (Beta) Basic marketplace features allowing users to list and trade NFTs directly from their profile interface.
- Frontend: React 18, TypeScript, Vite
- Smart Contracts: Sui Move
- Storage: Walrus (Testnet)
- Integration:
@mysten/dapp-kit,@mysten/sui
seaLink-7/
├── contracts/ # Sui Move Smart Contracts
├── frontend2/ # React Web Application
│ ├── src/
│ │ ├── components/ # Modular UI Components
│ │ ├── hooks/ # Custom React Hooks (useProfile, etc.)
│ │ ├── config/ # Sui & Walrus Configuration
│ │ └── utils/ # Walrus API & Encryption Utilities
├── walrus/ # Walrus Sites Configuration & Resources
└── README.md # This file
- Node.js (v18 or higher)
- Sui Wallet (Browser Extension)
- Sui CLI (Optional, for contract deployment)
Clone the repository and install dependencies:
cd frontend2
npm installMock Mode (Default): The application runs in Mock Mode by default. This allows you to explore the UI, create profiles, and test messaging without needing to deploy contracts or spend gas.
- Active: When
VITE_PACKAGE_IDis missing or set to zero address insrc/config/sui.ts.
Real On-Chain Mode: To connect to the real Sui network (Testnet/Mainnet):
- Deploy the contracts in
contracts/to Sui Testnet. - Get the
Package IDandRegistry IDfrom the deployment output. - Update
frontend2/src/config/sui.tsOR create a.envfile infrontend2/:
VITE_PACKAGE_ID=0xYourPackageId...
VITE_REGISTRY_ID=0xYourRegistryId...Start the development server:
npm run devOpen http://localhost:5173 in your browser.
How to verify the main integrations:
- Connect your Sui Wallet.
- Go to the "Create Profile" tab.
- Fill in details and click Create.
- Verify: Open Console (F12). Look for logs indicating
📤 Uploading profile to Walrus...and✅ Profile saved locally with Walrus blob ID....
- Go to "Messages" or "Send Message".
- Select a recipient (e.g., "Alice (Demo)").
- Type a message, attach a file (optional), and check "Anonymous".
- Click Send.
- Verify: Console logs should show
📤 Uploading encrypted message to Walrus Seal.... If connected to the same account as the recipient (or in Mock Mode), you will see the message appear in the Inbox.
MIT License. Open source and built for the community.