Nomadic

A platform for hackers to find housemates, join journeys, and carry their history forward.

Nomadic

Created At

ETHGlobal Lisbon 2026

Project Description

Nomadic is a platform for hackers and crypto nomads who move from one event to the next and need people to live and build with. Users create Journeys around a city or event, find compatible housemates, discover hacker houses, and manage applications without publicly exposing sensitive travel or accommodation details.

Nomadic began at ETHGlobal Brussels. For Lisbon, I added the missing continuity between journeys: the Nomadic Passport. In our demo, a hacker discovers the Nomadic Lisbon House, verifies that they meet its requirements, applies, and receives a public NOMADIC_LISBON_HOUSE_ELIGIBLE credential in their Passport.

World confirms that each applicant is a real, unique person and meets the age requirement without Nomadic storing selfies or identity documents. The public Passport then gives future communities a verifiable record that the hacker can carry forward, instead of rebuilding their history from zero for every application.

ENSv2 provides the Passport’s open structure underneath the interface. This means future platforms can read and verify its public credentials directly, without requesting access to Nomadic’s private database or API. Travel plans, applications and house details remain inside Nomadic; only intentionally public Passport information is written onchain.

Nomadic connects the full journey: find the right people, apply to live and build together, and carry a verifiable history into the next community.

How it's Made

The frontend uses Next.js 14 App Router, TypeScript, shadcn/Radix UI components, Axios, and React Query. The backend is built with Express, TypeScript, Prisma, and PostgreSQL.

Magic provides email-based authentication and an embedded wallet, allowing users to control an onchain Passport without seed phrases or blockchain-specific onboarding. The backend validates Magic’s metadata and derives the authenticated user’s wallet address server-side instead of trusting an address submitted by the client.

The Lisbon House application integrates World IDKit through two server-verified checks. World Identity Check confirms that applicants meet the 18+ requirement, while Selfie Check enforces one application per verified person. Nomadic stores only the minimum result required by the application flow—not selfies, identity documents, or the complete World payload.

The Passport infrastructure uses ENSv2 on Sepolia Explorer-r2. Each user receives a Passport under nomadic-passport.eth, backed by a UserRegistry and PermissionedResolver. A child credential represents the Lisbon House Journey, while both the Passport and credential remain owned by the user’s Magic wallet.

The most notable technical feature is record-level issuer permissioning. A community can update only specific fields of the credential it issued: status, issuedAt, expiresAt, and metadata. It cannot take ownership of the Passport, change its wallet or resolver, modify protected credential fields, or create arbitrary sibling credentials.

The ENSv2 hierarchy and permission system were built and tested with Foundry. All 29 contract tests pass, and the complete flow—including registration, record creation, issuer authorization, and a permitted issuer update—was executed against the live Sepolia deployment.

ENS remains invisible in the interface. Nomadic translates the underlying names and records into familiar profiles and credential cards, while keeping the Passport open for other platforms to read and integrate with in the future.

*All new work presented for ETHGlobal Lisbon was completed as a solo continuation of the original Nomadic project.

background image mobile

Join the mailing list

Get the latest news and updates