原文
SIWE-Gated NFT Media URI — FairNick (2026-06-04)
ERC(Ethereum Request for Comments)ドラフト: SIWEで保護されたNFTメディアURI
皆さん、こんにちは。
新しいERCドラフト「SIWEで保護されたNFTメディアURI」についてフィードバックをいただきたく思います。
コアとなるユースケースはシンプルです。ウォレットが公開NFTメタデータ内の private_media_uri を認識し、認可されたアカウントにSIWEチャレンジへの署名を要求します。その後、返されたプライベートな image を公開プレビューの代わりに表示します。この提案を実装していない既存のクライアントは、引き続き公開メタデータをレンダリングできます。
概要
提案されているメタデータ追加は、新しい公開メタデータフィールド1つです。
{
"name": "Example NFT",
"description": "Public description safe for unauthenticated clients.",
"image": "https://example.com/public-preview.png",
"private_media_uri": "https://media.example.com/eip-private-nft-media/8453/0xabc0000000000000000000000000000000000000/42"
}
ERC-721トークンは tokenURI(tokenId) を通じてこのJSONを公開します。ERC-1155トークンは、uri(id) によって返される既存のメタデータURIを通じてこれを公開します。
private_media_uri は発見のためのポインターに過ぎません。これは絶対HTTPS URIでなければならず、フラグメントや埋め込みユーザー情報を含んではならず、シークレット、ベアラートークン、アカウント固有のシークレット、またはプライベートメディアペイロードを含んではなりません。既存のクライアントはこれを無視し、公開 image のレンダリングを続行できます。
ウォレットのフロー
主要なウォレットのユースケースは次のとおりです。
- ウォレットは通常のERC-721/ERC-1155メタデータを読み取り、公開
imageをレンダリングします。 - ウォレットは
private_media_uriを認識し、それをリクエストします。 - リソースサーバーは
WWW-Authenticate: SIWEとchallenge_uriを伴う401 Unauthorizedを返します。 - ウォレットは所有者、保有者、またはその他の認可されたアカウントにSIWEメッセージへの署名を要求します。
- ウォレットは署名済みSIWE証明を付けて保護されたURIを再試行します。
- リソースサーバーは署名とトークン認可を検証し、
imageを含むプライベートJSONメタデータを返します。 - ウォレットはそのプライベート
imageをアンロックされたNFTメディアとしてレンダリングします。
ウォレットプロバイダーがこれを一度実装すれば、private_media_uri を検出し、SIWEアンロックフローを実行し、公開プレビューをプライベート image に置き換えることができるようにすることを意図しています。
SIWEバインディング
SIWEチャレンジは、署名をリクエストされている正確なリソースにバインドします。チャレンジメッセージには、リソースサーバーのドメイン、リクエストされたプライベートメディアURI、トークンチェーンID、ナンス、有効期限、およびトークンスコープのSIWE resources エントリを含める必要があります。
eip155:{chainId}/{standard}:{contractAddress}/{tokenId}?account={account}&resource={privateMediaUri}
例:
eip155:8453/erc721:0xabc0000000000000000000000000000000000000/42?account=0x1230000000000000000000000000000000000000&resource=https%3A%2F%2Fmedia.example.com%2Feip-private-nft-media%2F8453%2F0xabc0000000000000000000000000000000000000%2F42
リソースサーバーは、コンテンツを提供する前に、SIWEメッセージ、署名、ナンス、有効期限、ドメイン、URI、チェーン、コントラクト、トークンID、アカウント、および正確なプライベートメディアURIを検証します。コントラクトアカウント署名にはEIP-1271が使用されます。
ERC-721の場合、バインドされたアカウントは現在の ownerOf(tokenId) でなければなりません。ERC-1155の場合、バインドされたアカウントは balanceOf(account, id) > 0 でなければなりません。リソースサーバーは、独自のコンテンツポリシーがこれらの関係を認可として扱う場合、承認されたオペレーターまたはデリゲートもサポートできます。
追加リソース
同じ正確なリソースバインディングは、アンロックされたNFT画像以上のものを保護できます。例えば、保有者は、private-image.png やトークンの保護されたすべてのリソースへのアクセスを許可することなく、サードパーティサイトが third-party-view.json をフェッチすることを認可できます。この提案はグローバルな委任レジストリを定義するものではなく、保護されたURIがどのように発見され、SIWE認可がその正確なURIにどのようにスコープされるかを定義するだけです。
このドラフトは、既存のERC-721/ERC-1155メタデータ、SIWE、およびEIP-1271コントラクトアカウント署名に基づいて構築されています。新しいオンチェーンインターフェースは追加しません。
特に、private_media_uri が明確であるか、SIWEチャレンジフローがウォレットとメディアクライアントの期待に合致するか、そしてこれがウォレット、インデクサー、NFTプロジェクト、メディアサーバーが首尾一貫して実装するのに十分小さいかについてフィードバックをいただけると幸いです。
お読みいただきありがとうございます。
1投稿 - 1参加者