DEV Community

Govinda Upadhya
Govinda Upadhya

Posted on

# DrukPass πŸ”οΈ | A Digital Travel Passport for Bhutan Built on Solana

DEV Weekend Challenge: Passion Edition Submission

This is a submission for Weekend Challenge: Passion Edition.

What I Built

Travel has always been one of my biggest passions.

Every journey leaves behind memories, but most of them eventually disappear into a camera roll that we rarely look at again. I wanted to build something that lets travelers collect memories in a way that's permanent, meaningful, and truly theirs.

That's how DrukPass was born.

DrukPass is a digital travel passport that allows travelers to collect verified on-chain stamps as they visit iconic places across Bhutan.

Instead of receiving a physical passport stamp, visitors scan a QR code at a destination and receive a blockchain-verified travel stamp stored on Solana.

Every stamp becomes part of a traveler's personal journey and can never be forged or altered.

For this project I focused on Bhutan because it is home to some of the most breathtaking places in the Himalayas. Places like Tiger's Nest, Punakha Dzong, and Buddha Dordenma deserve more than just another photoβ€”they deserve to become milestones in a traveler's story.

Unlike many blockchain projects, Solana isn't used here because it's trendy. It solves a real problem: giving travelers permanent ownership of their travel history without relying on a centralized platform.


Demo

🌐 Live Application

https://druk-pass.vercel.app/

Current Flow

  • Connect a Solana wallet
  • Register as a traveler
  • View your traveler profile
  • Scan QR codes at registered destinations
  • Receive an immutable on-chain travel stamp
  • View every place you've collected in your digital passport

Code

GitHub Repository

https://github.com/Govinda-Upadhya/DrukPass

Solana Program (Devnet)

J2YJKi9j2uHExj69bmKmqiA4igoP7zLrv985zfsPE4mt
Enter fullscreen mode Exit fullscreen mode

How I Built It

DrukPass is built as a full-stack decentralized application powered by Solana.

Frontend

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Solana Wallet Adapter

The frontend handles wallet authentication, traveler registration, QR scanning, and displaying the user's travel passport.

Smart Contract

The backend logic lives entirely on Solana using the Anchor Framework.

The program manages:

  • Traveler profiles
  • Official tourist locations
  • Travel stamp issuance
  • Ownership verification

I used Program Derived Addresses (PDAs) to create deterministic accounts for travelers, locations, and stamps without requiring private keys.

Each travel stamp is permanently associated with the owner's wallet, making it verifiable by anyone.

QR Verification

Each registered destination has its own unique QR code.

When a traveler scans the QR code, the application verifies the destination and records an immutable travel stamp on the Solana blockchain.

For this weekend challenge, verification is based solely on QR code scanning. While this demonstrates the complete on-chain workflow, it also means that someone could theoretically scan a QR code shared online without physically visiting the location.

A future version of DrukPass will strengthen this verification process by combining QR scanning with geolocation validation. A traveler would need to be within an acceptable radius of the destination before a travel stamp can be issued, making it significantly harder to claim visits remotely while still keeping the experience simple for genuine travelers.

This combination of physical presence + on-chain verification is the long-term vision for making DrukPass a trustworthy digital travel passport.

Why Solana?

Blockchain shouldn't be added just for the sake of using blockchain.

For DrukPass, Solana provides several genuine advantages:

  • Travelers own their travel history.
  • Travel stamps cannot be forged.
  • Visits are publicly verifiable.
  • No centralized database controls the records.
  • Extremely low transaction costs make collecting stamps practical.

Using Solana transformed the travel passport from a simple database application into something users truly own.


Challenges I Faced

This project pushed me far outside my comfort zone.

Some of the biggest challenges included:

  • Designing the account architecture for traveler profiles and locations
  • Working with Program Derived Addresses (PDAs)
  • Connecting a React frontend to an Anchor program
  • Handling wallet interactions
  • Implementing QR-based verification
  • Fetching and rendering on-chain data efficiently

Each problem taught me something new about building production-ready Solana applications.


What's Next?

I'd love to continue developing DrukPass beyond this challenge.

Some ideas include:

  • More tourist destinations across Bhutan
  • Achievement badges for completing travel routes
  • Cross-country travel passports
  • Mobile application
  • Offline QR verification
  • Partnerships with tourism organizations

I hope DrukPass can eventually encourage more people to explore Bhutan while giving them a unique way to preserve the memories they create along the way.


Prize Categories

πŸ† Best Use of Solana

Solana is the foundation of DrukPass.

Instead of using blockchain as a marketing feature, I built the entire ownership model around it. Traveler profiles, destination records, and travel stamps all exist on-chain, ensuring that every collected memory is verifiable, permanent, and owned by the travelerβ€”not by the application.


Thank You

Thank you for reading!

If you'd like to try DrukPass, I'd love to hear your feedback. Whether you're passionate about travel, blockchain, or both, I hope this project inspires new ways to think about preserving our journeys.


Links

Tags

#devchallenge #weekendchallenge #solana #web3 #blockchain #react #typescript

Frontend webpage

A screenshot of the DrukPass app


The DrukPass dashboard showing a traveler's collection of Bhutanese stamps.

Top comments (0)