お知らせ: 2025-06-14

開発の経過は以下にまとめています。

https://zenn.dev/nakamura196/books/41693d2d017082

概要

以下の記事をはじめとして、ブロックチェーンを用いたデジタル文化財管理システムの試作をしています。

今回、アップロードしたデータがNFTとして認識されるように改修しました。

勉強過程のため、不完全な点があるかと思いますが、参考になりましたら幸いです。

使い方ページ

ファイルのアップロード方法はこれまでと同様です。アップロード後に表示される一覧ページにおいて、詳細ページへのリンクを追加しました。

リンクをクリックすると、以下のような詳細画面に遷移します。

実装方法

※ この章は、AIが執筆しました。

1. コントラクトのNFT対応

既存のデジタル文化財管理コントラクトを、ERC721規格に準拠したNFTコントラクトに改修しました。

主な変更点:

1. OpenZeppelinライブラリの追加

iimmppoorrtt""@@ooppeennzzeeppppeelliinn//ccoonnttrraaccttss--uuppggrraaddeeaabbllee//ttookkeenn//EERRCC772211//EeRxCt7e2n1sUipognrsa/dEeRaCb7l2e1.UsRoIlS"t;orageUpgradeable.sol";

2. コントラクトの継承構造を変更

c{}ontrIOUEEanwURRcinPCCttaS77ibU22Dalp11ilegUUgiUrpRizpagItagdrSabreatllaadoHedbere,elaaraebgib,letleUae,pg,geraidseable

3. 初期化関数の更新

f}uncti____oOUEEnwURRnPCCiaS77nbU22ilp11teg_Ui_riRaianIlndiSiiettzta(oe(b"r(mlDa)seigg_gep.ii_usntibeianlntliid(tce)H(r;e)i)r;n;iittaigael"i,ze"rDH{");

4. 文化財登録時のNFTミント機能

f)}unpcutssssbuh}__eittttlie)ssmorrrrinr)aeiniiiicti;Nfttnnnn2tindiotiFeTrgggg{5adaemwisTMoHe6g:msanmDikegmmmmeecgeeenerieeeeisi:rersltnismmmmd.diU:te(Uttoooop,_pratmRaerrrr=untlmmesIgryyyysai:spdg(eHhhmog::.iRe____e(en_.sdernditrH,:isbfe,giaemoiemelanitmsaktr_anold_saecgeaidgdcsettg,rengteeekeroeeiUUeasUr.,kr(prRsgcr,teetlI.erliindi,l(i,mdU(oe{pe)Rinnts;Id,git),toa;hnmm;,ps,g.sender,_name);

2. メタデータ管理システムの実装

NFTの標準的なメタデータ形式に対応するため、サーバーサイドでのメタデータ生成・アップロード機能を実装しました。

1. API Routeでのメタデータ生成

c}o;nc}c}sso;o)rtnndia]nt;csaemtJsyP/utmsat{}{}Stpiapecgr,Oenplm:reitvtvNj:apei:brarastatnpualalBo'aadaatitiuiulnapMdmimeteteoBpAieaeoas_:_:blpP/tt,ng:ttolIuaa:eyny"bipdU[pepc使la=drewe=aotel::taa{s,DPnidTc"a"ieoI/ortnwnPrPiea/Foip("tBjSunt)alstai"."ooeto,t,bn.ano('j,I[s=SJOSaSOstNyr.niscntgr((in)nagmief,y(dmeestcardiapttai,onn,ulilm,ag2e)U]r,l){=>{

2. フロントエンドでの統合処理

c}o;nccmmmmc}ca)sooeeeeo)ow;tnnttttnmb;naffim1s2saaaaseos3ioomeh.t.tddddttdt.trrataaaaahymmganimttttmo:mrDDeddmeaaaaedeeaaUalatFFFFt:mtgttrteIgaooooaeaiaalaSPedrrrrd'tds..,RuFUammmmaPaatndebSrtDDDDtOdteaesmlaaaaaaSaarmsuiFttttRTtRHeclt=oaaaae'aee,rtr....s,Fsri.=fmaaaapouipuoDpppporlttrarappppnmtailsmteeeesDUgoyDannnnea=RennaddddtI(,ct=((((=aaa''''w(.ntndiaaeieyaemwi)mwpmsaataeecgi=gF''retm>eo,,iUeUrprft{rm'ftlealDmoi'td;aero,cattmnhtaaD'i(a(da,m'R)ata/e;tafgasa.oepp'nrUio)amr/n;mDlusea)pe)t;l.;aoj.asddoe'ns,(c)r{;iption);

まとめ

Web3およびNFTの学習過程において、参考になりましたら幸いです。