Project Info
Inspiration
Meeting people at hackathons can be awkward β we wanted to make it fun, rewarding, and on-chain.
What it does
Gamifies networking: complete quests, share photos, and earn SUI rewards for meeting new people.
How we built it
Built with Next.js, Sui SDK, Move contracts, and IPFS for storing photos. Integrated Slush Wallets for smooth sponsored transactions and future reward automation.
Challenges we ran into
Originally planned to use Walrus, but it required too many WAL tokens and the faucet was unreliable β we couldnβt upload even one image. Switched to IPFS for speed and reliability. Accomplishments we're proud of Deployed a working on-chain reward pool, integrated Slush Wallets for sponsor-backed payouts, and made every user activity verifiable on-chain.
What we learned
How to build with the Sui Move framework, use sponsored transactions, and design on-chain UX that feels like a normal social app.
What's next
for Icebreaker Enable full reward verification, let sponsors create dynamic quests, move to mainnet, and power networking at real hackathons with on-chain social proofs.
Icebreaker π§
Break the ice, make new friends, and earn SUI for doing it.
Icebreaker is a social app where you can connect with others at events. Share photos, complete fun quests, and earn SUI rewards for every interaction!
What is Icebreaker?
Icebreaker helps you meet new people at events through photo sharing, quests, and challenges. Every time you participate, you earn SUI rewards (0.003 SUI per activity). It's gamified networking that makes meeting new people fun and rewarding!
π Features
- Photo Sharing: Take and share photos with the community
- Quests & Challenges: Complete tasks to earn points and SUI
- Real Rewards: Get 0.003 SUI for every upload (paid from our reward pool)
- Live Escrow Pool Balance: See exactly how much SUI is left in the reward pool
- Leaderboards: Track your points and level up
π° Deployed Contracts & Pool Information
Escrow Pool Contract
- Package ID:
0xcc55d1b3e2b8f5ad42aeba278ac680fdcc7d0ccb602971346e60177ca7d9b761 - Network: Sui Testnet
- Type: Shared Object (Pool for reward distribution)
Reward Pool Object
- Object ID:
0x94bd6487e22a711507bd85144aca335e34996962065bbe9189c7aa7ac4c7447e - Current Balance: Check the live balance in the app navigation
- Purpose: Holds SUI for automatic rewards (0.003 SUI per upload)
Sponsor Wallet
- Address:
0x29c9ea26349d4fcd9cc41620fb29d5c7bcc1da93577887fb1981681212cf66d1 - Purpose: Funded wallet used to initialize and maintain the pool
π How to Add More Money to the Pool
You can add more SUI to the reward pool using one of these methods:
Option 1: Using Sui CLI
# Call the deposit_shared function directly
sui client call \
--package 0xcc55d1b3e2b8f5ad42aeba278ac680fdcc7d0ccb602971346e60177ca7d9b761 \
--module escrow_pool \
--function deposit_shared \
--args 0x94bd6487e22a711507bd85144aca335e34996962065bbe9189c7aa7ac4c7447e <YOUR_COIN_OBJECT_ID> \
--gas-budget 10000000
Option 2: Send SUI to the Pool Object
- Send SUI coins to the pool object address using any Sui wallet
- The pool will automatically accept and store them
ποΈ Architecture
- Frontend: Next.js 15 with TypeScript
- Blockchain: Sui Network (Testnet)
- Smart Contracts: Move language
- Rewards: Automated via escrow pool smart contract
- Storage: IPFS
π¦ Project Structure
icebreaker/
βββ contracts/ # Sui Move smart contracts
β βββ sources/
β β βββ escrow_pool.move
β βββ Move.toml
βββ app/ # Next.js app directory
β βββ api/
β β βββ transfer-sui/ # Reward distribution endpoint
β β βββ pool-balance/ # Pool balance checker
β βββ upload/ # Photo upload page
β βββ ...
βββ components/ # React components
βββ scripts/ # Deployment scripts
π Getting Started
Prerequisites
- Node.js 18+
- pnpm
- Sui CLI (for deployment)
Setup
- Clone and install:
git clone <repo>
cd icebreaker
pnpm install
- Configure environment:
cp .env.example .env
# Add your sponsor wallet and pool IDs
- Run the app:
pnpm dev
Visit http://localhost:3000 and start earning SUI!
π― How Rewards Work
- User uploads a photo/participates in activity
- App calls the escrow pool smart contract
- Contract withdraws 0.003 SUI from the pool
- SUI is transferred to the user's wallet
- Pool balance updates in real-time
- Everyone can see how much SUI is left
π Security
- Pool is password-protected
- Only authorized withdrawals via sponsor wallet
- All transactions on-chain and transparent
- No private keys stored in the app
π€ Built For
This project was built for a hackathon as a proof of concept for:
- Gamified social networking
- Automated micro-rewards via smart contracts
- Transparent reward distribution
- On-chain pool management
Analysis
View
Metric
- 10
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- JavaScriptIn code
- Next.jsIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
6 of 6 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
480 KB
Source files
89
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Pravesh-mansharamani/icebreaker
113 files Β· 4.0 MB Β· @ 2b20083
Structure
Interface
69 files Β· 61%Screens, components and styles rendered to the user.
+4 moreAPI & routing
5 files Β· 4%Request entry points: routes, handlers and controllers.
Application logic
11 files Β· 10%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- TypeScript50%
- YAML47%
- CSS2%
- Markdown1%
- JavaScript0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm Β· 69- @hookform/resolvers
- @mysten/dapp-kit
- @mysten/slush-wallet
- @mysten/sui
- @mysten/sui.js
- @mysten/wallet-kit
- @mysten/walrus
- @radix-ui/react-accordion
- @radix-ui/react-alert-dialog
- @radix-ui/react-aspect-ratio
- @radix-ui/react-avatar
- @radix-ui/react-checkbox
- @radix-ui/react-collapsible
- @radix-ui/react-context-menu
- @radix-ui/react-dialog
- @radix-ui/react-dropdown-menu
- @radix-ui/react-hover-card
- @radix-ui/react-label
- +51 more
Declared in the repositoryβs manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This projectβs features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.