avatar
ahmetmerakli
1320 puan • 618 soru • 614 cevap
✔️ Cevaplandı • Doğrulandı

ERC-721 Token Standartları: Detaylı Teknik İnceleme

ERC-721 token standartlarını teknik olarak incelemek istiyorum ama çok karmaşık geliyor. Bu standartlar ne işe yarıyor, hangi detaylara dikkat etmeliyim?
WhatsApp'ta Paylaş
1 CEVAPLARI GÖR
✔️ Doğrulandı
0 kişi beğendi.
avatar
Ingilizce_Time
20 puan • 576 soru • 573 cevap

🖼️ ERC-721 Token Standardı Nedir?

ERC-721, Ethereum blok zincirinde benzersiz (non-fungible) token'ları temsil etmek için kullanılan bir standarttır. Her bir ERC-721 token'ı, diğerlerinden farklı ve eşsizdir. Bu özellik, onları koleksiyonluk eşyaları, oyun içi öğeler, dijital sanat eserleri ve diğer benzersiz varlıkları temsil etmek için ideal kılar.

⚙️ ERC-721'in Temel Fonksiyonları

ERC-721 standardı, akıllı sözleşmelerin belirli fonksiyonları uygulamasını gerektirir. Bu fonksiyonlar, token'ların sahipliğini, transferini ve meta verilerini yönetmek için kullanılır.

  • 🔑 balanceOf(address _owner): Belirli bir adrese ait token sayısını döndürür.
  • 🔑 ownerOf(uint256 _tokenId): Belirli bir token ID'sinin sahibini döndürür.
  • 🔑 transferFrom(address _from, address _to, uint256 _tokenId): Bir adresten diğerine token transferi yapar.
  • 🔑 approve(address _approved, uint256 _tokenId): Belirli bir adresin, belirli bir token'ı yönetme yetkisini verir.
  • 🔑 getApproved(uint256 _tokenId): Belirli bir token için onaylanmış adresi döndürür.
  • 🔑 setApprovalForAll(address _operator, bool _approved): Bir operatöre, tüm token'ları yönetme yetkisi verir.
  • 🔑 isApprovedForAll(address _owner, address _operator): Bir operatörün, bir adresin tüm token'larını yönetme yetkisine sahip olup olmadığını kontrol eder.

🎨 ERC-721 Meta Verileri (Metadata)

ERC-721 token'ları, her bir token'ın özelliklerini ve niteliklerini tanımlayan meta verileri içerir. Bu meta veriler, genellikle bir JSON dosyası olarak depolanır ve token URI'si aracılığıyla erişilebilir.

  • 🖼️ name: Token koleksiyonunun adı.
  • 🖼️ description: Token koleksiyonunun açıklaması.
  • 🖼️ image: Token'ı temsil eden görselin URI'si.
  • 🖼️ attributes: Token'ın benzersiz özelliklerini tanımlayan anahtar-değer çiftleri.

🧩 ERC-721 Sözleşme Arayüzü (Interface)

ERC-721 standardı, akıllı sözleşmelerin uygulaması gereken belirli bir arayüz tanımlar. Bu arayüz, token'ların yönetimi için gerekli olan fonksiyonları ve olayları içerir.

  • 📜 IERC721: Temel ERC-721 fonksiyonlarını tanımlayan arayüz.
  • 📜 IERC721Metadata: Token meta verilerine erişim sağlayan arayüz.
  • 📜 IERC721Enumerable: Token koleksiyonundaki tüm token'ları listelemek için kullanılan arayüz.

🚀 ERC-721 Kullanım Alanları

ERC-721 token'ları, çeşitli kullanım alanlarına sahiptir. İşte bazı örnekler:

  • 🎮 Oyunlar: Oyun içi öğeler, karakterler ve sanal araziler.
  • 🎨 Dijital Sanat: Dijital sanat eserleri ve koleksiyonluklar.
  • 🎫 Biletleme: Etkinlik biletleri ve üyelikler.
  • 🏡 Gayrimenkul: Gayrimenkul sahipliğinin temsili.
  • 🆔 Kimlik: Dijital kimlik ve itibar sistemleri.

🛠️ ERC-721 ile Akıllı Sözleşme Geliştirme

ERC-721 token'ları oluşturmak için, Solidity gibi bir programlama dili kullanarak akıllı sözleşmeler geliştirebilirsiniz. OpenZeppelin gibi kütüphaneler, ERC-721 standardına uygun akıllı sözleşmeleri kolayca uygulamanıza yardımcı olacak araçlar sağlar.

👨‍💻 Örnek Solidity Kodu (Basitleştirilmiş)

Aşağıdaki örnek, basit bir ERC-721 token sözleşmesinin temel yapısını göstermektedir:

pragma solidity ^0.8.0; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; contract MyNFT is ERC721 { uint256 public tokenCounter; constructor() ERC721("MyNFT", "MNFT") {} function mint(address _to) public { _mint(_to, tokenCounter); tokenCounter++; } }

Bu örnek, OpenZeppelin'in ERC721 kütüphanesini kullanarak temel bir NFT oluşturmayı göstermektedir. Daha karmaşık uygulamalar için, meta veri yönetimi, yetkilendirme ve diğer gelişmiş özellikler eklenmelidir.

Yorumlar