For Artists — FAQ
What artists ask before they release. If yours isn't here, DM brendonrell on X.
How: Find your question below; every answer links to the page with the full detail.
Getting on PD
Do I need to be approved? Yes. PD is filtered: every release starts as a conversation, and publishing needs your wallet on the factory's artist whitelist. The filter is a quality floor, not a taste test. See Submit a Project.
Who decides, and how? Brendon, who built PD, with input from a small invited circle. Every decision comes back to you directly with a reason: yes, not yet, or not a fit. Whitelisted artists can also vouch for others.
Can I try the tools before I'm approved? Yes. PD Studio is open to anyone, with no wallet and no account: draft, run as many test mints as you like, check your traits and preview your Project page. Only publishing needs the whitelist.
Will anyone know I've been whitelisted? No. Nothing about it shows anywhere public until your first Project uploads. See What's Private.
Money
What does releasing cost me? The gas to store your script on Ethereum, paid once from your wallet when you publish. Nothing else: no listing fee, no subscription, nothing up front to PD. The Studio estimates the gas in dollars before you sign, and can ping you when it drops below a price you pick. See Publishing.
How and when do I get paid? 95% of your price reaches your wallet inside every mint transaction. There's no escrow, no balance to claim and no payout schedule, and the Project contract holds nothing before or after a mint. A wallet that refuses a payment is paid anyway, so nobody can block a sale. See The Mint Flow.
And on secondary? Each Project publishes a 5% royalty through EIP-2981: 3% of the sale to you, 2% to PD, through your Project's own splitter. It can only ever pay you or PD, and anyone can trigger your payout at any time. Marketplaces read the royalty from your contract; EIP-2981 can't force one to pay it. On PD's own market it's always paid: every listing and offer carries it, and PD won't accept one without it. See Royalties.
What does PD earn? 5% of your price on each collector mint, and 2% of secondary sales where marketplaces pay royalties. Nothing on your own mints.
What do collectors pay? Your price plus a flat storage fee (0.0007 ETH today), shown to them as one price. The fee pays for each Output's preview, reveal and records, and never comes out of your price.
Can the storage fee change?
Yes, within a range fixed forever when the factory was deployed: 0.0001 to
0.01 ETH per Output. It's read live at each mint, and the current value is
public on chain (storageFeeWei()). Your price can never change. See
PDFactory.
Can I mint some for myself? Yes, as many as you like, for the storage fee alone, through the same entry minute as everyone else. Your own mints never count toward the Project's milestones, and a Project that runs out with you holding half or more reads ARTIST MINTED OUT, never SOLD OUT.
Can I gift Outputs, or mint to a collaborator? Mint them yourself, then send them. There's no mint-to-another-wallet.
Do I need $PRICE for anything? No. $PRICE is PD's official digital merch. It plays no part in your release, your payouts or your collectors' mints.
What can and can't change
What's permanent once I deploy? The name, symbol, supply, price, script, language and colorway, and your artist address, which receives every payment. Your Project contract has no admin, no owner functions, no pause and no upgrade path, for you or for PD.
What can PD's factory admin do, then? Only PD's own plumbing: keep the artist whitelist, choose where PD's own fees go, rotate a few keys, bless libraries for future Projects, and set the storage fee inside its fixed range. Removing an artist from the whitelist never touches a Project already deployed. See PDFactory.
What can I still change? Your soundtrack, your Project's Looks (tag paint and logo) and its Showcase, from the Artist Dashboard. Your PriceSprite is permanent.
Can I fix a bug after release? No, which is why the Studio lets you test without limits first: every test run uses the exact page the chain will serve. Run big batches, reload old hashes after changes, and check your traits before you publish.
What happens to my work if PD goes away?
It keeps working. Your script is on Ethereum, every Output's tokenURI
returns the complete artwork from chain data alone, and each preview picture
is saved permanently on Arweave. Minting keeps working too: the entry minute
has a deadline in your contract that opens minting to everyone if PD were
offline. See The Mint Flow.
The drop
When does my release go live? In the block your Project deploys. There's no scheduling step after it: when you tap PUBLISH ON CHAIN and sign, that's your drop time, so publish when you want it to open.
How does the first minute work? Every drop opens with a 60-second entry minute. Entries inside it count as simultaneous, so being faster buys nothing. If more people want in than you have Outputs, a draw anyone can verify decides who mints, at your price. You don't set any of this up. See Fair Draw.
Can I run an allowlist, reserve some, or hold an auction? No. Every PD Project is an open, fixed-price mint at a fixed supply. Your own mints at the storage fee are the way to keep pieces for yourself.
What if it doesn't sell out? It stays open at your price for as long as there's supply. There's no end date and no way to close it early, so pick a supply you're comfortable with.
Will PD promote or rank my Project? PD shows the market as it is: floors, sales, volume and long-run standings, as facts. It doesn't predict prices, and it doesn't compare artists on day-to-day attention.
How often can I release? Once every 60 days, counted from each deployment.
Do I get a Discord channel? Yes: a fan channel in PD's Discord, plus the Artist role, created the moment your first Project uploads. See Artist Channels.
Your script
Which languages can I use? Plain JavaScript, or p5.js 1.11.13, which is stored on chain and frozen at that version. See Writing for the Chain.
Can I bundle another library, like three.js, into my script?
Yes, in Plain JavaScript, inside the size limit. The factory refuses a short
list of patterns anywhere in the script, bundled code included (Math.random,
Date.now, new Date, fetch(, any http:// or https://, and a few
more), and many libraries carry some of them, even in comments. The Studio
checks before you spend any gas and names the pattern and its line, so you can
strip them. The full list is in
Writing for the Chain.
How big can it be? Up to 1.5 MB, your script and its library together. A script up to 18,429 bytes usually goes up in one transaction; a bigger one goes up in pieces, one transaction per 18,429 bytes plus one to bind them, and an interrupted upload picks up where it stopped.
Where does the randomness come from?
Only from tokenData.hash. Each hash is made from the hash of the block the
mint landed in, the token's number and your contract's address. That block
hash doesn't exist until the block is finished, so nobody, PD included, can
see an outcome during a mint and cancel it, and whoever triggers the reveal
can't change it. Seed your own generator from the hash: there's one to copy
in Writing for the Chain.
Can I load fonts, images or other files? Not from anywhere outside your script. The factory refuses scripts that reach the network, so everything your Output needs goes inside your script (or comes from the library).
Can my piece animate, or respond to touch? Your Output is a live web page, so it runs as long as it's open. The preview picture is taken once, after the capture delay you set.
What size should the canvas be?
Whatever window it's given. Size from innerWidth and innerHeight, keep
your aspect ratio, and handle a phone held upright. The
starter kit does this for you.
How it shows up
What does the preview picture look like? After each Output reveals, PD draws it from your on-chain code in a 600 × 600 window, waits your capture delay (1 to 10 seconds, 3 by default), and takes a picture of your largest canvas or SVG. That picture is saved permanently to Arweave for wallets and marketplaces. The art itself is always your live script.
What do OpenSea and other marketplaces show?
Each Output's on-chain metadata names it (your Project's name and its number),
points animation_url at the live artwork and image at the preview, and
lists six attributes: Token Hash, Token Number, Artist, Language, Colorway and
Edition Size. Those six are the same for every Project and never change: a
plain record of facts about the piece.
OpenSea and other marketplaces show that list, so they show those six and not your traits.
Why don't my traits show on OpenSea? They could. Your traits are on chain, in plain sight, inside your code. But marketplaces were built around collectibles, and OpenSea still relies on the outdated method made for them: traits copied into the token as a list of labels. Generative art is a fundamentally different medium, with its own order of value. The visual comes first.
With collectibles, avatars and trading cards, a piece is its checklist and the rarest hat sets the price. That model fits them well. In generative art, the work itself sits at the top. A Project earns its place by how it looks, how it moves and what it says, and only then do its traits begin to matter. Rarity follows great art. It never stands in for it.
So PD doesn't inherit the old method. It builds the token for art. The token carries the frame: the name, the artist, the colorway, the edition, fixed on chain for good. Your traits stay where they were born, inside the work, written in your code and drawn from the same hash as every line and every color. Nothing is copied out, flattened into a label, or left for a server to remember.
Tokens are permanent. Interfaces change. So the collecting layer of filters, rarity, subtraits and trait offers lives in PD's market, built for generative art from the ground up and settled on Seaport, the open, heavily audited protocol beneath OpenSea itself. The most advanced medium on the chain deserves tools made for it, not a format made for another kind of collecting.
- You define them, in your own code. Your script names each trait and sets its value from the hash as it draws, with subtraits to group values into families. The shape of the collection is yours to design, the same way the art is.
- They're on chain for good. Your script is stored on Ethereum, so your traits are too. Anyone who runs the piece, today or years from now, gets exactly the traits you wrote. No server keeps them alive, ours included.
- Any marketplace can read them. They're open in your on-chain code, under plain names. A marketplace or app that wants to show your PD traits can read them straight from the art, the same way PD does.
- The token stays clean. Token Hash, Token Number, Artist, Language, Colorway and Edition Size, built by the contract and fixed forever: the plain record a serious work deserves. The character of the work lives in the work.
- Collecting tools belong in the interface. Trait filters, rarity and trait offers are how people collect, so PD keeps them in the app, out of the token. Collectors browse your traits as pills, drill into your subtraits and make offers on a trait, all read straight from your art.
- Every sale on PD pays you. Every listing and offer on PD carries your royalty, and PD won't accept one without it.
Can my Outputs trade outside PD? Yes. They're standard ERC-721 tokens in your own contract, so collectors can hold, send and trade them anywhere.
The Studio
Where are my drafts saved? In the browser you made them in. A draft on your phone isn't on your laptop. Pick one device for a release, or paste your script into a new draft on the other.
Do I need a soundtrack? Yes. The Studio asks for a public YouTube playlist before you can publish. It plays on your Project page, and you can change it any time after.