ERC-721非代替性トークン(NFT)
固有のデジタルアセット向けERC-721標準を学び、NFTの発行と管理方法を習得します。
「ERC-721非代替性トークン(NFT)」はCoddyKit上の無料Blockchain Smart Contracts with Solidityレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはBlockchain Smart Contracts with Solidity学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Blockchain Smart Contracts with Solidityコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Intro to Unique Digital Assets
Welcome to the world of Non-Fungible Tokens (NFTs)! Unlike regular money or cryptocurrencies, NFTs are unique digital items.
Think of them like rare collectibles or one-of-a-kind art pieces, but entirely digital. Each NFT has distinct properties and cannot be replaced by another.
The ERC-721 Standard
On Ethereum, NFTs are defined by a standard called ERC-721. This standard is a set of rules that smart contracts must follow to create, manage, and transfer unique tokens.
It ensures that all compliant NFTs work similarly across different platforms, making them interoperable.
Key Concepts: Token ID & Ownership
Every ERC-721 token has a unique Token ID (a large number). This ID distinguishes it from all other NFTs, even those from the same collection.
The standard also defines functions to track ownership:
ownerOf(uint256 tokenId): Returns the address that owns a specific NFT.balanceOf(address owner): Returns the number of NFTs an address owns from that contract.
Building with OpenZeppelin
Creating an ERC-721 contract from scratch can be complex. Luckily, OpenZeppelin provides battle-tested, secure implementations.
We can simply import their contracts and build upon them. This saves time and reduces the risk of vulnerabilities.
Your First ERC-721 Contract
Here's a basic structure for an ERC-721 contract using OpenZeppelin. It defines a name and symbol for our NFT collection in the constructor.
We'll add a minting function next.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract SimpleNFT is ERC721 {
constructor() ERC721("MySimpleNFT", "MSN") {
// Constructor for ERC721 takes name and symbol
}
}Creating New NFTs: Minting
To bring new NFTs into existence, we use a process called minting. The _safeMint function (provided by OpenZeppelin's ERC721) creates a new token and assigns it to an owner.
Let's add a public mint function to our contract to create new NFTs.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract SimpleNFT is ERC721 {
uint256 private _tokenIdCounter;
constructor() ERC721("MySimpleNFT", "MSN") {
_tokenIdCounter = 0;
}
function mint(address to) public returns (uint256) {
uint256 newItemId = _tokenIdCounter;
_tokenIdCounter++;
_safeMint(to, newItemId); // Mints token and assigns to 'to' address
return newItemId;
}
}NFT Metadata with Token URI
An NFT's value often comes from what it represents (an image, a song, a game item). This information, called metadata, isn't stored directly on the blockchain due to cost.
Instead, the ERC-721 standard includes a tokenURI(uint256 tokenId) function. This function returns a URL pointing to a JSON file that describes the NFT's metadata (e.g., name, description, image URL).
Transferring Ownership
Once an NFT is minted, it can be transferred between owners. The ERC-721 standard includes functions for this:
transferFrom(address from, address to, uint256 tokenId): Transfers ownership oftokenIdfromfromtoto.safeTransferFrom(...): A safer version that checks if the recipient contract can receive NFTs.
These functions ensure only the current owner or an approved address can initiate a transfer.
Delegated Transfers: Approvals
Sometimes, you might want to allow another address (like a marketplace) to transfer your NFT on your behalf. This is done using approvals.
The approve(address to, uint256 tokenId) function lets you grant permission to another address to to manage a specific tokenId. This is crucial for decentralized exchanges and other dApps.
ERC-721 Knowledge Check
Let's test your understanding of ERC-721 NFTs. Select all statements that are true.
Recap: ERC-721 NFTs
You've explored the fascinating world of ERC-721 Non-Fungible Tokens!
- NFTs are unique digital assets, unlike fungible cryptocurrencies.
- The ERC-721 standard defines how these unique tokens are created and managed on Ethereum.
- Key features include unique Token IDs, ownership tracking, minting, and linking to off-chain metadata via
tokenURI. - OpenZeppelin contracts simplify ERC-721 development.
NFTs are a cornerstone of digital ownership and are used in art, gaming, and many other applications!
よくある質問
「ERC-721非代替性トークン(NFT)」レッスンは無料ですか?
はい。「ERC-721非代替性トークン(NFT)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Blockchain Smart Contracts with Solidityコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Blockchain Smart Contracts with Solidityコースには全4レッスンが含まれています。
「ERC-721非代替性トークン(NFT)」で何を学びますか?
固有のデジタルアセット向けERC-721標準を学び、NFTの発行と管理方法を習得します。 ブラウザで直接実行するハンズオンコードでBlockchain Smart Contracts with Solidityを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Blockchain Smart Contracts with Solidityを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのBlockchain Smart Contracts with Solidityは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ERC-721非代替性トークン(NFT)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このBlockchain Smart Contracts with Solidityレッスンでコードを書いて実行できますか?
はい。すべてのBlockchain Smart Contracts with Solidityレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ERC-20代替可能トークン標準
- ERC-20トークンの実装
- ERC-721非代替性トークン(NFT)
- ERC-1155マルチトークン規格