さて、本日は社内勉強会で用いた、Solana上でのトークン発行に関する資料を公開します。Solanaで独自トークンを作りたいとか、仕組みが知りたい方はぜひ読んでください。
前提
全てアカウントとして保存される
-
Ethereum
ブロックチェーン上にSmart Contractと呼ばれるプログラムがあり、それと一緒に実行に使われる値も保存されている。またERC20のような規格はプログラムごとに複製されて保存されている。
-
Solana
ブロックチェーン上にあるプログラムはSmart ContractではなくProgramという名称で呼ばれる。このProgramは実行時などに扱うデータと分離され、アカウント(PCでいうファイルやフォルダ)という形で保存される。
-
アカウントの例
- Wallet Account
- Mint Account
- (Associated) Token Account(略してATA)
- Program Account
etc.
また、規格はSPL(Solana Program Library)のみでEthereumみたいにそれぞれのプログラムにコピーは作られない。その代わりに工場のような役割を果たしそれぞれの役割を持ったアカウントを作成する。
-
Token Architecture
新しいTokenを作る場合
-
Mint Accountを作る
日銀のようなもの。
ポイント
- Mint Authority (HqFzP1LKDy4vdyDySMhDeoNsqH1MYaSEKDzEtXyrrvZS)
-
PDA(Program Derived Address)からAssociated Token Accountを作る
それぞれのToken専用の口座のようなもの。
自分のWallet AccountにはTokenは保存されず、Wallet Accountに紐づいているAssociated Token Accountに持っているTokenの量が保存される。
ポイント
- Mint (aNxWyaMagMX1DPRTWNceUDn8VYbmCqXRtuQbiVhmGei)
- Owner (HqFzP1LKDy4vdyDySMhDeoNsqH1MYaSEKDzEtXyrrvZS)
3 Associated Token AccountにMintする
Tokenを他の人に送る場合
-
受取人がAssociated Token Accountを持っているか確認する
持っている
→そのアカウントを使用
持っていない
→Mintの値を受け取るTokenのMint Account Address (aNxWyaMagMX1DPRTWNceUDn8VYbmCqXRtuQbiVhmGei)、Ownerを自分のWallet Account Addressに設定して作成
-
送金者は送金者のかつ送りたいTokenのAssociated Token Accountから受信者のAssociated Token Accountへと送信する。
※送金先をAssociated Token Accountではなく、Wallet Accountにすると送信失敗する。PhantomなどでSPL Tokenを送金する場合は相手のWallet Addressを指定してるが、裏側でそれに紐づいたAssociated Token Accountが作成され送金されている。
Tokenに情報を付与する場合
Tokenに名前や画像を付け足す場合はPDAを使ってMetadata Account (Hpo9r2oNvmFhdjRqJGeXtuJdpJkb9UM1LxCbAbmBW4hz)を作成する。
上の写真にある情報がMetadata AccountとしてMint Accountにくっついてon-chain上に保存されているデータ。実際の名前や説明、写真のデータはArweave上(off-chain)に保存されている。Tokenの名前や画像を表示する時は、on-chain上のMetadata Accountに保存されているURIを頼りに、off-chainのArweave上にあるデータを取ってくる。
まとめ
データの種類 | データの例 | |
---|---|---|
on-chain | メタデータ | アップデート権限保持者、Mint Account、ロイヤリティの割合 |
off-chain | 実データ | 名前、シンボル、説明、画像 |
具体例
- Metadata URI : https://arweave.net/r_YMzjdl_m5S9XRBopMeITBjvU5t4ZuzOSRPtX0VHp4
- Image URI: https://arweave.net/IGtT0AcsKW_C8nqWSeaNcSlKZhN5GVwp_OsmQiXG7tI
NFT Architecture
構造はTokenと同じ。
条件
- Supply = 1
- Decimals = 0
- Mint Authority = None
具体例
最後に
Verooは、Blockchain技術を活用した「想いの巡るグルメSNSアプリ」です。食に対する熱量、例えばラーメンがめちゃくちゃ好きで年間400杯食べているとか、変態的に具材にこだわった中華料理を作っているなどのような、今まで直接お金にはならなかった食に対する情熱や熱量、その裏側にある想いがトークンを使うことで巡る世界。自分のラーメンに費やす熱量がコミュニティに承認される。自分がほんとにいいと思って作った食べ物がコミュニティで広まる。Verooは単なるSNSアプリではなく、クリエイターたちの想いが紡がれるソーシャルグルメアプリです。一緒に開発してくれる仲間を募集しています!
Homepage: https://veroo.xyz/
Discord URL:https://t.co/VoT0gpsflA