How to Create a 10K PFP Collection on Bitcoin Ordinals
Launching a 10,000-piece PFP collection on Bitcoin Ordinals is one of the most ambitious projects an artist can tackle. Unlike Ethereum where smart contracts handle minting, every Ordinals PFP is individually inscribed on-chain — making planning, optimization, and budgeting critical. This guide walks through the entire process from art creation to launch day.
Step 1: Design Your Layers
Every generative PFP collection starts with layers. Each layer represents a trait category, and individual trait images are composited together to create unique combinations.
Typical Layer Structure
- Background — Solid colors, gradients, patterns (8-15 variations)
- Body / Base — The character base shape and skin tone (5-10 variations)
- Eyes — Expression and eye style (10-20 variations)
- Mouth — Expressions, accessories like cigarettes (8-15 variations)
- Headwear — Hats, crowns, none (15-25 variations)
- Accessories — Glasses, chains, earrings (10-20 variations)
- Clothing — Shirts, hoodies, armor (15-25 variations)
- Special — Rare overlays, auras, 1/1 traits (3-5 variations)
Art Requirements
- All layers must be the exact same canvas size (e.g., 512x512 pixels)
- Use transparent PNG backgrounds on all layers except the background layer
- Maintain consistent anchor points so traits align when composited
- Design at your target inscription size — do not design large and downscale
Step 2: Set Trait Rarity
Rarity drives secondary market value and collector interest. Here is a standard rarity distribution:
- Common (60-70%) — Basic traits that appear on most pieces. Solid backgrounds, standard expressions, common clothing.
- Uncommon (20-30%) — Traits that are noticeably different but not hard to find. Patterned backgrounds, unusual eye colors.
- Rare (5-10%) — Desirable traits that collectors seek out. Gold accessories, animated elements, special headwear.
- Legendary (1-2%) — Extremely scarce traits. 1/1 backgrounds, unique outfits, mythical accessories. Only 100-200 in a 10K collection.
Assign percentage weights to each trait in your generation config. The generator will randomly select traits based on these weights, naturally creating a rarity curve.
Step 3: Generate the Collection
Use an art engine to composite your layers into 10,000 unique images with metadata.
Generation Tools
- HashLips Art Engine (Free, open source) — The most popular generator. Node.js based. Supports layer folders, rarity weights, and metadata output. Well-documented with a large community. GitHub
- Bueno (Paid) — No-code generator with a visual interface. Drag and drop layers, set rarity with sliders, preview output in real-time. Best for non-technical artists. bueno.art
- Custom Python Scripts (Free) — Full control using PIL/Pillow library. A basic generation script is ~100 lines of Python. Best for developers who want custom logic like trait dependencies or exclusion rules.
HashLips Folder Structure
layers/
1-Background#70/
Blue#30.png
Red#25.png
Gold#5.png
...
2-Body#100/
Light#40.png
Dark#30.png
...
3-Eyes#100/
Normal#50.png
Laser#5.png
...
The numbers after # set rarity weights. Higher number = more common. Run the engine and it outputs 10,000 unique composited images plus a metadata JSON for each.
Step 4: Metadata Format
Each piece needs metadata listing its traits. For Ordinals, the standard JSON format looks like this:
{
"name": "MyCollection #1",
"attributes": [
{"trait_type": "Background", "value": "Gold"},
{"trait_type": "Body", "value": "Dark"},
{"trait_type": "Eyes", "value": "Laser"},
{"trait_type": "Mouth", "value": "Smile"},
{"trait_type": "Headwear", "value": "Crown"},
{"trait_type": "Accessory", "value": "Chain"}
]
}
Metadata is used by marketplaces like Magic Eden and Best in Slot to display trait filters and rarity rankings. Some inscription services let you inscribe metadata alongside the image; others index it separately.
Step 5: Optimize Files for Inscription
For a 10K collection, file optimization is not optional — it directly determines your total cost.
- Target 10-30KB per image for a realistic budget
- Use pngquant to reduce to 64-128 colors across all 10K images in batch
- Run OptiPNG or PNGCrush after quantization for additional lossless savings
- Consider WebP format if your inscription service supports it
- Pixel art at 32x32 or 64x64 keeps individual files under 5KB
Step 6: Batch Inscribing
Inscribing 10,000 files one at a time is impractical. Use batch inscription services:
- OrdinalsBot Bulk Tool — Upload a ZIP of all images. Set parent inscription for collection grouping. Handles fee estimation and transaction batching. Supports up to 10,000+ files per batch.
- Gamma Create — Collection launch tool with batch inscription. Artist-friendly interface with collection page creation included.
- Custom ord CLI — For technical users running their own Bitcoin node. Maximum control and lowest fees (no service markup), but requires significant setup.
Step 7: Launch Strategy
A successful launch requires more than just inscribing. Here is the standard playbook:
Pre-Launch (2-4 weeks before)
- Build community on Twitter/X and Discord
- Release teaser art — show 5-10 sample pieces, never the full collection
- Announce trait categories and rarity tiers (builds anticipation)
- Create a whitelist (WL) for early supporters — reward engagement, not just followers
Mint Phases
- Whitelist Mint — First 24-48 hours. WL holders mint at a discount (or free). Creates FOMO and rewards early community.
- Presale — Next 24-48 hours. Slightly higher price, open to broader audience.
- Public Mint — Open to everyone. Full price. Duration depends on demand.
Post-Launch
- List on Magic Eden Ordinals marketplace for secondary trading
- Submit collection to Best in Slot for indexing and rarity rankings
- Maintain community engagement — the launch is just the beginning
- Consider a reveal mechanic if inscribing placeholder images first
Cost Summary: What to Budget
- Art creation: $0 (DIY) to $5,000+ (hiring an artist)
- Generation tool: $0 (HashLips) to $200 (Bueno)
- Inscription fees (10K at ~20KB each): $30,000-$50,000 at moderate fee rates
- Inscription service markup: 5-15% on top of network fees
- Marketing: $0 (organic) to $5,000+ (paid promotions)
- Total realistic budget: $35,000-$70,000 for a 10K collection
This is why many projects start with smaller collections (500-2,000 pieces) to validate demand before committing to a full 10K launch.
Explore Successful Ordinals PFP Collections
See what the best PFP collections on Bitcoin look like
Browse ordinals.pics Gallery