LoginSignup
0
0

More than 1 year has passed since last update.

Solanaで独自トークンのあれこれ

Posted at

さて、本日は社内勉強会で用いた、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みたいにそれぞれのプログラムにコピーは作られない。その代わりに工場のような役割を果たしそれぞれの役割を持ったアカウントを作成する。

    Screen Shot 2022-11-25 at 21.39.37.png

Token Architecture

upload_f2e74f1549c496113a6c2d6dba2e221a.png
Screen Shot 2022-11-25 at 22.26.36.png

新しいTokenを作る場合

  1. Mint Accountを作る

    日銀のようなもの。

    ポイント

    • Mint Authority (HqFzP1LKDy4vdyDySMhDeoNsqH1MYaSEKDzEtXyrrvZS)

スクリーンショット 2022-12-17 18.47.57.png

  1. PDA(Program Derived Address)からAssociated Token Accountを作る

    それぞれのToken専用の口座のようなもの。

    自分のWallet AccountにはTokenは保存されず、Wallet Accountに紐づいているAssociated Token Accountに持っているTokenの量が保存される。

    ポイント

    • Mint (aNxWyaMagMX1DPRTWNceUDn8VYbmCqXRtuQbiVhmGei)
    • Owner (HqFzP1LKDy4vdyDySMhDeoNsqH1MYaSEKDzEtXyrrvZS)

Screen Shot 2022-11-25 at 22.26.36.png

3 Associated Token AccountにMintする

Tokenを他の人に送る場合

  1. 受取人がAssociated Token Accountを持っているか確認する

    持っている

    →そのアカウントを使用

    持っていない

    →Mintの値を受け取るTokenのMint Account Address (aNxWyaMagMX1DPRTWNceUDn8VYbmCqXRtuQbiVhmGei)、Ownerを自分のWallet Account Addressに設定して作成

  2. 送金者は送金者のかつ送りたいTokenのAssociated Token Accountから受信者のAssociated Token Accountへと送信する。

※送金先をAssociated Token Accountではなく、Wallet Accountにすると送信失敗する。PhantomなどでSPL Tokenを送金する場合は相手のWallet Addressを指定してるが、裏側でそれに紐づいたAssociated Token Accountが作成され送金されている。

Tokenに情報を付与する場合

upload_6c1b36f30e08790d017d0fadaba472a8.png

Tokenに名前や画像を付け足す場合はPDAを使ってMetadata Account (Hpo9r2oNvmFhdjRqJGeXtuJdpJkb9UM1LxCbAbmBW4hz)を作成する。

Screen Shot 2022-11-26 at 0.47.26.png

上の写真にある情報がMetadata AccountとしてMint Accountにくっついてon-chain上に保存されているデータ。実際の名前や説明、写真のデータはArweave上(off-chain)に保存されている。Tokenの名前や画像を表示する時は、on-chain上のMetadata Accountに保存されているURIを頼りに、off-chainのArweave上にあるデータを取ってくる。

まとめ

データの種類 データの例
on-chain メタデータ アップデート権限保持者、Mint Account、ロイヤリティの割合
off-chain 実データ 名前、シンボル、説明、画像

具体例

NFT Architecture

Token-Metadata-Overview-4-d62ed4ffd0c5bf8e3a8f3e2de100ccf7.png

構造はTokenと同じ。

条件

  1. Supply = 1
  2. Decimals = 0
  3. Mint Authority = None

具体例

最後に

Verooは、Blockchain技術を活用した「想いの巡るグルメSNSアプリ」です。食に対する熱量、例えばラーメンがめちゃくちゃ好きで年間400杯食べているとか、変態的に具材にこだわった中華料理を作っているなどのような、今まで直接お金にはならなかった食に対する情熱や熱量、その裏側にある想いがトークンを使うことで巡る世界。自分のラーメンに費やす熱量がコミュニティに承認される。自分がほんとにいいと思って作った食べ物がコミュニティで広まる。Verooは単なるSNSアプリではなく、クリエイターたちの想いが紡がれるソーシャルグルメアプリです。一緒に開発してくれる仲間を募集しています!

Homepage: https://veroo.xyz/
Discord URL:https://t.co/VoT0gpsflA

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0