MuneraMUNERA

Docs

Architecture

No backend: how the site reads and writes Solana, the tech stack and the repo layout.

Overview

Munera has two parts: an Anchor program that holds the rules and the funds, and a Next.js website that talks to Solana directly from the browser. There is no server, database or indexer.

How reads work

  • The site builds an Anchor Program from the committed IDL and reads accounts with program.account.bounty.all() and program.account.submission.all() (with memcmp filters for per-bounty and per-creator queries).
  • The leaderboard, creator profiles, dashboard and payment history are computed in the browser from those accounts.
  • Payout transactions are found with getSignaturesForAddress on the submission account.
  • Vault balances come from getTokenAccountBalance.
  • Creator profiles are SPL Memo records signed by the creator wallet, read with getSignaturesForAddress and cached in the browser (see Creator profiles).

How writes work

Your wallet signs transactions built by the Anchor client (create_bounty, submit_clip, approve_submission, reject_submission, reclaim_unspent). Errors are mapped from the IDL to friendly messages.

Tech stack

  • Program: Rust, Anchor 0.30.1, SPL Token.
  • Frontend: Next.js 14 (App Router), TypeScript, Tailwind CSS.
  • Solana: @solana/web3.js 1.x, @coral-xyz/anchor, @solana/spl-token, Solana wallet adapter (Phantom, Solflare).
  • Hosting: Vercel, auto-deployed from GitHub main.

Repository layout

text
programs/munera/   Anchor program (src/lib.rs)
tests/             Program tests (22)
scripts/           create-mint, mint-to
app/               Next.js frontend (deploy root on Vercel)
  src/lib/         program, pda, data, errors, docs content
  src/components/  UI components
  src/app/         routes
assets/            logo, X banner
docs/              demo script and pitch notes