
NFTDriveをOpenSeaで使う方法。
用意するもの
1.アップロードするファイル1MB未満(NFTDriveの制限)。
2.OpenSeaのアカウント(メタマスク)
3.それぞれの手数料を払うためのETH、MATIC、XYMなどなど
4.気合と根性と勇気と愛。
※こちらの記事はERC721での発行になります。
※2024Deploy方法に変更があったので記事を修正。
追記:ERC1155でのNFTを開発しました。

https://www.nft-drive.com/
NFTDriveのホームページに行きNFTDriveTESTもしくはMainNetを選択します。

作者のアドレスに自分のSymbolアドレスを入力してOpenSeaModeをONにします。すると将来OpenSeaの仕様変更に伴うリスク警告が表示されるので確認してOKを押します。

そうすると拡張ポート1がロックされメタデータの保存に利用されます。

別の識別子に好きなトークンのIDを入力します。
※これはNFTDriveのプレビューでMOSAICIDの代わりとして表示されます。
Symbolでもトークンを発行する場合は空欄にします。
(MOSAIC発行手数料50xymが掛かります)
descriptionの入力します
これはOpenSea内で表示される詳細情報です。
自動で日付と別の識別子、データアドレスが書きこまれます。
2022/5/12 10:10:20
NFTDrive-Data:TCBXYPLHAVKS7RX5FX53C7XJAPFOISZBFXTAFCI:
ID-Nomosaic:
ここが入力した文字:(BootarouGeminiPaint05)

external_url 外部サイトURLを入力します。
私自分のTwitterURLにしています。
name はNFTの名前ですね。
前後しますがメッセージになにか入力しておくとNFTDriveのプレビューで表示されます。

一通り入力したらファイルを選択してNFTの作成を開始してください。
Symbolでのトークンを発行してないので31xymです。
見積もりは高めにでてるのでおそらく10xymぐらいおつりが返ってくると思います。

MOSAICの発行プロセスが無いので通常より早いです。
完成まで待ちます。

完了しました。

このようにMOSAICIDが別の識別子になっています。
これでデータとOpenSea用のメタデータがパックされたオンチェーンデータの完成です。
オンチェーンのデータアドレスが必要になるのでモメしておきます。
TCQYWCCMGD5NPWANWUIT7SSUHBYW4HMTPJQOU7Q
続いてこれをNFTDrive用のコントラクトでミントします。
↓がNFTDrive用コントラクトです。
※2024/01/24
openzepplinと互換性がなくなったため下記のコードが新しくなりました。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
contract NFT is Context, ERC721Enumerable,Ownable {
string public domain="nftdrive-explorer.info";
string[] public dataAddress;
constructor(address InitialOwner) ERC721("NFTDriveTypeC", "NFTD")Ownable(InitialOwner) {}
function changeDecoderDomain(string memory _data) public onlyOwner {
domain=_data;
}
function pushDataAddress(string memory _add) public onlyOwner {
dataAddress.push(_add);
}
function safeMint(address to) public virtual {
_safeMint(to, totalSupply());
}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
return string(abi.encodePacked("https://",domain,"/download_opensea.php?address=",dataAddress[tokenId],"&c=.json"));
}
}
MINTの方法色々ツールがあるのですがRemixIDEを使います。

RemixIDEを開くとこんな感じ。

このようなページが出てくるのでCreat a new file を押してください

適当にファイル名を付けます。 nftdrive.sol
拡張子はsolにしてください。

上記載のコントラクトをコピペして貼り付けます。

ちょっとだけ設定があります。
※文字はかならず””で囲ってください。(ダブルクォーテーション)
1.デコーダーのドメインです。基本的にそのままでOK。
自分のサーバーにdownload.phpを落として使う場合は適時変更してください。オーナー権限で後で変えれます。
2.

コントラクトの名称=COLLECTIONのタイトルになります。
3.ティッカーはETHSCAN(polygonでも)
表示されます。


以上 編集が終わったら左のコンパイラーを押します。

バージョンを0.8.8に合わせます。
※使用しているOpenzepplinのライブラリーに0.8.1以上が必要なものがあるため。

コンパイルボタンを押します!
※コンパイルはこのプログラム(solidity)をイーサヴァーチャルマシーン(EVMコンピューター)が読めるコード(言語)に変換するということです。

成功すると緑のチェックが入ります。

次はこのコンパイルしたスマコンをデプロイ(イーサに登録)します。

さくさく行きましょうw
ENVIRONMENT
というこ項目があるのでinjected web3 にします

するとメタマスクが起動されるのでウォレットを接続します。
そしてOpenSeaが対応しているネットワークを選択します
※今回はpolygonテストネットのMUMBAIを選択しています。
テストしてみたい場合はテストネット用のMATICなどを事前に準備してください。

つぎに先ほどコンパイルしたnftdrive.solを選択します。

メタマスクのネットワーク設定が間違っていないか確認して左のデプロイボタンを押します。
2024.04.22現在:以下のようにDeployボタンの横に自分のアドレスを入力するようになりました。
コピペしてDeployボタンを押してください。


確認とでるのでもう一度ネットワークを確認して押します。

ブロックに取り込まれるのを待ちましょう。

無事取り込まれると緑のチェックが付きます。
これでコントラクトが登録されました。
それではこのコントラクトを使ってNFTをMINTしていきます。

まず左メニュー下の登録済みコントラクトメニューを展開します。

なにやらたくさん表示されています。
まず最初にすることは先ほどNFTDriveでアップロードしたデータアドレスを登録します。
TCQYWCCMGD5NPWANWUIT7SSUHBYW4HMTPJQOU7Q
これを登録します。

左メニュー内のpushDataAddressを押してメニューを展開します。

展開すると_addと書かれたフォームがあるのでそこにデータアドレスをコピペします。

こんな感じ。

コピペしたらTransactを押してNFTDriveのデータアドレスを登録します。

Transactを押すとメタマスクが立ち上がるので確認を押します。
※ガスが安く表示されていたらつっかえる(出来ない)ときがあるので適時調節してください。

承認されるまで待ちます。

承認(ブロックに取り込まれる)と緑にチェックが付きます。
次はMINT(NFTを発行します。)します。

safeMint と言う項目があるので、メニューを展開します。

to address とあるので自分のウォレットアドレスを入力します。
※このアドレスがデプロイしたアドレスと違うとこのコントラクトは動きません。

コピペしたらTransactを押します。

メタマスクが立ち上がるので確認を押してMINT(発行します。)

承認されるまで待ちます。
承認されたら以上で発行作業は完了です!
あとはOpenSeaにこのコントラクト(コントラクトアドレス)を登録します。

OpenSeaを開いてMyCOLLECTIONを押します。

Creat a Collection横のメニューを展開してImpo an existing smart contractを押す。

Live on mainnet か Live on testnet どちらかを選択。
※この記事ではテストネットでやってます。

メインネットかテストネットを押すとコントラクトアドレスを登録するページに行きます。
コントラクトアドレスが必要なので

RemixIDEの左メニュー上部のコピーボタンを押してコントラクトアドレスをコピーします。
※コレクションにNFTを追加するときに必要なのでどこかに控えておいてください。

コントラクトアドレスを張り付けてネットワークを選択してSUBMITを押します。
※この記事ではpolygonテストネットのMunbaiを使ったのでMunbaiを選択します。

SUBMIT押すと。
NFTDriveで作ったフルオンチェーンデータのNFTがOpenSeaに登録されます。
追記:現在上記の作業は不要となっております。
OpenSea自動で読み込みます。



こんな感じ。
https://testnets.opensea.io/assets/mumbai/0x53ecfa44e3347b1e56adc9fb8eccc196f4d4d0e3/0
お疲れさまでした!!
後はSellボタンから設定して売りに出せば販売されます。
長くなったのでコレクションの追加方法は分けて書きます。
でわ。
ちなみに今売りに出してるやつ宣伝しておきますw
全然売れないのでよかったら買ってみてください。

https://opensea.io/assets/matic/0x2edbb1386e79836df9b24d9dc4841c008f991300/1