Skip to content

Latest commit

ย 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฎ NIMQ LANTERN

Turn a NIM payment into a wish that lights up a shared sky.

๐ŸŒŒ Live Demo: Coming soon

๐ŸŽฅ Demo Video: coming soon

Lantern is a Nimiq Pay mini app where a small wallet action becomes a public moment. A user writes a wish, signs it with their Nimiq wallet, sends a tiny amount of NIM as postage, and the server verifies the message before raising that lantern into a shared night sky.

Why it exists

Lantern is built for people who want crypto to feel human again.

The target audience is:

  • Nimiq users who want a playful, social wallet experience
  • crypto-native communities who value visible, shared moments
  • creators and community members who want to send a message, not just a transaction
  • people who like lightweight social rituals and public, low-friction participation

With Lantern:

  • a user writes a wish in 1โ€“80 characters
  • they choose a color and postage amount
  • their wallet signs a nonce-bound message
  • the server validates the wallet proof and NIM payment before accepting the lantern
  • enough community tips turn the lantern into a star

The sky is intentionally server-authoritative, so a modified client cannot cheat the display.

How it works

1. Make a wish

Write a short message for the sky.

2. Sign with Nimiq

Use the wallet to prove the wish is yours.

3. Send postage

Pay a small amount of NIM to raise the lantern.

4. Light the sky

The lantern rises for everyone to see.

5. Become a star

Tips can turn a lantern into a permanently glowing star.

Submission pitch

Most crypto transactions disappear the moment they are confirmed. Lantern makes them visible.

Every small NIM payment becomes a wish floating into a shared sky. Wallet signatures provide identity, payments provide participation, and community tips transform lanterns into stars.

Lantern turns NIM from a transaction into a shared social experience.

Features

  • full-screen lantern sky with live WebSocket updates
  • preview mode for local browser testing without wallet signing
  • wallet-based signing and postage flow with Nimiq Pay
  • tipping flow that promotes lanterns into stars
  • single-process Node server that serves the built client and API

Local development

Prerequisites

  • Node.js 20+
  • npm
  • a browser with Nimiq Pay for live wallet testing

Install and run

npm install
npm run dev

This starts:

  • client UI on http://localhost:5173
  • sky server on http://127.0.0.1:8787

For a production-like local run:

npm run build
LANTERN_TREASURY='NQXX ...' npm start

On Windows PowerShell:

npm run build
$env:LANTERN_TREASURY="NQXX ..."
npm start

Production deployment

Lantern is designed to run as a single Node process with a built frontend and an API server.

Required environment variables

  • PORT โ€” server port, default 8787
  • LANTERN_TREASURY โ€” the NIM address receiving postage and tips
  • LANTERN_MIN_LUNA โ€” minimum accepted postage/tip value in Luna, default 1000

Production startup

npm install
npm run build
LANTERN_TREASURY='NQXX ...' PORT=8787 npm start

Deploy to a Node host

This project can be deployed to any Node-compatible host such as:

  • Render
  • Railway
  • Fly.io
  • an Ubuntu VM / VPS
  • a container host

Typical Node deployment pattern:

  1. clone the repository
  2. install dependencies with npm install
  3. build with npm run build
  4. set LANTERN_TREASURY and other env vars
  5. start with npm start

A minimal host command is:

npm install
npm run build
PORT=8787 LANTERN_TREASURY='NQXX ...' npm start

Mini App integration details

Lantern uses the Nimiq Pay Mini App SDK for:

  • init() to connect to the wallet
  • listAccounts() for identity lookup
  • sign() with a nonce-bound LANTERN v1 message
  • sendBasicTransactionWithData() for postage and tips

The server issues one-time nonces so the same wallet signature cannot be replayed.

Testing

npm test

For the full validation pass:

npm run check

Competition checklist

This project is well-positioned for a Nimiq mini-app submission because it includes:

  • a polished dark design with a clear first impression
  • a fast, single-purpose interaction loop
  • real wallet signing and NIM postage flows
  • repeat-value behavior through tipped lanterns and visual sky activity
  • a built-in local validation path with automated tests and a release check

For a stronger submission, the main extra work is distribution and storytelling: a small demo video, a public repo, and a concise pitch explaining why a shared sky made of NIM-powered wishes is useful and memorable.

Built with Nimiq

Lantern uses the Nimiq Mini App SDK for:

  • wallet identity via init() and listAccounts()
  • signing with sign() using a nonce-bound LANTERN v1 message
  • NIM transfers with sendBasicTransactionWithData() for postage and tips
  • Mini App integration in a wallet-native environment

Why this could grow

Lantern is designed to be more than a single one-off interaction. It creates a repeatable social ritual that could expand into:

  • community sky events
  • seasonal or festival lantern collections
  • trending wishes and themed skies
  • wallet-based history and identity
  • sponsored or community-run lantern worlds

GitHub

git remote add origin https://github.com/<your-username>/lantern.git
git branch -M main
git push -u origin main

License

MIT

About

๐Ÿฎ A shared night sky powered by NIM โ€” send wishes, light lanterns, and turn community tips into stars.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages