Inspiration
We love projects that turn everyday noises into blockchain collectibles (tracks, voice notes… so why not farts ?). Recording the sound itself makes the joke tangible and showcases Algorand’s fast, cheap media-NFT capabilities in a single click.
What it does
- Connect – User links their Pera Wallet and sees the ALGO balance.
- Record – A big round “💨 Record Fart” button triggers the browser
MediaRecorderAPI to capture ~3 s of audio (PCM → WebM). - Add details – User types a Title (e.g. “Elevator Explosion”) and drags in / chooses a cover image (PNG/JPEG).
- Mint for 1 ALGO – The app:
- uploads the audio file and cover art to IPFS,
- creates an ARC-3 asset whose
media_urlpoints to the sound and whoseimagepoints to the cover, - groups the 1 ALGO fee to the treasury wallet with the ASA-creation tx.
- uploads the audio file and cover art to IPFS,
- Celebrate – Success modal shows the cover art, a play button for the fart, and the TxID link.
How we built it
| Layer | Stack & notes |
|---|---|
| Frontend | React + Vite • Tailwind for styling • Framer-Motion for transitions |
| Audio capture | Native MediaRecorder (Web Audio) → ArrayBuffer → WebM blob → IPFS via nft.storage |
| Wallet / Chain | @perawallet/connect + algosdk for a stateless, single-unit ARC-3 NFT |
| Metadata | json { "name": title, "description": userDescription, "media_url": ipfsAudio, "image": ipfsCover } hashed & stored on-chain |
| Hosting | Static deploy on Vercel – still zero back-end, zero database |
Challenges we ran into
- Browser audio permissions – Safari iOS requires a user gesture before
MediaRecorderwill start → we added a tap-to-arm step. - File sizes – Raw WAVs were huge; we switched to WebM/Opus and verified playback inside Pera’s NFT viewer.
- Metadata consistency – Keeping the ARC-3 JSON (sound + image) under 3 kB while embedding meaningful fields.
- Token hygiene – We had to juggle Stripe, OpenAI, Pinata and Supabase env-vars across Netlify & local dev while ensuring only the smallest-scope tokens ever reach the browser.
Accomplishments we’re proud of
- First-ever on-chain “fart sound” collection on Algorand.
- < 45 s from pressing Record to owning the NFT on mobile 4G.
- Bundle size < 230 kB gzipped even with audio-recording logic.
- Budget mastered: thanks to free tiers & credits, the entire build + IPFS uploads cost ~ 10 million eTokens (test credits) — practically zero real spend.
- Domain secured: we already reserved fartnftmaker.entry so the project can go live the minute the hackathon ends.
What we learned
MediaRecorderis more reliable than expected—just polyfill MIME types on older Android.- ARC-3 comfortably handles multi-asset metadata (sound + image) without resorting to ARC-69/ARC-19.
- Humor lowers friction: users gladly grant mic permission when there’s a fart leaderboard waiting.
- Early discipline on scoping API keys (Pinata write-only JWTs, OpenAI server-side only) avoids expensive mistakes later.
What’s next for Fart NFT Maker
- Auto-EQ & normalisation so every fart plays back at the same volume.
- “Mega-Fart” fusion – burn 5 regular farts to mint a remixed audio collage.
- Friday Stink-Off leaderboard (pure Indexer reads) ranking total decibels.
- Charity toggle donating 10 % of fees to gastrointestinal-research foundations.
- Production launch at fartnftmaker.entry right after the hackathon, using the remaining eToken credits for the first 5 000 free mints.
Built With
- algorand
- exodus
- framer
- github
- motion
- netlify
- pera
- react
- tailwind
- three.js
- typescript



Log in or sign up for Devpost to join the conversation.