Master Edition
The account that marks an NFT as a one-of-one master and authorizes printing numbered editions of it. Stores current print supply and an optional maximum.
What it is
A Master Edition account turns a regular Metaplex metadata NFT into a “master” that can mint numbered prints (editions) of itself — like an artist’s signed master from which a limited run is printed. Its existence is also what makes a token a true non-fungible 1-of-1 (supply capped at 1, decimals 0).
Why it exists
NFT use cases need both unique 1-of-1s and limited editions (“100 prints of this artwork”). The Master Edition account both certifies non-fungibility and tracks how many editions have been printed against an optional cap. A mint with a Master Edition is provably an NFT, not a divisible token.
Byte layout
MasterEditionV2 is Borsh-encoded. Its account is a PDA of the mint with the seed suffix "edition".
| Offset | Length | Field | Type | Notes |
|---|---|---|---|---|
| 0 | 1 | key |
u8 enum |
6 = MasterEditionV2. |
| 1 | 8 | supply |
u64 LE |
Number of editions printed so far. |
| 9 | 1+8 | max_supply |
Option<u64> |
Borsh option: 1-byte tag (0 None = unlimited, 1 Some) + u64 cap when present. |
Total: 18 bytes when max_supply is set, 10 bytes when it’s None (unlimited prints).
Where you see it
Every 1-of-1 NFT (where max_supply = Some(0) — no prints allowed) and every limited-edition drop (where max_supply = Some(N)). Marketplaces read the Master Edition to confirm an asset is a genuine NFT and to show “edition X of N.”
Common gotchas
max_supply = Some(0)means a pure 1-of-1. Zero prints allowed — the master itself is the only copy.Some(100)allows 100 numbered prints;Noneallows unlimited.supplycounts prints, not the master. It starts at 0 and increments as editions are printed via EditionMarker tracking.- It’s a PDA seeded with
"edition". Address =findProgramAddress(["metadata", program_id, mint, "edition"]). The same derivation locates a print edition’s Edition account. - Borsh option (1-byte tag), not SPL COption.
max_supplyisOption<u64>— a single0byte for None. Don’t apply the 4-byte COption convention here.
See also
Last verified: 2026-05-20