From 08cc4461f481407b50bd73f2677b7a8cbbd2741c Mon Sep 17 00:00:00 2001 From: MarkSackerberg <93528482+MarkSackerberg@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:00:49 +0200 Subject: [PATCH 1/4] Document CLI inherit-royalties flags for Bubblegum cNFTs. Align create, fetch, and update docs with auto-inherit vs explicit leaf royalties so agents and users do not mint an explicit 0% rate by default. --- .../en/dev-tools/cli/bubblegum/create-cnft.md | 56 ++++++++++++++++++- .../en/dev-tools/cli/bubblegum/fetch-cnft.md | 9 ++- src/pages/en/dev-tools/cli/bubblegum/index.md | 16 ++++-- .../en/dev-tools/cli/bubblegum/update-cnft.md | 1 + .../ja/dev-tools/cli/bubblegum/create-cnft.md | 54 +++++++++++++++++- .../ja/dev-tools/cli/bubblegum/fetch-cnft.md | 9 ++- src/pages/ja/dev-tools/cli/bubblegum/index.md | 20 +++++-- .../ja/dev-tools/cli/bubblegum/update-cnft.md | 1 + .../ko/dev-tools/cli/bubblegum/create-cnft.md | 54 +++++++++++++++++- .../ko/dev-tools/cli/bubblegum/fetch-cnft.md | 9 ++- src/pages/ko/dev-tools/cli/bubblegum/index.md | 20 +++++-- .../ko/dev-tools/cli/bubblegum/update-cnft.md | 1 + .../zh/dev-tools/cli/bubblegum/create-cnft.md | 54 +++++++++++++++++- .../zh/dev-tools/cli/bubblegum/fetch-cnft.md | 9 ++- src/pages/zh/dev-tools/cli/bubblegum/index.md | 20 +++++-- .../zh/dev-tools/cli/bubblegum/update-cnft.md | 1 + 16 files changed, 291 insertions(+), 43 deletions(-) diff --git a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md index 3e55ea0ee..580dbda70 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md @@ -52,8 +52,10 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--animation ` | Path to animation/video file | | `--project-url ` | External project URL | | `--symbol ` | On-chain symbol | -| `--royalties ` | Royalty percentage (0-100) | -| `--collection ` | Collection mint address ([Metaplex Core collection](/smart-contracts/core/collections)) | +| `--royalties ` | Explicit leaf royalty % (0–100, decimals allowed e.g. `7.5`). Opts out of collection inherit | +| `--inherit-royalties` | Store inherit sentinel `65535` and empty leaf creators. Requires `--collection` with a Royalties plugin. Default when the collection has Royalties and you omit `--royalties`, `--creator`, and JSON `seller_fee_basis_points` | +| `--creator
:` | Leaf payout split (repeatable; shares must sum to 100). Default: payer @ 100%. Opts out of inherit even if `--royalties` is omitted. Incompatible with `--inherit-royalties` | +| `--collection ` | Core collection address (must have BubblegumV2). [Metaplex Core collections](/smart-contracts/core/collections) | | `--owner ` | Leaf owner public key (defaults to payer) | ## Global Flags @@ -102,7 +104,7 @@ mplx bg nft create my-tree \ --royalties 5 ``` -1. Create in a collection: +1. Create in a collection (auto-inherits royalties when the collection has a Royalties plugin): ```bash mplx bg nft create my-tree \ @@ -111,6 +113,28 @@ mplx bg nft create my-tree \ --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` +1. Force inherit from the collection Royalties plugin: + +```bash +mplx bg nft create my-tree \ + --name "Inherited cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --inherit-royalties +``` + +1. Explicit leaf royalties with creator splits (opts out of inherit): + +```bash +mplx bg nft create my-tree \ + --name "Split cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --royalties 7.5 \ + --creator Addr111111111111111111111111111111111111111:60 \ + --creator Addr222222222222222222222222222222222222222:40 +``` + ## Output ```text @@ -124,6 +148,7 @@ Compressed NFT Created! Tree: my-tree Owner: YourWalletAddressHere Asset ID: CNFTAssetIdHere +Royalties: inherited (leaf sentinel 65535) Signature: 5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Explorer: https://solscan.io/tx/5xxx... @@ -154,6 +179,30 @@ When using `--json`, your metadata file should follow this structure: The `image` field will be automatically populated with the uploaded image URI. +If `seller_fee_basis_points` is set, the CLI treats it as an explicit leaf rate and **does not inherit** from the collection. + +## Inherited royalties + +When minting into a Core collection that has a [Royalties plugin](/smart-contracts/core/plugins/royalties), the CLI can store the inherit sentinel (`65535`) and empty leaf creators instead of copying the collection rate onto every cNFT. DAS then resolves the collection rate for display. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties). + +Create a Bubblegum-ready collection with royalties: + +```bash +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 +``` + +| Intent | Flags | +|--------|--------| +| Auto-inherit | `--collection ` and omit `--royalties`, `--creator`, and JSON `seller_fee_basis_points` | +| Force inherit | `--collection --inherit-royalties` | +| Explicit leaf rate | `--royalties <0-100>` (decimals ok). Opts out of inherit | +| Explicit splits | `--creator :` (repeatable; shares sum to 100). Opts out of inherit even without `--royalties` (leaf rate is then `0%`) | + +`--inherit-royalties` requires `--collection` with a Royalties plugin and cannot be combined with `--royalties` or `--creator`. A plain `mplx core collection create` is not enough — the collection needs `BubblegumV2` (and Royalties, to inherit). + ## Notes - The tree argument can be either a saved tree name or a public key address @@ -162,3 +211,4 @@ The `image` field will be automatically populated with the uploaded image URI. - The RPC must support DAS API - **Bubblegum V2 only** - These commands work with Bubblegum V2 trees and use [Metaplex Core collections](/smart-contracts/core/collections) (not Token Metadata collections) - Attributes format: `"trait:value,trait:value"` - colons separate trait from value, commas separate pairs +- The wizard offers inherit vs explicit royalties when the selected collection has a Royalties plugin diff --git a/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md index a7aa076e3..560e49258 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md @@ -109,10 +109,14 @@ Merkle Proof: Royalty: Basis Points: 500 (5%) + Inherited: Yes (leaf sentinel 65535) Primary Sale: No -Creators: - CreatorAddress1 (100%) ✓ +Creators (display): + CollectionCreatorAddress (100%) ✓ + +Creators (leaf / raw): + (empty — typical when SFBP is inherited) -------------------------------- ``` @@ -130,3 +134,4 @@ When using `--download`, two files are created: - Standard Solana RPC endpoints will fail with "Asset not found or RPC does not support DAS API" - The merkle proof is essential for transfer, burn, and update operations - The `--json` flag outputs machine-readable JSON for scripting +- For inherited royalties, `Royalty` / `Creators (display)` show the collection-resolved values. `Inherited` and `Creators (leaf / raw)` are diagnostic and appear only when DAS exposes `_raw` / `inherited`. Do not invent a sentinel if those fields are missing. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/en/dev-tools/cli/bubblegum/index.md b/src/pages/en/dev-tools/cli/bubblegum/index.md index 38779600a..c3b862d82 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/index.md +++ b/src/pages/en/dev-tools/cli/bubblegum/index.md @@ -26,9 +26,12 @@ Bubblegum V2 uses [Metaplex Core collections](/smart-contracts/core/collections) ```bash mplx bg collection create \ --name "My Compressed Collection" \ - --uri "https://example.com/collection.json" + --uri "https://example.com/collection.json" \ + --royalties 5 ``` +`--royalties` adds a Core Royalties plugin so later `mplx bg nft create --collection` mints can [inherit collection royalties](/dev-tools/cli/bubblegum/create-cnft#inherited-royalties) (leaf sentinel `65535`) instead of copying the rate onto every cNFT. + You can also use a vanity collection address with `--mint-keypair`: ```bash @@ -83,16 +86,19 @@ mplx config rpcs add mplx bg tree create --wizard ``` -1. Create a collection (optional but recommended): +1. Create a Bubblegum-ready collection (optional but recommended). Pass `--royalties` so mints can inherit: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` -1. Mint compressed NFTs: +1. Mint compressed NFTs. Omit `--royalties` / `--creator` (and JSON `seller_fee_basis_points`) to auto-inherit: ```bash -mplx bg nft create my-tree --wizard +mplx bg nft create my-tree --name "cNFT #1" --uri "https://example.com/1.json" --collection ``` ## Authority Model diff --git a/src/pages/en/dev-tools/cli/bubblegum/update-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/update-cnft.md index af8a8596d..de4acc0d7 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/update-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/update-cnft.md @@ -123,3 +123,4 @@ To update a compressed NFT, you must be either: - The `--uri` flag is mutually exclusive with `--image`, `--description`, and `--editor` - The `--editor` flag is mutually exclusive with all other update flags - Editor uses `$EDITOR` environment variable, or defaults to nano/notepad +- For cNFTs minted with inherited royalties, update rebuilds leaf-canonical metadata (`65535` + empty creators) from SDK `currentMetadata` or DAS `royalty.basis_points_raw` / `creators_raw`. Do not write the display royalty % into the leaf — that breaks the hash. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md index 06cc4c0bc..544697378 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md @@ -52,8 +52,10 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--animation ` | アニメーション/動画ファイルへのパス | | `--project-url ` | 外部プロジェクトURL | | `--symbol ` | オンチェーンシンボル | -| `--royalties ` | ロイヤリティパーセンテージ(0-100) | -| `--collection ` | コレクションミントアドレス([Metaplex Coreコレクション](/smart-contracts/core/collections)) | +| `--royalties ` | 明示的なリーフロイヤリティ%(0–100、小数可 例: `7.5`)。コレクション継承をオプトアウト | +| `--inherit-royalties` | 継承センチネル `65535` と空のリーフクリエイターを保存。Royaltiesプラグイン付きの `--collection` が必要。コレクションにRoyaltiesがあり `--royalties`、`--creator`、JSON の `seller_fee_basis_points` を省略した場合のデフォルト | +| `--creator
:` | リーフの分配(繰り返し可。シェア合計は100)。デフォルトは支払者 100%。`--royalties` がなくても継承をオプトアウト。`--inherit-royalties` とは併用不可 | +| `--collection ` | Coreコレクションアドレス(BubblegumV2必須)。[Metaplex Coreコレクション](/smart-contracts/core/collections) | | `--owner ` | リーフオーナーの公開鍵(デフォルトは支払者) | ## グローバルフラグ @@ -102,7 +104,7 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j --royalties 5 ``` -1. コレクションに作成: +1. コレクションに作成(Royaltiesプラグインがある場合は自動継承): ```bash mplx bg nft create my-tree \ @@ -111,6 +113,28 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` +1. コレクションのRoyaltiesプラグインから継承を強制: + + ```bash + mplx bg nft create my-tree \ + --name "Inherited cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --inherit-royalties + ``` + +1. 明示的なリーフロイヤリティとクリエイター分配(継承をオプトアウト): + + ```bash + mplx bg nft create my-tree \ + --name "Split cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --royalties 7.5 \ + --creator Addr111111111111111111111111111111111111111:60 \ + --creator Addr222222222222222222222222222222222222222:40 + ``` + ## 出力 ```text @@ -124,6 +148,7 @@ Compressed NFT Created! Tree: my-tree Owner: YourWalletAddressHere Asset ID: CNFTAssetIdHere +Royalties: inherited (leaf sentinel 65535) Signature: 5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Explorer: https://solscan.io/tx/5xxx... @@ -154,6 +179,28 @@ Explorer: https://solscan.io/tx/5xxx... `image`フィールドはアップロードされた画像URIで自動的に入力されます。 +`seller_fee_basis_points` が設定されている場合、CLIは明示的なリーフ料率として扱い、コレクションからは**継承しません**。 + +## 継承ロイヤリティ + +[Royaltiesプラグイン](/smart-contracts/core/plugins/royalties)を持つ Core コレクションへミントする場合、CLIはコレクション料率を各cNFTにコピーする代わりに、継承センチネル(`65535`)と空のリーフクリエイターを保存できます。DASは表示用にコレクション料率を解決します。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties)を参照してください。 + +```bash +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 +``` + +| 意図 | フラグ | +|--------|--------| +| 自動継承 | `--collection ` かつ `--royalties`、`--creator`、JSON の `seller_fee_basis_points` を省略 | +| 継承を強制 | `--collection --inherit-royalties` | +| 明示的なリーフ料率 | `--royalties <0-100>`(小数可)。継承をオプトアウト | +| 明示的な分配 | `--creator :`(繰り返し可。合計100)。`--royalties` がなくても継承をオプトアウト(リーフ料率は `0%`) | + +`--inherit-royalties` には Royalties プラグイン付きの `--collection` が必要で、`--royalties` や `--creator` と併用できません。`mplx core collection create` だけでは不十分です。コレクションには `BubblegumV2`(継承する場合は Royalties)が必要です。 + ## 注意事項 - ツリー引数は保存されたツリー名または公開鍵アドレスのいずれかを使用できます @@ -162,3 +209,4 @@ Explorer: https://solscan.io/tx/5xxx... - RPCはDAS APIをサポートしている必要があります - **Bubblegum V2のみ** - これらのコマンドはBubblegum V2ツリーで動作し、[Metaplex Coreコレクション](/smart-contracts/core/collections)を使用します(Token Metadataコレクションではありません) - 属性形式:`"trait:value,trait:value"` - コロンでtraitとvalueを区切り、カンマでペアを区切ります +- 選択したコレクションにRoyaltiesプラグインがある場合、ウィザードは継承と明示的ロイヤリティを選択できます diff --git a/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md index 67e10a949..d4286f1c7 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md @@ -109,10 +109,14 @@ Merkle Proof: Royalty: Basis Points: 500 (5%) + Inherited: Yes (leaf sentinel 65535) Primary Sale: No -Creators: - CreatorAddress1 (100%) ✓ +Creators (display): + CollectionCreatorAddress (100%) ✓ + +Creators (leaf / raw): + (empty — typical when SFBP is inherited) -------------------------------- ``` @@ -130,3 +134,4 @@ Creators: - 標準のSolana RPCエンドポイントは「Asset not found or RPC does not support DAS API」で失敗します - マークルプルーフは転送、バーン、更新操作に不可欠です - `--json`フラグはスクリプト用の機械可読JSONを出力します +- 継承ロイヤリティでは `Royalty` / `Creators (display)` がコレクション解決値です。`Inherited` と `Creators (leaf / raw)` は診断用で、DAS が `_raw` / `inherited` を返す場合のみ表示されます。これらのフィールドが無いときにセンチネルを捏造しないでください。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ja/dev-tools/cli/bubblegum/index.md b/src/pages/ja/dev-tools/cli/bubblegum/index.md index ae7df2aa5..0bb6460ce 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/index.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/index.md @@ -21,12 +21,17 @@ Bubblegumは、従来のNFTよりもはるかに低コストでNFTを作成で - 操作に必要なプルーフサイズ ### コレクション -Bubblegum V2は[Metaplex Coreコレクション](/smart-contracts/core/collections)を使用します(Token Metadataコレクションではありません)。まずCoreコレクションを作成してください: +Bubblegum V2は[Metaplex Coreコレクション](/smart-contracts/core/collections)を使用します。Bubblegum V2プラグイン付きのCoreコレクションを作成します: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` +`--royalties` は Core Royalties プラグインを追加し、後続の `mplx bg nft create --collection` が[コレクションロイヤリティを継承](/dev-tools/cli/bubblegum/create-cnft#inherited-royalties)できるようにします(リーフセンチネル `65535`)。 + ### RPC要件 圧縮NFT操作には、[DAS(Digital Asset Standard)API](/solana/rpcs-and-das#metaplex-das-api)をサポートするRPCエンドポイントが必要です。標準のSolana RPCエンドポイントはDASをサポートしておらず、圧縮NFTの取得、更新、転送、バーンには機能しません。 @@ -68,16 +73,19 @@ mplx bg [options] mplx bg tree create --wizard ``` -1. コレクションを作成(オプションですが推奨): +1. Bubblegum対応コレクションを作成(オプションですが推奨)。継承するには `--royalties` を付けます: ```bash - mplx core collection create --wizard + mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` -1. 圧縮NFTをミント: +1. 圧縮NFTをミント。自動継承するには `--royalties` / `--creator`(および JSON の `seller_fee_basis_points`)を省略します: ```bash - mplx bg nft create my-tree --wizard + mplx bg nft create my-tree --name "cNFT #1" --uri "https://example.com/1.json" --collection ``` ## 権限モデル diff --git a/src/pages/ja/dev-tools/cli/bubblegum/update-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/update-cnft.md index 049f807d3..476395331 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/update-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/update-cnft.md @@ -125,3 +125,4 @@ Updating compressed NFT... ✓ - `--uri`フラグは`--image`、`--description`、`--editor`と排他的です - `--editor`フラグは他のすべての更新フラグと排他的です - エディタは`$EDITOR`環境変数を使用するか、デフォルトでnano/notepadを使用します +- 継承ロイヤリティでミントされたcNFTの更新では、SDK の `currentMetadata` または DAS の `royalty.basis_points_raw` / `creators_raw` からリーフ正規メタデータ(`65535` + 空のクリエイター)を再構築します。表示用のロイヤリティ%をリーフに書き込まないでください。ハッシュが壊れます。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md index 6b408c97c..e4c144473 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md @@ -52,8 +52,10 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--animation ` | 애니메이션/비디오 파일 경로 | | `--project-url ` | 외부 프로젝트 URL | | `--symbol ` | 온체인 심볼 | -| `--royalties ` | 로열티 퍼센트 (0-100) | -| `--collection ` | 컬렉션 민트 주소 ([Metaplex Core 컬렉션](/smart-contracts/core/collections)) | +| `--royalties ` | 명시적 리프 로열티 %(0–100, 소수 가능 예: `7.5`). 컬렉션 상속을 옵트아웃 | +| `--inherit-royalties` | 상속 센티널 `65535`와 빈 리프 크리에이터를 저장. Royalties 플러그인이 있는 `--collection` 필요. 컬렉션에 Royalties가 있고 `--royalties`, `--creator`, JSON `seller_fee_basis_points`를 생략하면 기본값 | +| `--creator
:` | 리프 분배(반복 가능, 합계 100). 기본값: 지불자 100%. `--royalties`가 없어도 상속을 옵트아웃. `--inherit-royalties`와 함께 사용 불가 | +| `--collection ` | Core 컬렉션 주소(BubblegumV2 필수). [Metaplex Core 컬렉션](/smart-contracts/core/collections) | | `--owner ` | 리프 소유자 공개 키 (기본값은 지불자) | ## 전역 플래그 @@ -102,7 +104,7 @@ mplx bg nft create my-tree \ --royalties 5 ``` -1. 컬렉션에 생성: +1. 컬렉션에 생성 (Royalties 플러그인이 있으면 자동 상속): ```bash mplx bg nft create my-tree \ @@ -111,6 +113,28 @@ mplx bg nft create my-tree \ --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` +1. 컬렉션 Royalties 플러그인에서 상속 강제: + +```bash +mplx bg nft create my-tree \ + --name "Inherited cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --inherit-royalties +``` + +1. 명시적 리프 로열티와 크리에이터 분배 (상속 옵트아웃): + +```bash +mplx bg nft create my-tree \ + --name "Split cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --royalties 7.5 \ + --creator Addr111111111111111111111111111111111111111:60 \ + --creator Addr222222222222222222222222222222222222222:40 +``` + ## 출력 ```text @@ -124,6 +148,7 @@ Compressed NFT Created! Tree: my-tree Owner: YourWalletAddressHere Asset ID: CNFTAssetIdHere +Royalties: inherited (leaf sentinel 65535) Signature: 5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Explorer: https://solscan.io/tx/5xxx... @@ -154,6 +179,28 @@ Explorer: https://solscan.io/tx/5xxx... `image` 필드는 업로드된 이미지 URI로 자동으로 채워집니다. +`seller_fee_basis_points`가 있으면 CLI는 이를 명시적 리프 비율로 취급하며 컬렉션에서 **상속하지 않습니다**. + +## 상속 로열티 + +[Royalties 플러그인](/smart-contracts/core/plugins/royalties)이 있는 Core 컬렉션에 민팅할 때 CLI는 컬렉션 비율을 각 cNFT에 복사하는 대신 상속 센티널(`65535`)과 빈 리프 크리에이터를 저장할 수 있습니다. DAS는 표시용으로 컬렉션 비율을 해석합니다. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties)를 참조하세요. + +```bash +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 +``` + +| 의도 | 플래그 | +|--------|--------| +| 자동 상속 | `--collection ` 그리고 `--royalties`, `--creator`, JSON `seller_fee_basis_points` 생략 | +| 상속 강제 | `--collection --inherit-royalties` | +| 명시적 리프 비율 | `--royalties <0-100>` (소수 가능). 상속 옵트아웃 | +| 명시적 분배 | `--creator :` (반복 가능, 합계 100). `--royalties`가 없어도 상속 옵트아웃 (리프 비율은 `0%`) | + +`--inherit-royalties`는 Royalties 플러그인이 있는 `--collection`이 필요하며 `--royalties` 또는 `--creator`와 함께 사용할 수 없습니다. `mplx core collection create`만으로는 부족합니다. 컬렉션에 `BubblegumV2`(상속하려면 Royalties)가 있어야 합니다. + ## 참고 사항 - 트리 인자는 저장된 트리 이름 또는 공개 키 주소를 사용할 수 있습니다 @@ -162,3 +209,4 @@ Explorer: https://solscan.io/tx/5xxx... - RPC는 DAS API를 지원해야 합니다 - **Bubblegum V2 전용** - 이 명령은 Bubblegum V2 트리에서 작동하며 [Metaplex Core 컬렉션](/smart-contracts/core/collections)을 사용합니다 (Token Metadata 컬렉션이 아님) - 속성 형식: `"trait:value,trait:value"` - 콜론으로 trait와 value를 구분하고 쉼표로 쌍을 구분합니다 +- 선택한 컬렉션에 Royalties 플러그인이 있으면 마법사에서 상속과 명시적 로열티를 고를 수 있습니다 diff --git a/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md index ef4a347ea..480fab770 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md @@ -109,10 +109,14 @@ Merkle Proof: Royalty: Basis Points: 500 (5%) + Inherited: Yes (leaf sentinel 65535) Primary Sale: No -Creators: - CreatorAddress1 (100%) ✓ +Creators (display): + CollectionCreatorAddress (100%) ✓ + +Creators (leaf / raw): + (empty — typical when SFBP is inherited) -------------------------------- ``` @@ -130,3 +134,4 @@ Creators: - 표준 Solana RPC 엔드포인트는 "Asset not found or RPC does not support DAS API"로 실패합니다 - 머클 증명은 전송, 소각, 업데이트 작업에 필수적입니다 - `--json` 플래그는 스크립팅을 위한 기계 판독 가능한 JSON을 출력합니다 +- 상속 로열티에서 `Royalty` / `Creators (display)`는 컬렉션에서 해석된 값입니다. `Inherited`와 `Creators (leaf / raw)`는 진단용이며 DAS가 `_raw` / `inherited`를 제공할 때만 표시됩니다. 해당 필드가 없으면 센티널을 만들지 마세요. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ko/dev-tools/cli/bubblegum/index.md b/src/pages/ko/dev-tools/cli/bubblegum/index.md index ccd04a14d..5cf064d65 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/index.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/index.md @@ -21,12 +21,17 @@ Bubblegum은 기존 NFT보다 훨씬 저렴한 비용으로 NFT를 생성할 수 - 작업에 필요한 증명 크기 ### 컬렉션 -Bubblegum V2는 [Metaplex Core 컬렉션](/smart-contracts/core/collections)을 사용합니다 (Token Metadata 컬렉션이 아님). 먼저 Core 컬렉션을 생성하세요: +Bubblegum V2는 [Metaplex Core 컬렉션](/smart-contracts/core/collections)을 사용합니다. Bubblegum V2 플러그인이 있는 Core 컬렉션을 만듭니다: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` +`--royalties`는 Core Royalties 플러그인을 추가하여 이후 `mplx bg nft create --collection`이 [컬렉션 로열티를 상속](/dev-tools/cli/bubblegum/create-cnft#inherited-royalties)할 수 있게 합니다(리프 센티널 `65535`). + ### RPC 요구 사항 압축 NFT 작업에는 [DAS (Digital Asset Standard) API](/solana/rpcs-and-das#metaplex-das-api)를 지원하는 RPC 엔드포인트가 필요합니다. 표준 Solana RPC 엔드포인트는 DAS를 지원하지 않으며 압축 NFT의 조회, 업데이트, 전송 또는 소각에 작동하지 않습니다. @@ -68,16 +73,19 @@ mplx config rpcs add mplx bg tree create --wizard ``` -1. 컬렉션 생성 (선택 사항이지만 권장): +1. Bubblegum용 컬렉션 생성 (선택 사항이지만 권장). 상속하려면 `--royalties`를 넣습니다: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` -1. 압축 NFT 민트: +1. 압축 NFT 민트. 자동 상속하려면 `--royalties` / `--creator`(및 JSON `seller_fee_basis_points`)를 생략합니다: ```bash -mplx bg nft create my-tree --wizard +mplx bg nft create my-tree --name "cNFT #1" --uri "https://example.com/1.json" --collection ``` ## 권한 모델 diff --git a/src/pages/ko/dev-tools/cli/bubblegum/update-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/update-cnft.md index d096c6cf0..09b500122 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/update-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/update-cnft.md @@ -125,3 +125,4 @@ Updating compressed NFT... ✓ - `--uri` 플래그는 `--image`, `--description`, `--editor`와 배타적입니다 - `--editor` 플래그는 다른 모든 업데이트 플래그와 배타적입니다 - 편집기는 `$EDITOR` 환경 변수를 사용하거나 기본적으로 nano/notepad를 사용합니다 +- 상속 로열티로 민팅된 cNFT를 업데이트할 때 CLI는 SDK `currentMetadata` 또는 DAS `royalty.basis_points_raw` / `creators_raw`에서 리프 정규 메타데이터(`65535` + 빈 크리에이터)를 다시 만듭니다. 표시용 로열티 %를 리프에 쓰지 마세요. 해시가 깨집니다. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md index 70e4198aa..f44dfdc23 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md @@ -52,8 +52,10 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--animation ` | 动画/视频文件路径 | | `--project-url ` | 外部项目 URL | | `--symbol ` | 链上符号 | -| `--royalties ` | 版税百分比(0-100) | -| `--collection ` | 集合铸造地址([Metaplex Core 集合](/smart-contracts/core/collections)) | +| `--royalties ` | 显式叶子版税 %(0–100,允许小数,例如 `7.5`)。退出集合继承 | +| `--inherit-royalties` | 存储继承哨兵 `65535` 和空叶子创作者。需要带 Royalties 插件的 `--collection`。当集合有 Royalties 且省略 `--royalties`、`--creator` 和 JSON `seller_fee_basis_points` 时为默认 | +| `--creator
:` | 叶子分成(可重复;份额合计须为 100)。默认:付款者 100%。即使省略 `--royalties` 也会退出继承。不能与 `--inherit-royalties` 同时使用 | +| `--collection ` | Core 集合地址(必须有 BubblegumV2)。[Metaplex Core 集合](/smart-contracts/core/collections) | | `--owner ` | 叶子所有者公钥(默认为付款者) | ## 全局标志 @@ -102,7 +104,7 @@ mplx bg nft create my-tree \ --royalties 5 ``` -1. 在集合中创建: +1. 在集合中创建(集合有 Royalties 插件时自动继承): ```bash mplx bg nft create my-tree \ @@ -111,6 +113,28 @@ mplx bg nft create my-tree \ --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` +1. 强制从集合 Royalties 插件继承: + +```bash +mplx bg nft create my-tree \ + --name "Inherited cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --inherit-royalties +``` + +1. 显式叶子版税与创作者分成(退出继承): + +```bash +mplx bg nft create my-tree \ + --name "Split cNFT" \ + --uri "https://arweave.net/xxx" \ + --collection 7kPqYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \ + --royalties 7.5 \ + --creator Addr111111111111111111111111111111111111111:60 \ + --creator Addr222222222222222222222222222222222222222:40 +``` + ## 输出 ```text @@ -124,6 +148,7 @@ Compressed NFT Created! Tree: my-tree Owner: YourWalletAddressHere Asset ID: CNFTAssetIdHere +Royalties: inherited (leaf sentinel 65535) Signature: 5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Explorer: https://solscan.io/tx/5xxx... @@ -154,6 +179,28 @@ Explorer: https://solscan.io/tx/5xxx... `image` 字段将自动填充上传的图片 URI。 +如果设置了 `seller_fee_basis_points`,CLI 会将其视为显式叶子费率,**不会**从集合继承。 + +## 继承版税 + +铸造到带有 [Royalties 插件](/smart-contracts/core/plugins/royalties) 的 Core 集合时,CLI 可以存储继承哨兵(`65535`)和空叶子创作者,而不是把集合费率复制到每个 cNFT。DAS 会解析集合费率用于展示。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties)。 + +```bash +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 +``` + +| 意图 | 标志 | +|--------|--------| +| 自动继承 | `--collection `,并省略 `--royalties`、`--creator` 和 JSON `seller_fee_basis_points` | +| 强制继承 | `--collection --inherit-royalties` | +| 显式叶子费率 | `--royalties <0-100>`(允许小数)。退出继承 | +| 显式分成 | `--creator :`(可重复;合计 100)。即使没有 `--royalties` 也会退出继承(叶子费率则为 `0%`) | + +`--inherit-royalties` 需要带 Royalties 插件的 `--collection`,且不能与 `--royalties` 或 `--creator` 同时使用。仅用 `mplx core collection create` 不够——集合需要 `BubblegumV2`(若要继承还需要 Royalties)。 + ## 注意事项 - 树参数可以是已保存的树名称或公钥地址 @@ -162,3 +209,4 @@ Explorer: https://solscan.io/tx/5xxx... - RPC 必须支持 DAS API - **仅限 Bubblegum V2** - 这些命令适用于 Bubblegum V2 树,并使用 [Metaplex Core 集合](/smart-contracts/core/collections)(不是 Token Metadata 集合) - 属性格式:`"trait:value,trait:value"` - 冒号分隔 trait 和 value,逗号分隔对 +- 所选集合有 Royalties 插件时,向导会提供继承与显式版税两种选择 diff --git a/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md index f7e7ea26b..50f1e8a4d 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md @@ -109,10 +109,14 @@ Merkle Proof: Royalty: Basis Points: 500 (5%) + Inherited: Yes (leaf sentinel 65535) Primary Sale: No -Creators: - CreatorAddress1 (100%) ✓ +Creators (display): + CollectionCreatorAddress (100%) ✓ + +Creators (leaf / raw): + (empty — typical when SFBP is inherited) -------------------------------- ``` @@ -130,3 +134,4 @@ Creators: - 标准 Solana RPC 端点会显示 "Asset not found or RPC does not support DAS API" 错误 - 默克尔证明对于转移、销毁和更新操作至关重要 - `--json` 标志输出机器可读的 JSON,用于脚本编写 +- 继承版税时,`Royalty` / `Creators (display)` 显示集合解析后的值。`Inherited` 和 `Creators (leaf / raw)` 为诊断信息,仅在 DAS 提供 `_raw` / `inherited` 时出现。这些字段缺失时不要编造哨兵。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/zh/dev-tools/cli/bubblegum/index.md b/src/pages/zh/dev-tools/cli/bubblegum/index.md index 0fe618357..6d53a94b9 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/index.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/index.md @@ -21,12 +21,17 @@ Bubblegum 是 Metaplex 的压缩 NFT(cNFT)程序,允许您以传统 NFT - 操作所需的证明大小 ### 集合 -Bubblegum V2 使用 [Metaplex Core 集合](/smart-contracts/core/collections)(不是 Token Metadata 集合)。首先创建一个 Core 集合: +Bubblegum V2 使用 [Metaplex Core 集合](/smart-contracts/core/collections)。创建带 Bubblegum V2 插件的 Core 集合: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` +`--royalties` 会添加 Core Royalties 插件,以便后续 `mplx bg nft create --collection` 可以[继承集合版税](/dev-tools/cli/bubblegum/create-cnft#inherited-royalties)(叶子哨兵 `65535`)。 + ### RPC 要求 压缩 NFT 操作需要支持 [DAS(Digital Asset Standard)API](/solana/rpcs-and-das#metaplex-das-api) 的 RPC 端点。标准 Solana RPC 端点不支持 DAS,无法用于获取、更新、转移或销毁压缩 NFT。 @@ -68,16 +73,19 @@ mplx config rpcs add mplx bg tree create --wizard ``` -1. 创建集合(可选但推荐): +1. 创建 Bubblegum 可用集合(可选但推荐)。传入 `--royalties` 以便铸造时继承: ```bash -mplx core collection create --wizard +mplx bg collection create \ + --name "My Compressed Collection" \ + --uri "https://example.com/collection.json" \ + --royalties 5 ``` -1. 铸造压缩 NFT: +1. 铸造压缩 NFT。省略 `--royalties` / `--creator`(以及 JSON `seller_fee_basis_points`)即可自动继承: ```bash -mplx bg nft create my-tree --wizard +mplx bg nft create my-tree --name "cNFT #1" --uri "https://example.com/1.json" --collection ``` ## 权限模型 diff --git a/src/pages/zh/dev-tools/cli/bubblegum/update-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/update-cnft.md index 68cc6d31a..c5efbe0a1 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/update-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/update-cnft.md @@ -125,3 +125,4 @@ Updating compressed NFT... ✓ - `--uri` 标志与 `--image`、`--description` 和 `--editor` 互斥 - `--editor` 标志与所有其他更新标志互斥 - 编辑器使用 `$EDITOR` 环境变量,或默认使用 nano/notepad +- 对以继承版税铸造的 cNFT,更新会从 SDK `currentMetadata` 或 DAS `royalty.basis_points_raw` / `creators_raw` 重建叶子规范元数据(`65535` + 空创作者)。不要把展示用的版税 % 写入叶子,否则哈希会失败。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties) From 81d397f34cf242e4f770de15a219649e4bbdc396 Mon Sep 17 00:00:00 2001 From: MarkSackerberg <93528482+MarkSackerberg@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:18:29 +0200 Subject: [PATCH 2/4] Clarify inherit creator defaults and legacy DAS sentinel. Scope the payer@100% default to explicit-leaf mints, mark JSON seller_fee_basis_points incompatible with --inherit-royalties, and warn that older DAS may put 65535 on basis_points. --- src/pages/en/dev-tools/cli/bubblegum/create-cnft.md | 4 ++-- src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md | 2 +- src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md | 4 ++-- src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md | 2 +- src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md | 4 ++-- src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md | 2 +- src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md | 4 ++-- src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md index 580dbda70..c74d76eb8 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md @@ -54,7 +54,7 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--symbol ` | On-chain symbol | | `--royalties ` | Explicit leaf royalty % (0–100, decimals allowed e.g. `7.5`). Opts out of collection inherit | | `--inherit-royalties` | Store inherit sentinel `65535` and empty leaf creators. Requires `--collection` with a Royalties plugin. Default when the collection has Royalties and you omit `--royalties`, `--creator`, and JSON `seller_fee_basis_points` | -| `--creator
:` | Leaf payout split (repeatable; shares must sum to 100). Default: payer @ 100%. Opts out of inherit even if `--royalties` is omitted. Incompatible with `--inherit-royalties` | +| `--creator
:` | Leaf payout split (repeatable; shares must sum to 100). For explicit-leaf mints, the default is payer @ 100%. Opts out of inherit even if `--royalties` is omitted. Incompatible with `--inherit-royalties` | | `--collection ` | Core collection address (must have BubblegumV2). [Metaplex Core collections](/smart-contracts/core/collections) | | `--owner ` | Leaf owner public key (defaults to payer) | @@ -201,7 +201,7 @@ mplx bg collection create \ | Explicit leaf rate | `--royalties <0-100>` (decimals ok). Opts out of inherit | | Explicit splits | `--creator :` (repeatable; shares sum to 100). Opts out of inherit even without `--royalties` (leaf rate is then `0%`) | -`--inherit-royalties` requires `--collection` with a Royalties plugin and cannot be combined with `--royalties` or `--creator`. A plain `mplx core collection create` is not enough — the collection needs `BubblegumV2` (and Royalties, to inherit). +`--inherit-royalties` requires `--collection` with a Royalties plugin and cannot be combined with `--royalties`, `--creator`, or JSON `seller_fee_basis_points`. A plain `mplx core collection create` is not enough — the collection needs `BubblegumV2` (and Royalties, to inherit). ## Notes diff --git a/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md index 560e49258..819eb9192 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/fetch-cnft.md @@ -134,4 +134,4 @@ When using `--download`, two files are created: - Standard Solana RPC endpoints will fail with "Asset not found or RPC does not support DAS API" - The merkle proof is essential for transfer, burn, and update operations - The `--json` flag outputs machine-readable JSON for scripting -- For inherited royalties, `Royalty` / `Creators (display)` show the collection-resolved values. `Inherited` and `Creators (leaf / raw)` are diagnostic and appear only when DAS exposes `_raw` / `inherited`. Do not invent a sentinel if those fields are missing. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties) +- For inherited royalties, `Royalty` / `Creators (display)` show the collection-resolved values. `Inherited` and `Creators (leaf / raw)` are diagnostic and appear only when DAS exposes `_raw` / `inherited`. Do not invent a sentinel if those fields are missing. Older DAS may omit `_raw` / `inherited` and return `royalty.basis_points: 65535` — that is the leaf inherit sentinel, not the collection-resolved rate. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md index 544697378..d5a9a6578 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md @@ -54,7 +54,7 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--symbol ` | オンチェーンシンボル | | `--royalties ` | 明示的なリーフロイヤリティ%(0–100、小数可 例: `7.5`)。コレクション継承をオプトアウト | | `--inherit-royalties` | 継承センチネル `65535` と空のリーフクリエイターを保存。Royaltiesプラグイン付きの `--collection` が必要。コレクションにRoyaltiesがあり `--royalties`、`--creator`、JSON の `seller_fee_basis_points` を省略した場合のデフォルト | -| `--creator
:` | リーフの分配(繰り返し可。シェア合計は100)。デフォルトは支払者 100%。`--royalties` がなくても継承をオプトアウト。`--inherit-royalties` とは併用不可 | +| `--creator
:` | リーフの分配(繰り返し可。シェア合計は100)。明示的リーフミントではデフォルトは支払者 100%。`--royalties` がなくても継承をオプトアウト。`--inherit-royalties` とは併用不可 | | `--collection ` | Coreコレクションアドレス(BubblegumV2必須)。[Metaplex Coreコレクション](/smart-contracts/core/collections) | | `--owner ` | リーフオーナーの公開鍵(デフォルトは支払者) | @@ -199,7 +199,7 @@ mplx bg collection create \ | 明示的なリーフ料率 | `--royalties <0-100>`(小数可)。継承をオプトアウト | | 明示的な分配 | `--creator :`(繰り返し可。合計100)。`--royalties` がなくても継承をオプトアウト(リーフ料率は `0%`) | -`--inherit-royalties` には Royalties プラグイン付きの `--collection` が必要で、`--royalties` や `--creator` と併用できません。`mplx core collection create` だけでは不十分です。コレクションには `BubblegumV2`(継承する場合は Royalties)が必要です。 +`--inherit-royalties` には Royalties プラグイン付きの `--collection` が必要で、`--royalties`、`--creator`、JSON の `seller_fee_basis_points` と併用できません。`mplx core collection create` だけでは不十分です。コレクションには `BubblegumV2`(継承する場合は Royalties)が必要です。 ## 注意事項 diff --git a/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md index d4286f1c7..b55914577 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/fetch-cnft.md @@ -134,4 +134,4 @@ Creators (leaf / raw): - 標準のSolana RPCエンドポイントは「Asset not found or RPC does not support DAS API」で失敗します - マークルプルーフは転送、バーン、更新操作に不可欠です - `--json`フラグはスクリプト用の機械可読JSONを出力します -- 継承ロイヤリティでは `Royalty` / `Creators (display)` がコレクション解決値です。`Inherited` と `Creators (leaf / raw)` は診断用で、DAS が `_raw` / `inherited` を返す場合のみ表示されます。これらのフィールドが無いときにセンチネルを捏造しないでください。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties) +- 継承ロイヤリティでは `Royalty` / `Creators (display)` がコレクション解決値です。`Inherited` と `Creators (leaf / raw)` は診断用で、DAS が `_raw` / `inherited` を返す場合のみ表示されます。これらのフィールドが無いときにセンチネルを捏造しないでください。古い DAS は `_raw` / `inherited` を省略し `royalty.basis_points: 65535` を返すことがあります。これはリーフの継承センチネルであり、コレクション解決後の料率ではありません。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md index e4c144473..f1d1d0cc6 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md @@ -54,7 +54,7 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--symbol ` | 온체인 심볼 | | `--royalties ` | 명시적 리프 로열티 %(0–100, 소수 가능 예: `7.5`). 컬렉션 상속을 옵트아웃 | | `--inherit-royalties` | 상속 센티널 `65535`와 빈 리프 크리에이터를 저장. Royalties 플러그인이 있는 `--collection` 필요. 컬렉션에 Royalties가 있고 `--royalties`, `--creator`, JSON `seller_fee_basis_points`를 생략하면 기본값 | -| `--creator
:` | 리프 분배(반복 가능, 합계 100). 기본값: 지불자 100%. `--royalties`가 없어도 상속을 옵트아웃. `--inherit-royalties`와 함께 사용 불가 | +| `--creator
:` | 리프 분배(반복 가능, 합계 100). 명시적 리프 민트에서 기본값은 지불자 100%. `--royalties`가 없어도 상속을 옵트아웃. `--inherit-royalties`와 함께 사용 불가 | | `--collection ` | Core 컬렉션 주소(BubblegumV2 필수). [Metaplex Core 컬렉션](/smart-contracts/core/collections) | | `--owner ` | 리프 소유자 공개 키 (기본값은 지불자) | @@ -199,7 +199,7 @@ mplx bg collection create \ | 명시적 리프 비율 | `--royalties <0-100>` (소수 가능). 상속 옵트아웃 | | 명시적 분배 | `--creator :` (반복 가능, 합계 100). `--royalties`가 없어도 상속 옵트아웃 (리프 비율은 `0%`) | -`--inherit-royalties`는 Royalties 플러그인이 있는 `--collection`이 필요하며 `--royalties` 또는 `--creator`와 함께 사용할 수 없습니다. `mplx core collection create`만으로는 부족합니다. 컬렉션에 `BubblegumV2`(상속하려면 Royalties)가 있어야 합니다. +`--inherit-royalties`는 Royalties 플러그인이 있는 `--collection`이 필요하며 `--royalties`, `--creator`, JSON `seller_fee_basis_points`와 함께 사용할 수 없습니다. `mplx core collection create`만으로는 부족합니다. 컬렉션에 `BubblegumV2`(상속하려면 Royalties)가 있어야 합니다. ## 참고 사항 diff --git a/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md index 480fab770..aba9e3362 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/fetch-cnft.md @@ -134,4 +134,4 @@ Creators (leaf / raw): - 표준 Solana RPC 엔드포인트는 "Asset not found or RPC does not support DAS API"로 실패합니다 - 머클 증명은 전송, 소각, 업데이트 작업에 필수적입니다 - `--json` 플래그는 스크립팅을 위한 기계 판독 가능한 JSON을 출력합니다 -- 상속 로열티에서 `Royalty` / `Creators (display)`는 컬렉션에서 해석된 값입니다. `Inherited`와 `Creators (leaf / raw)`는 진단용이며 DAS가 `_raw` / `inherited`를 제공할 때만 표시됩니다. 해당 필드가 없으면 센티널을 만들지 마세요. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties) +- 상속 로열티에서 `Royalty` / `Creators (display)`는 컬렉션에서 해석된 값입니다. `Inherited`와 `Creators (leaf / raw)`는 진단용이며 DAS가 `_raw` / `inherited`를 제공할 때만 표시됩니다. 해당 필드가 없으면 센티널을 만들지 마세요. 구버전 DAS는 `_raw` / `inherited`를 생략하고 `royalty.basis_points: 65535`를 반환할 수 있습니다. 이는 리프 상속 센티널이며 컬렉션에서 해석된 비율이 아닙니다. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties) diff --git a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md index f44dfdc23..403201ad3 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md @@ -54,7 +54,7 @@ mplx bg nft create my-tree --name "My NFT" --uri "https://example.com/metadata.j | `--symbol ` | 链上符号 | | `--royalties ` | 显式叶子版税 %(0–100,允许小数,例如 `7.5`)。退出集合继承 | | `--inherit-royalties` | 存储继承哨兵 `65535` 和空叶子创作者。需要带 Royalties 插件的 `--collection`。当集合有 Royalties 且省略 `--royalties`、`--creator` 和 JSON `seller_fee_basis_points` 时为默认 | -| `--creator
:` | 叶子分成(可重复;份额合计须为 100)。默认:付款者 100%。即使省略 `--royalties` 也会退出继承。不能与 `--inherit-royalties` 同时使用 | +| `--creator
:` | 叶子分成(可重复;份额合计须为 100)。显式叶子铸造时默认是付款者 100%。即使省略 `--royalties` 也会退出继承。不能与 `--inherit-royalties` 同时使用 | | `--collection ` | Core 集合地址(必须有 BubblegumV2)。[Metaplex Core 集合](/smart-contracts/core/collections) | | `--owner ` | 叶子所有者公钥(默认为付款者) | @@ -199,7 +199,7 @@ mplx bg collection create \ | 显式叶子费率 | `--royalties <0-100>`(允许小数)。退出继承 | | 显式分成 | `--creator :`(可重复;合计 100)。即使没有 `--royalties` 也会退出继承(叶子费率则为 `0%`) | -`--inherit-royalties` 需要带 Royalties 插件的 `--collection`,且不能与 `--royalties` 或 `--creator` 同时使用。仅用 `mplx core collection create` 不够——集合需要 `BubblegumV2`(若要继承还需要 Royalties)。 +`--inherit-royalties` 需要带 Royalties 插件的 `--collection`,且不能与 `--royalties`、`--creator` 或 JSON `seller_fee_basis_points` 同时使用。仅用 `mplx core collection create` 不够——集合需要 `BubblegumV2`(若要继承还需要 Royalties)。 ## 注意事项 diff --git a/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md index 50f1e8a4d..e214e815c 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/fetch-cnft.md @@ -134,4 +134,4 @@ Creators (leaf / raw): - 标准 Solana RPC 端点会显示 "Asset not found or RPC does not support DAS API" 错误 - 默克尔证明对于转移、销毁和更新操作至关重要 - `--json` 标志输出机器可读的 JSON,用于脚本编写 -- 继承版税时,`Royalty` / `Creators (display)` 显示集合解析后的值。`Inherited` 和 `Creators (leaf / raw)` 为诊断信息,仅在 DAS 提供 `_raw` / `inherited` 时出现。这些字段缺失时不要编造哨兵。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties) +- 继承版税时,`Royalty` / `Creators (display)` 显示集合解析后的值。`Inherited` 和 `Creators (leaf / raw)` 为诊断信息,仅在 DAS 提供 `_raw` / `inherited` 时出现。这些字段缺失时不要编造哨兵。旧版 DAS 可能省略 `_raw` / `inherited` 并返回 `royalty.basis_points: 65535`——那是叶子继承哨兵,不是集合解析后的费率。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties) From d4461276396629076186b56684892abe4df66acf Mon Sep 17 00:00:00 2001 From: MarkSackerberg <93528482+MarkSackerberg@users.noreply.github.com> Date: Thu, 24 Sep 2026 12:06:34 +0200 Subject: [PATCH 3/4] fix localized inherited royalty anchors --- src/pages/ja/smart-contracts/bubblegum-v2/mint-cnfts.md | 2 +- src/pages/ko/smart-contracts/bubblegum-v2/mint-cnfts.md | 2 +- src/pages/zh/smart-contracts/bubblegum-v2/mint-cnfts.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/ja/smart-contracts/bubblegum-v2/mint-cnfts.md b/src/pages/ja/smart-contracts/bubblegum-v2/mint-cnfts.md index df192028d..410f51a40 100644 --- a/src/pages/ja/smart-contracts/bubblegum-v2/mint-cnfts.md +++ b/src/pages/ja/smart-contracts/bubblegum-v2/mint-cnfts.md @@ -149,7 +149,7 @@ await createCollection(umi, { {% /dialect %} {% /dialect-switcher %} -## コレクションからロイヤリティを継承する +## コレクションからロイヤリティを継承する {% #inheriting-royalties-from-the-collection %} MPL-Coreコレクションにミントする場合、コレクションのロイヤリティ率をすべてのcNFTにコピーする代わりに、リーフに**センチネル**のセラーフィーベーシスポイント値(`65535`、`SELLER_FEE_BASIS_POINTS_INHERIT` / `0xffff` としてエクスポート)を保存できます。DASは表示用に `royalty.basis_points` / `creators` にコレクションから解決された料率を置き、`royalty.basis_points_raw` / `creators_raw` にリーフセンチネルを置き(`royalty.inherited: true`)、オンチェーンのリーフはハッシュ化のためにセンチネルを保持します。 diff --git a/src/pages/ko/smart-contracts/bubblegum-v2/mint-cnfts.md b/src/pages/ko/smart-contracts/bubblegum-v2/mint-cnfts.md index b8f322fbf..a6ad2b328 100644 --- a/src/pages/ko/smart-contracts/bubblegum-v2/mint-cnfts.md +++ b/src/pages/ko/smart-contracts/bubblegum-v2/mint-cnfts.md @@ -145,7 +145,7 @@ await createCollection(umi, { {% /dialect %} {% /dialect-switcher %} -## 컬렉션에서 로열티 상속 +## 컬렉션에서 로열티 상속 {% #inheriting-royalties-from-the-collection %} MPL-Core 컬렉션에 민팅할 때 컬렉션의 로열티 비율을 모든 cNFT에 복사하는 대신 리프에 **센티널** seller fee basis points 값(`65535`, `SELLER_FEE_BASIS_POINTS_INHERIT` / `0xffff`로 내보냄)을 저장할 수 있습니다. DAS는 표시용으로 `royalty.basis_points` / `creators`에 컬렉션에서 해석된 비율을 두고, `royalty.basis_points_raw` / `creators_raw`에 리프 센티널을 두며(`royalty.inherited: true`), 온체인 리프는 해싱을 위해 센티널을 유지합니다. diff --git a/src/pages/zh/smart-contracts/bubblegum-v2/mint-cnfts.md b/src/pages/zh/smart-contracts/bubblegum-v2/mint-cnfts.md index e9be713da..76de3c726 100644 --- a/src/pages/zh/smart-contracts/bubblegum-v2/mint-cnfts.md +++ b/src/pages/zh/smart-contracts/bubblegum-v2/mint-cnfts.md @@ -145,7 +145,7 @@ await createCollection(umi, { {% /dialect %} {% /dialect-switcher %} -## 从集合继承版税 +## 从集合继承版税 {% #inheriting-royalties-from-the-collection %} 铸造到 MPL-Core 集合时,可以在叶子上存储**哨兵** seller fee basis points 值(`65535`,导出为 `SELLER_FEE_BASIS_POINTS_INHERIT` / `0xffff`),而不是将集合的版税百分比复制到每个 cNFT。DAS 将集合解析后的费率放在 `royalty.basis_points` / `creators` 上供展示,并将叶子哨兵放在 `royalty.basis_points_raw` / `creators_raw` 上(同时 `royalty.inherited: true`),而链上叶子为哈希保留哨兵值。 From a30007c09f117499958078f7793d4df68cc6843a Mon Sep 17 00:00:00 2001 From: MarkSackerberg <93528482+MarkSackerberg@users.noreply.github.com> Date: Fri, 25 Sep 2026 11:21:22 +0200 Subject: [PATCH 4/4] Pin CLI inherit section slugs across locales. CJK headings do not slug to inherited-royalties, so index jump links need an explicit anchor. --- src/pages/en/dev-tools/cli/bubblegum/create-cnft.md | 2 +- src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md | 2 +- src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md | 2 +- src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md index c74d76eb8..42f214944 100644 --- a/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/en/dev-tools/cli/bubblegum/create-cnft.md @@ -181,7 +181,7 @@ The `image` field will be automatically populated with the uploaded image URI. If `seller_fee_basis_points` is set, the CLI treats it as an explicit leaf rate and **does not inherit** from the collection. -## Inherited royalties +## Inherited royalties {% #inherited-royalties %} When minting into a Core collection that has a [Royalties plugin](/smart-contracts/core/plugins/royalties), the CLI can store the inherit sentinel (`65535`) and empty leaf creators instead of copying the collection rate onto every cNFT. DAS then resolves the collection rate for display. See [Reading Inherited Royalties](/smart-contracts/bubblegum-v2/reading-inherited-royalties). diff --git a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md index d5a9a6578..d8162bc54 100644 --- a/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ja/dev-tools/cli/bubblegum/create-cnft.md @@ -181,7 +181,7 @@ Explorer: https://solscan.io/tx/5xxx... `seller_fee_basis_points` が設定されている場合、CLIは明示的なリーフ料率として扱い、コレクションからは**継承しません**。 -## 継承ロイヤリティ +## 継承ロイヤリティ {% #inherited-royalties %} [Royaltiesプラグイン](/smart-contracts/core/plugins/royalties)を持つ Core コレクションへミントする場合、CLIはコレクション料率を各cNFTにコピーする代わりに、継承センチネル(`65535`)と空のリーフクリエイターを保存できます。DASは表示用にコレクション料率を解決します。[継承ロイヤリティの読み取り](/smart-contracts/bubblegum-v2/reading-inherited-royalties)を参照してください。 diff --git a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md index f1d1d0cc6..498825679 100644 --- a/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/ko/dev-tools/cli/bubblegum/create-cnft.md @@ -181,7 +181,7 @@ Explorer: https://solscan.io/tx/5xxx... `seller_fee_basis_points`가 있으면 CLI는 이를 명시적 리프 비율로 취급하며 컬렉션에서 **상속하지 않습니다**. -## 상속 로열티 +## 상속 로열티 {% #inherited-royalties %} [Royalties 플러그인](/smart-contracts/core/plugins/royalties)이 있는 Core 컬렉션에 민팅할 때 CLI는 컬렉션 비율을 각 cNFT에 복사하는 대신 상속 센티널(`65535`)과 빈 리프 크리에이터를 저장할 수 있습니다. DAS는 표시용으로 컬렉션 비율을 해석합니다. [상속 로열티 읽기](/smart-contracts/bubblegum-v2/reading-inherited-royalties)를 참조하세요. diff --git a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md index 403201ad3..bfa09104f 100644 --- a/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md +++ b/src/pages/zh/dev-tools/cli/bubblegum/create-cnft.md @@ -181,7 +181,7 @@ Explorer: https://solscan.io/tx/5xxx... 如果设置了 `seller_fee_basis_points`,CLI 会将其视为显式叶子费率,**不会**从集合继承。 -## 继承版税 +## 继承版税 {% #inherited-royalties %} 铸造到带有 [Royalties 插件](/smart-contracts/core/plugins/royalties) 的 Core 集合时,CLI 可以存储继承哨兵(`65535`)和空叶子创作者,而不是把集合费率复制到每个 cNFT。DAS 会解析集合费率用于展示。参见[读取继承版税](/smart-contracts/bubblegum-v2/reading-inherited-royalties)。