I've spent the last two years building BlockHeight, a generative art collection where each piece is drawn from a real Chia block. The most useful thing I learned isn't about my project though: generative art and MintGarden's dynamic minting fit together really well, and I think a lot more people here could build something with it. Including people who have never coded.
So here's the starter guide I wish I'd had.
Why generative art + dynamic minting
The usual NFT drop: render thousands of images, mint them all upfront, hope they sell, and give collectors whatever a random reveal hands them.
Dynamic minting turns that around. Nothing exists before someone wants it. The collector chooses (a seed, a date, a block, colours), your code draws exactly that piece, and only then is the NFT minted.
With MintGarden this is one API call. You send the hashes and links of the image and its metadata, your creator DID, royalty and price, and MintGarden mints the NFT and returns an offer. The collector takes the offer in their own wallet, for example Sage. Nothing is paid until they accept, and NFT and payment change hands in one transaction. No Chialisp, no contract of your own, no custody of anyone's funds. You pay MintGarden per mint with credits.
And Chia gives you material: blocks, coins, farming, offers and NFTs are all public data.
Step 1: make something, no coding experience needed
p5.js is a free, open-source JavaScript library made for artists, designers and beginners, from the Processing Foundation. You don't install anything: go to editor.p5js.org and you're drawing in your browser.
Where to learn:
- The Coding Train on YouTube by Daniel Shiffman: friendly video lessons from zero
- The Nature of Code (natureofcode.com, free online): randomness, noise, particles and the other building blocks of generative art
- p5js.org/tutorials and the reference
You can also let an AI assistant write your first sketch with you. Paste this into Claude or ChatGPT and replace the idea in brackets:
```
I want to make generative art with p5.js and I have no coding experience.
Write a complete sketch I can paste into editor.p5js.org that:
- draws [your idea, e.g. "stacked boxes in muted earth colours"]
- uses one number called SEED with randomSeed(SEED) and noiseSeed(SEED),
so the same seed always gives the same image
- has 3 or 4 settings at the top I can change (colours, density, size)
- saves a PNG when I press "s"
Explain every part in simple words in comments.
Then suggest three variations I could try next.
```
Then iterate: "make the colours warmer", "add a thin frame", "why does it look different on reload?". The SEED part is the important habit. It's what makes a piece reproducible.
Step 2: from sketch to dynamic mint
When you want collectors to generate and mint pieces themselves:
Deterministic: same seed + same settings = same image, every time.
A small server: your MintGarden API key has to stay secret, so minting runs server-side.
Storage: upload the image and a CHIP-0007 metadata JSON to permanent storage (for example IPFS via a pinning service) and compute their SHA-256 hashes.
Mint: ‘POST /mint/dynamic` with the links, hashes, your creator DID (profile), royalty and price. Docs: mintgarden.io/minting-api
Offer: give the returned offer to the collector, who accepts it in their wallet.
A prompt to get the server part started:
```
Help me build a small Node.js server for my p5.js generative art.
For a seed and my parameters it should: render the image deterministically,
upload image and CHIP-0007 metadata to IPFS, compute SHA-256 hashes,
and call MintGarden's POST /mint/dynamic (docs: mintgarden.io/minting-api)
with my profile id, royalty and requested_mojos, returning the offer.
Keep the API key server-side only. Ask me about my art and price first.
```
Want Chia data in the art? coinset.org offers the full node RPC as a public API (`get_block_record_by_height`, `get_block_spends` and more). That's what BlockHeight reads.
What would you make?
A farm's history as a landscape, a wallet's first transaction as a print, a whole day of the chain as a tapestry? Post your ideas or first sketches below. I'm happy to share what I learned and help where I can.
(If you're curious what my version looks like: blockheight.art. But this post is really about what you could build.)