the urufulabs studio ✿ how-to

make your first collection

eight little steps — drop your art, tune the weights, generate up to 10,000 tokens right in your browser, review and rework any of them, then publish to IPFS or download a zip you host yourself. no wallet needed to create ✿

how it works: urufulabs studio produces the whole collection combinatorially. you don't draw each token — you upload trait layers (background, body, eyes, hat…) and the studio combines them into thousands of unique tokens for you.

how big can it be? the math is trait count per layer, multiplied. 5×6 = 7,776 possible. 5×10 = 100,000. 6×8 = 262,144. want 10k? aim for at least ~2× headroom so the generator doesn't exhaust unique combinations.

open the studio →read the walkthrough
100% in-browserup to 10,000 tokensERC-721 metadataIPFS readyor download zip
step 01

name your collection

click the ✿ untitled collection stamp at the top of the studio and give your set a name. this becomes the collection title in every token's metadata later ✿

  • press enter to save
  • press esc to cancel and keep the old name
  • you can rename it any time, even after generating
step 02

drop your trait folders

drag a folder of subfolders into the pink dashed zone. each subfolder becomes a layer (background, body, eyes, hat…) and each png inside becomes a trait.

folder structure it expects:

my-collection/
├─ background/
│   ├─ sky.png
│   └─ dusk.png
├─ body/
│   ├─ pink.png
│   └─ mint.png
└─ hat/
    ├─ beanie.png
    └─ crown.png

no folders? click + add layer / files instead and pick pngs one at a time.

step 03

rename, reorder, delete

you own everything you upload. click any layer or trait name to rename it — the pretty name shows up in the token metadata; the filename stays hidden.

  • use the chips to reorder layers back-to-front
  • hover a trait row to reveal delete — it warns you first if any rule references it
  • delete a whole layer with the danger button on the layer card. same warning shows what breaks
step 04

tune weights & rules

not every trait should be equally common. bump the weight on a rare trait, drop it on a common one. the studio biases the roll toward higher weights when it generates.

use rules to keep pairings sensible:

  • require — this trait must appear with that one (crown → cape)
  • forbid — never let these two show up together (sunglasses + monocle)
  • must-pair — treat two layers as a locked combo
step 05

generate up to 10,000

scroll to generate collection ✿. set your target size (any number up to 10,000), hit the big button, and watch the counters climb.

during the run you get:

  • live done / total counters
  • rate / second and estimated time remaining
  • a tape reel of the last 6 tokens rendered
  • a big cancel button — nothing is destroyed if you stop mid-run

runs entirely in your browser. nothing uploads until you say so.

step 06

publish or download

happy with the results? you have two ways out — pick either, or do both.

publish to ipfs — images get pinned as one directory, then a matching ERC-721 metadata directory referencing those images gets pinned right after. you get back one metadata CID your launchpad or contract uses as baseURI. token metadata lives at ipfs://METADATA_CID/{tokenId}.json.

download bundle — grab a single zip you can host anywhere (S3, arweave, your own gateway, whatever). inside you get images/, metadata/, and a README.txt explaining how to rewrite the image URL prefix after upload. set the prefix before you download if you already know where images are going, or leave the placeholder and find-and-replace later.

nothing leaves your browser until you press one of these buttons 。◕‿‿◕。

step 07

review your collection

after generation, scroll to collection browser ✿. every finished token lives here — filter by trait, sort, or jump to a specific token id.

click any tile to open it. from there you can:

  • reroll — pick a new random combination for that same token id
  • swap traits — hand-pick a specific trait per layer, live preview, save
  • delete — drop it entirely if it's a dud

all edits happen locally. nothing re-uploads until you re-publish.

step 08

one-of-a-kind bonus tokens

want a special token outside the algorithm? click Add 1-of-1 ✿ in the browser toolbar.

two ways to add one:

  • upload — drop in a finished png you made outside the studio
  • compose from traits — hand-pick a specific combination from your layers

give it a name, a description, and any custom attributes you like. 1-of-1s append to the end (highest token ids) and survive regeneration — if you re-generate the algorithm collection later, your bonus tokens stay untouched ♡

little things that help ✿

  • transparent pngs stack correctly — save each layer with a clean alpha channel.
  • keep every trait the same canvas size (e.g. 512×512). traits with different dimensions will misalign.
  • refresh the page any time — everything lives in your browser storage, nothing is lost.
  • change your mind about a layer name? rename it. metadata still uses the new name on your next generate.
  • the shuffle button re-rolls the preview with the current traits and weights. use it to sanity-check before generating 10k.
  • don’t like a token you got? open the collection browser, click it, hit reroll or swap traits. no need to regenerate the whole set.
  • 1-of-1 bonus tokens live outside the algorithm — perfect for founder editions, ultra-rares, or story-driven picks.

frequently curious

quick questions

does my art leave my computer?

no. every trait, weight, rule, and generated token lives in your browser storage until you press publish. we do not upload anything before then ✿

is there a maximum collection size?

the target field caps at 10,000 to keep things smooth. below that, generate as many or as few as you like.

do i need a wallet to create?

no wallet needed to design or generate. you only need one later when a launchpad or contract asks you to plug in the metadata CID.

do i have to use ipfs?

nope. hit Download bundle ✿ instead and you get a zip with images/, metadata/, and a README. host it anywhere you like — s3, arweave, your own gateway. the README shows exactly how to swap the image URL prefix in every metadata json after you upload.

what happens if i close the tab mid-generate?

anything already rendered stays saved in your browser. cancel or refresh — you can resume with the same seed and pick up where you left off.

can i come back tomorrow?

yes. layers, traits, rules, weights, and finished tokens persist between sessions on the same device.

do i have to create each nft one by one?

no — the studio is generative. you upload trait layers once, and it combines them algorithmically into your whole collection. you don't hand-craft individual tokens.

can i fix a bad token after generation?

yes. open the collection browser, click any token, and either reroll it (new random combo, same token id), or swap traits to hand-pick which trait from each layer it uses.

can i add a special one-of-a-kind?

yes. in the collection browser, click Add 1-of-1 ✿. upload a fully-composed png or compose one from your traits. it appends to the end of the collection with a '1 of 1' marker and survives future full-collection regenerations.

what happens to my 1-of-1s if i regenerate the collection?

when you press Generate again with 1-of-1s in the collection, the studio asks whether to keep them. keep = 1-of-1s untouched, algorithm tokens redone. wipe = everything cleared and restarted.

ready?

let's make some art ✿

open urufulabs studio →