Przejdź do głównej treści
Change page

Standard tokena niezamiennego (NFT) ERC-721

Wprowadzenie

Czym jest token niezamienny (NFT)?

Token niezamienny (NFT) służy do unikalnej identyfikacji kogoś lub czegoś. Ten typ tokena idealnie nadaje się do wykorzystania na platformach oferujących przedmioty kolekcjonerskie, klucze dostępu, losy na loterię, numerowane miejsca na koncertach i meczach sportowych itp. Ten specjalny rodzaj tokena ma niesamowite możliwości, więc zasługuje na odpowiedni standard, a ERC-721 powstał, aby to rozwiązać!

Czym jest ERC-721?

ERC-721 wprowadza standard dla NFT, co oznacza, że ten typ tokena jest unikalny i może mieć inną wartość niż inny token z tego samego inteligentnego kontraktu, na przykład ze względu na jego wiek, rzadkość, a nawet coś innego, jak jego wygląd. Zaraz, wygląd?

Tak! Wszystkie NFT mają zmienną uint256 o nazwie tokenId, więc dla każdego kontraktu ERC-721 para contract address, uint256 tokenId musi być globalnie unikalna. Oznacza to, że zdecentralizowana aplikacja (dapp) może mieć „konwerter”, który wykorzystuje tokenId jako dane wejściowe i generuje obraz czegoś fajnego, na przykład zombie, broni, umiejętności lub niesamowitych kotków!

Wymagania wstępne

Treść

ERC-721 (Ethereum Request for Comments 721), zaproponowany przez Williama Entrikena, Dietera Shirleya, Jacoba Evansa i Nastassię Sachs w styczniu 2018 roku, to standard tokena niezamiennego, który implementuje API dla tokenów w ramach inteligentnych kontraktów.

Zapewnia on funkcjonalności takie jak transfer tokenów z jednego konta na drugie, pobieranie aktualnego salda tokenów na koncie, sprawdzanie właściciela określonego tokena, a także całkowitej podaży tokena dostępnej w sieci. Oprócz tego posiada również inne funkcje, takie jak zatwierdzanie, że określona ilość tokenów z danego konta może zostać przeniesiona przez konto strony trzeciej.

Jeśli inteligentny kontrakt implementuje poniższe metody i zdarzenia, można go nazwać kontraktem tokena niezamiennego ERC-721, a po wdrożeniu będzie on odpowiedzialny za śledzenie utworzonych tokenów w sieci Ethereum.

Z EIP-721 (otwiera się w nowej karcie):

Metody

Zdarzenia

    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

Przykłady

Zobaczmy, dlaczego standard jest tak ważny, aby ułatwić nam badanie dowolnego kontraktu tokena ERC-721 w sieci Ethereum. Potrzebujemy tylko binarnego interfejsu aplikacji (ABI) kontraktu, aby utworzyć interfejs do dowolnego tokena ERC-721. Jak widać poniżej, użyjemy uproszczonego ABI, aby przykład był jak najbardziej przystępny.

Przykład w Web3.py

Najpierw upewnij się, że masz zainstalowaną bibliotekę Web3.py (otwiera się w nowej karcie) dla języka Python:

pip install web3

Kontrakt CryptoKitties ma kilka interesujących zdarzeń innych niż te standardowe.

Sprawdźmy dwa z nich: Pregnant oraz Birth.

Dalsza lektura

Samouczki: Budowanie z użyciem tokenów niezamiennych (ERC-721) w sieci Ethereum