【Solidity】第6章第10回:トークンプロジェクトの実用例

本記事では、Solidityを活用したトークンプロジェクトの実用例を解説します。ERC-20やERC-721などのトークン規格を応用したプロジェクトを学ぶことで、独自のトークンを用いたプロジェクト設計や開発が可能になります。
0. 記事の概要
この記事を読むメリット
- 実用的なトークンプロジェクト例:現実のプロジェクトでのトークン活用方法を学べます。
- 設計力の向上:トークンを活用したプロジェクト設計スキルを身につけられます。
- 応用力の向上:トークンを活用したDAppやサービスの開発に役立てられます。
この記事で学べること
- トークンを活用した具体的なプロジェクト例
- 各プロジェクトの設計と実装方法
- プロジェクトの拡張性や応用方法
1. トークンプロジェクトの基本構造

1.1 トークンを活用したプロジェクトとは?
トークンを活用したプロジェクトでは、独自トークンを用いて価値の移転、所有権の証明、投票などの機能を実現します。以下の要素が基本構造となります:
- トークン発行と管理
- トークンの移転と使用
- ユーザーインタラクション
1.2 主なトークン規格
プロジェクトでよく使われるトークン規格には以下があります:
- ERC-20:一般的な仮想通貨トークン
- ERC-721:非代替性トークン(NFT)
- ERC-1155:複数タイプのトークンを管理可能な規格
2. トークンプロジェクトの実例

2.1 クラウドファンディングプラットフォーム
// クラウドファンディングの例
pragma solidity ^0.8.0;
contract Crowdfunding {
mapping(address => uint256) public contributions;
address public owner;
constructor() {
owner = msg.sender;
}
function contribute() public payable {
contributions[msg.sender] += msg.value;
}
function withdraw() public {
require(msg.sender == owner, "Only owner can withdraw");
payable(owner).transfer(address(this).balance);
}
}
動作解説
このコードは、トークンを活用したシンプルなクラウドファンディングプラットフォームの例です。出資者はETHをコントラクトに送信し、オーナーは資金を引き出すことができます。
2.2 NFTマーケットプレイス
// NFTマーケットプレイスの例
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
contract Marketplace {
struct Listing {
address seller;
uint256 price;
}
mapping(uint256 => Listing) public listings;
function listNFT(address nftContract, uint256 tokenId, uint256 price) public {
IERC721(nftContract).transferFrom(msg.sender, address(this), tokenId);
listings[tokenId] = Listing(msg.sender, price);
}
function buyNFT(address nftContract, uint256 tokenId) public payable {
Listing memory listing = listings[tokenId];
require(msg.value >= listing.price, "Insufficient funds");
payable(listing.seller).transfer(msg.value);
IERC721(nftContract).transferFrom(address(this), msg.sender, tokenId);
delete listings[tokenId];
}
}
動作解説
このコードは、NFTの売買を可能にするマーケットプレイスの例です。ユーザーはNFTをリストし、購入者がETHを支払うことで取引が完了します。
3. トークンプロジェクトの応用と拡張

3.1 DAOの実装
トークンを活用して、投票や提案を管理する分散型自律組織(DAO)を構築できます。
3.2 トークンエコノミーの設計
トークン供給量や配布方法を調整することで、長期的なプロジェクト成長をサポートするエコノミーを設計できます。
3.3 その他のユースケース
- ステーキングプラットフォーム
- デジタルアイデンティティ管理
- 分散型金融(DeFi)プロジェクト
4. 練習問題
以下の課題に挑戦してみましょう:
- ERC-20トークンを活用した投票システムを実装してください。
- NFTマーケットプレイスに出品手数料を追加する機能を実装してください。
5. まとめ
本記事では、トークンを活用したプロジェクトの具体例について解説しました。これらの知識を活用して、実用的かつ魅力的なトークンプロジェクトを構築してください。