Skip to content

armsves/CypherSpace

Repository files navigation

CypherSpace

EthSilesia hackathon stack: onchain coworking (bookings, passes, events) plus the Nox confidential token demo on Arbitrum Sepolia — wrap, privately pay the hub in cUSDC/cRLC, selective disclosure, delegated view.

Environment variables

Copy .env.local.example to .env.local and set values. On Vercel, define the same keys in Project → Settings → Environment Variables.

Variable Required Description
NEXT_PUBLIC_APP_URL Recommended Canonical site URL (metadata, sitemap, Open Graph). Use your production URL on Vercel; locally often http://localhost:3000.
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID Yes (wallet UI) Reown / WalletConnect project ID from cloud.reown.com. Without it, wallet connection is degraded.
NEXT_PUBLIC_SPACE_TREASURY Yes for /space pay Arbitrum Sepolia 0x… treasury for bookings and membership.
NEXT_PUBLIC_SPACE_TREASURY_EVENTS No Optional separate treasury for event deposits; falls back to main treasury if unset.
NEXT_PUBLIC_SPACE_TREASURY_GRANTS No Optional grants pool; falls back to main treasury if unset.
NEXT_PUBLIC_SUPABASE_URL For admin + ingest DB Supabase project URL. Create a project and run supabase/schema.sql in the SQL editor.
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY Optional Only if you add a client-side Supabase client; this app uses Next.js API routes with the service role for server access.
SUPABASE_SERVICE_ROLE_KEY For admin + ingest Server-only. sb_secret_… or legacy service_role JWT. Never prefix with NEXT_PUBLIC_ or commit to git.
COWORKING_INGEST_SECRET Recommended in production Server-side secret checked by POST /api/coworking/ingest.
NEXT_PUBLIC_COWORKING_INGEST_SECRET Same as above Must match COWORKING_INGEST_SECRET so the browser can send the same header when syncing coworking state. If both are empty, ingest is open (local dev only).
ADMIN_PASSWORD For /admin login Password for the admin dashboard at /admin.
ADMIN_SESSION_SECRET For /admin Long random string used to sign the httpOnly admin session cookie (e.g. openssl rand -hex 32).

Quick reference (grouped)

# Public app
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=

# Coworking treasuries (Arbitrum Sepolia)
NEXT_PUBLIC_SPACE_TREASURY=
NEXT_PUBLIC_SPACE_TREASURY_EVENTS=
NEXT_PUBLIC_SPACE_TREASURY_GRANTS=

# Supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
SUPABASE_SERVICE_ROLE_KEY=

# Coworking ingest (match server + client values in production)
COWORKING_INGEST_SECRET=
NEXT_PUBLIC_COWORKING_INGEST_SECRET=

# Admin (/admin)
ADMIN_PASSWORD=
ADMIN_SESSION_SECRET=

Tech Stack

Layer Technology
Framework Next.js 16 (App Router, Turbopack)
Styling Tailwind CSS v4 + shadcn/ui (New York)
Web3 wagmi v2 + viem + Reown AppKit
Confidential Nox SDK (@iexec-nox/handle)
Chain Arbitrum Sepolia (421614)
Prices CoinGecko API (via Next.js API route)

Features

  • Wallet connection — MetaMask, Rabby, Coinbase Wallet, WalletConnect
  • Dashboard — Portfolio overview with public & confidential balances
  • Faucet — Quick access to testnet token faucets
  • Wrap / Unwrap — Convert public tokens (USDC, RLC) into confidential tokens (cUSDC, cRLC) at 1:1 ratio
  • Confidential Transfer — Send cTokens with encrypted amounts
  • Selective Disclosure — Grant auditors read access to your confidential balance
  • Delegated View — View balances shared with you by other users
  • Coworking hub (/space) — Hourly desks/rooms, subscriptions, token-gated events, treasury pay via pre-filled confidential transfer
  • Activity Explorer — Transaction history with filtering
  • Developer Mode — Inspect smart contract calls and Nox SDK methods
  • Light / Dark theme — Full theme support

Deployed Contracts (Arbitrum Sepolia)

Contract Address
USDC (ERC-20) 0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
cUSDC (ERC-7984) 0x1ccec6bc60db15e4055d43dc2531bb7d4e5b808e
RLC (ERC-20) 0x9923eD3cbd90CD78b910c475f9A731A6e0b8C963
cRLC (ERC-7984) 0x92b23f4a59175415ced5cb37e64a1fc6a9d79af4
NoxCompute 0xd464B198f06756a1d00be223634b85E0a731c229

Getting Started

Prerequisites

Setup

git clone <your-repository-url>
cd CypherSpace
npm install
cp .env.local.example .env.local
# Edit .env.local — see [Environment variables](#environment-variables) above.

Run

npm run dev       # http://localhost:3000
npm run build     # Production build
npm run lint      # ESLint

Project Structure

app/
  (landing)/            # Landing page + Terms (Header + Footer layout)
  (app)/                # Dashboard, Activity, Delegated View (Topbar + DashboardHeader layout)
  api/prices/           # CoinGecko proxy
components/
  layout/               # Topbar, Header, Footer, DashboardHeader, MobileMenu
  landing/              # HeroSection, FeatureCard, FeaturesSection
  dashboard/            # DashboardContent, Assets, ActionCenter, TokenRow
  modals/               # Faucet, Wrap, Transfer, SelectiveDisclosure
  shared/               # Logo, CodeSection, InfoCard, ErrorMessage, TxStatus…
  explorer/             # ExplorerContent, ActivityTable
  delegated-view/       # DelegatedViewContent, DelegatedViewTable
  ui/                   # shadcn primitives
hooks/                  # Transaction hooks, balance hooks, UI hooks
lib/                    # Contracts, tokens, config, wagmi, gas, ABIs

Operations

Wrap / Unwrap

Convert public tokens (USDC, RLC) into confidential tokens (cUSDC, cRLC) at 1:1 ratio. Unwrap burns cTokens to recover the underlying ERC-20.

Confidential Transfer

Transfer cTokens to another address. The amount is encrypted — no on-chain observer can determine it.

Selective Disclosure

Grant a viewer (auditor, regulator) read access to your confidential balance. Access is per-handle and must be re-granted after each transaction.

Delegated View

View confidential balances that other users have shared with you. Displays the list of tokens you have been granted access to, with decrypted amounts.


License

This project is licensed under the GNU General Public License v3.0 — see LICENSE. (GPLv3-compatible licenses are acceptable for combined works; this repository is GPLv3.)

Hackathon attribution

See SOURCE.md for the required ETHSilesia hackathon sentence.

About

Co-working stack for Kolektyw3

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors