project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

ShowUp 🤝

Turn group plans into real meetups with crypto stakes, verified check-ins & shared memories

ShowUp 🤝

Created At

ETHGlobal Cannes

Winner of

Zircuit

Zircuit - Best App Idea

Project Description

ShowUp “Bring your group plans to life — with crypto-powered commitment, proof-of-attendance, and shared memories.”

🔍 The Problem Most group plans die in WhatsApp or Telegram group chats — lack of commitment, last-minute cancellations, and no accountability. There’s no easy way to ensure people will actually show up, and no shared proof that the plan happened.

🚀 The Solution: ShowUp Bot ShowUp is a Telegram bot that transforms any group chat into a decentralized planning, staking, and attendance-tracking system — powered by Web3.

With ShowUp, you can:

Create events right inside Telegram using /create_event

Let members vote & commit by staking tokens

Automatically verify attendance with GPS and photo

Distribute rewards to attendees from the stake pool

Generate an AI-based memory poster after the event

Store memories on Walrus (decentralized storage)

🔐 How It Works Create an Event In a Telegram group, a user runs /create_event, setting the title, date, location, and stake amount.

Auto Wallet Generation Users who don’t have wallets simply run /create_wallet. The bot creates a wallet tied to their Telegram ID, no seed phrase or extension needed.

Stake & Join Group members stake tokens (on Flow or Zircuit) to commit to attending. This stake is held in a smart contract.

Day of Event: Proof of Attendance On the event day, users receive reminders. They send their live location and group photo via the bot. The bot verifies their presence at the planned spot.

Finalize & Reward The event creator runs /finalize_event. The contract checks who attended and redistributes the stake to them. Absentees lose their stake.

Memory Poster Creation The first uploaded group photo is enhanced by an AI model (like DALL·E 3), and a memory poster is generated and stored on Walrus — creating a permanent on-chain artifact of the event.

🧠 Key Tech Stack Zircuit (L2): Fast, gas-efficient smart contracts for staking, attendance logic, and payouts.

Flow: NFT minting for events, high-throughput support for on-chain memory posters or user reputations.

Walrus: Decentralized, erasure-coded storage for rich media like event photos and AI-generated posters.

🌟 What Makes This Unique Proof-of-Location & Attendance: Combines GPS + photo + optional AI verification to prove real-world presence.

No Web3 Knowledge Needed: Wallets are auto-created. Users only interact with Telegram commands. Fully abstracted UX.

Reward Mechanism: A game-like incentive where only attendees get their stake (or more).

Memory Layer: Each event creates a nostalgic, AI-generated poster stored permanently.

Multichain Support: Users choose Flow or Zircuit; future expansion includes cross-chain abstraction.

How it's Made

🛠️ How It’s Made — Under the Hood of ShowUp ShowUp was built to live inside Telegram, while seamlessly interacting with multiple Web3 layers to manage staking, event attendance, and decentralized memories — all with minimal friction for non-crypto users.

🔗 Tech Stack Overview Layer Technology Role 🧠 Bot UX Telegram Bot (Node.js + node-telegram-bot-api) Primary user interface for event creation, staking, check-ins, and commands 🧱 Smart Contracts Solidity (Zircuit Testnet + Flow) Staking logic, attendance marking, and reward distribution 🗃️ Database Supabase (PostgreSQL) Stores user data, event metadata, check-ins, poster URLs 🖼️ AI DALL·E 3 Transforms group photos into stylized memory posters ☁️ Decentralized Storage Walrus Hosts memory posters and potentially raw check-in images 📍 Location Verification Telegram location pin + GPS radius check Used to prove attendance at specified event location 🧪 Cross-Chain Zircuit & Flow Flow is used for event NFT representation, Zircuit handles gas-efficient contract logic

🔄 System Flow Wallet Abstraction (Hacky!) We simulate wallet creation through Telegram IDs. Each user triggers /create_wallet, and we link it to a smart contract address managed on-chain. This mimics account abstraction for users without needing seed phrases or browser extensions — great UX hack for Web2-like onboarding.

Smart Contracts on Zircuit & Flow

Zircuit was used for its low-latency, secure sequencer-level validation and fast finality, perfect for handling quick staking actions, event logic, and rewards.

Flow is integrated to optionally mint NFT-like memory badges for users/groups that attended, adding a collectible layer.

Event creation emits an event with eventId, which we capture client-side and persist in our Supabase DB.

Attendance Verification

Telegram users send live location.

Bot compares that to planned location (with a distance threshold).

Once verified, the bot allows photo upload to complete the check-in.

All metadata (location, photo, timestamp) is recorded in participants table.

AI-Powered Poster Generation

The first user who uploads a group photo triggers a memory poster pipeline.

A descriptive prompt is crafted (e.g. “A sunny Goa beach party with 8 smiling friends”) and passed to DALL·E 3.

Resulting image is uploaded to Walrus via its mainnet SDK.

Poster URL is stored in memory_posters table.

Finalization

The event creator (or bot via scheduler) runs /finalize_event.

Contract verifies attendance, splits pooled stake equally among attendees.

No-shows lose their stake — adding commitment pressure for future events.

🧠 Hacky but Smart Bot-Only UX: Entire UX is inside Telegram — no separate app, browser wallet, or dApp needed.

Gasless Experience (optional): We could delegate transaction signing to a relayer (planned for mainnet).

Database Indexing for Contract Events: Instead of directly reading on-chain attendance (to avoid latency), we indexed attendance data from bot inputs and event logs into Supabase for instant UI responses.

Multichain without Confusion: We prompt users to select a preferred chain at event creation, and abstract the chain-specific logic on our backend.

background image mobile

Join the mailing list

Get the latest news and updates