Inspiration
Dragonfly started because my brother and I really like games, especially puzzle games.
My brother does not have a coding background, but he has always enjoyed games and solving things. At some point, he discovered Cicada 3301 and went into a rabbit hole around cryptography, hidden messages, internet mysteries, and CTF-style challenges.
From there, we started talking about creating our own game around that idea.
We wanted to build something that mixes puzzles, limited-time events, privacy, and collectible rewards, but that does not feel like it is only for cybersecurity experts.
My brother focused more on the creative part, the game idea, the puzzles, the pitch, and the demo. I focused on the technical implementation and turning the idea into something people could actually play.
What it does
Dragonfly is a privacy-first CTF and puzzle game.
The game is built around limited-time events called Drops. When a player joins a Drop, they receive a private Flight, which is their own run with personalized puzzles and answers.
After completing the Flight, the player can prove that they solved it without publishing their answers and claim a unique badge called a Wing.
In the current version, players can browse active Drops, see their countdowns, start a Flight, complete three connected puzzle stages, claim a Wing, receive an alias, and appear on the public solvers board.
The solvers board only shows the player’s alias and Wing. It does not show their puzzle answers or private completion credentials.
For the current demo, players do not need to connect a wallet.
How we built it
We built Dragonfly as a TypeScript monorepo.
The frontend uses Next.js and React, with a terminal-style interface inspired by hacker tools, old games, and cryptography challenges.
We used Convex as the realtime backend, database, and game referee. It manages the Drops, Flights, puzzle progress, answer validation, claims, and the solvers board.
The project is separated into different packages for the puzzle engine, shared cryptography helpers, Wing generation, and smart contracts.
In the working MVP, Convex validates each stage and releases a one-time completion credential only to the player’s session. The claim flow uses BLAKE2b commitments to generate the Wing badge seed.
We also created a Midnight Compact claimWing circuit for the private on-chain claim flow. The circuit is already in the repository, but it is not connected to the web UI yet.
The current demo uses the local referee so the complete experience can work without Lace or wallet setup.
We deployed the project with Vercel and used Vitest and live smoke checks to verify the full flow:
Drop → Flight → solve → claim → solvers board
Challenges we ran into
The hardest part was keeping the game private without making it complicated or breaking the game experience.
We needed a real way to validate that a player completed every stage, but we did not want puzzle answers or private credentials to become public.
For the MVP, we solved this by using Convex as a trusted referee. It checks the answers, controls the completion credential, and only publishes the final alias and Wing.
Another challenge was separating what is already working from what is part of the next Midnight integration. We did not want to pretend the on-chain claim was already connected when it was not.
We designed the claim model around private proofs and created the Compact circuit, but connecting it to the UI and the full on-chain flow is still the next step.
We also had very limited time. We built Dragonfly in less than 12 hours, so we had to focus on creating one complete and playable loop instead of trying to build every feature we imagined.
Accomplishments that we're proud of
What we are most proud of is that in less than 12 hours, we created something that we genuinely want to continue building.
We did not only create a landing page, a mockup, or a small technical demo. We created a complete playable experience where someone can find a Drop, start a private Flight, solve connected puzzles, claim a Wing, and appear on the solvers board.
We are also proud of how both of us contributed from different areas.
My brother brought the original inspiration, creative direction, puzzle ideas, pitch, and demo experience. I focused on building the game engine, backend, privacy model, UI, deployment, and the technical flow.
Dragonfly feels like a project that represents both of us, not only something we created for a hackathon.
What we learned
We learned that building a good puzzle game is not only about making difficult questions.
The puzzles need to feel connected, give enough feedback, and make the player feel that they are discovering something instead of only answering isolated challenges.
We also learned that privacy features should stay behind the experience. The player should understand that their answers remain private and that their completion is verified, without needing to understand every cryptographic detail.
Another important lesson was scope.
Because we had less than 12 hours, we had to make difficult decisions and focus on the main loop. Finishing one complete experience was more valuable than having many disconnected or unfinished features.
We also learned that this is something we want to build beyond the hackathon.
What's next for Dragonfly
Our vision is to turn Dragonfly into a real game and launch it on iOS later this year.
We want to create a platform and a community for people who enjoy solving things: puzzle game fans, CTF players, cryptography enthusiasts, mystery lovers, and also casual players who just want to try something different.
Dragonfly should not feel like a game made only for people with security experience.
We want Drops with different themes and difficulty levels, so a new player can start with something simple while experienced solvers can still find more complex challenges.
The next technical step is connecting the Midnight Compact claimWing circuit to the application so players can verify their completion on-chain without publishing their answers.
We also want to add more Drops, more puzzle categories, player profiles, Wing collections, notifications for new events, team challenges, community-created Drops, and a better personalized Flight system.
Our long-term vision is for Dragonfly to become a home for solvers: a game and community where people can discover limited-time challenges, collect Wings, compete or collaborate with others, and enjoy solving puzzles together.
Built With
- convex
- lace-wallet
- midnight-network
- next.js
- typescript
Log in or sign up for Devpost to join the conversation.