====== 用語 ====== * スマートコントラクト * Solidity: ethereum のスマートコントラクトを作成するためのプログラミング言語 * ABI (Application Binary Interface) : スマートコントラクトの仕様(関数名や引数や戻り値の型の仕様) * アカウントの種類 * EOA(Externally Owned Account): 外部アカウント。採掘者などに紐づくアカウント。 * Contract Account: スマートコントラクトと紐づくアカウント * トークンの種類 * Fungible Token(FT): ERC20 (例: 純金) * Non-Fungible TOken(NFT): ERC721 (例: 土地) * Utility Token: 具体的な他のアセットと交換できて初めて資産性が出てくるトークン (例: 図書券) * Security Token: それ自体に金銭的価値が認められるトークン (例: 株券) * Governance Token: プロジェクトが新しい機能の追加や除去、割合などを変更したり、新たな提案を行う権利を付与するトークン。投票が実現できる。 * Mint(ミント) * スマートコントラクトを使って、ERC20 や ERC721(NFT) トークンを新たに作成・発行すること * ネットワーク形態 * パブリック型: 誰でも自由に参加できる * コンソーシアム型: 許されたメンバーのみ参加できる * プライベート型: 自分だけが参加できる * データの所在 * オンチェーン: ブロックチェーン上に存在する * オフチェーン: ブロックチェーンの外に存在する * wei * 1wei = 0.000000000000000001 ETH * 補助単位 * 10^3: finney * 10^6: szabo * 10^18: wei * gas * トランザクションを生成するための手数料 ====== プログラミング ====== * [[https://cryptozombies.io/jp/|CryptoZombies]]: ゲーム開発を通して Solidity を学習するコンテンツ * [[https://solidity-by-example.org/|Solidity by Example]] * [[https://consensys.github.io/smart-contract-best-practices/|Ethereum Smart Contract Security Best Practices]] ====== 開発環境 ====== * [[https://hardhat.org/|Hardhat]]: 開発用ノードも備えた開発環境 * [[https://github.com/ethereum/go-ethereum|geth]]: Official Golang implementation of the Ethereum protocol. * Truffle Suite * [[https://trufflesuite.com/ganache/index.html|Ganache]]: 開発用ノード・ネットワーク * [[https://github.com/trufflesuite/ganache|ganache-cli]]: CLI で動作する Ganache * [[https://trufflesuite.com/|Truffle]]: Contract のコンパイル、マイグレーション機能付きデプロイ、テスト * [[https://trufflesuite.com/drizzle/index.html|drizzle]]: フロントエンドライブラリ * [[https://openzeppelin.com/|OpenZeppelin]]: ERC20トークンの土台を提供してくれるライブラリ ====== 参考リンク集 ====== * [[https://hashhub.tokyo/wp-content/uploads/2020/04/NFTin10min.pdf|10分で分かるNFT(Non-fungible token)]] * [[https://zenn.dev/hkiridera/articles/23cbeb2752af63|NFTに対する技術的な誤解]]