X

Avalanche Üzerinde Token Oluşturma – Adım Adım Rehber 2022

Merhaba.

Bu yazımızda Avalanche blockchain üzerinde kendi kripto paranızı nasıl oluşturacağınızı anlatacağım. Bu rehberdeki adımları takip ederek Avalanche üzerinde kendi tokeninizi çıkarabilirsiniz.

Dilerseniz kendi kripto paramızı oluşturma serimizin diğer yazılarına da aşağıdaki linklerden göz atabilirsiniz.

Hazırsanız başlıyoruz.

Önce Avalanche ile ilgili bazı temel bilgilere göz atalım.

Avalanche Nedir?

Avalanche ilk olarak 2020 yılında Ava Labs tarafından tanıtıldı.

Avalanche’ın Türkiye ekosistemi için ayrı ve özel bir yeri vardır çünkü bu ekosistemin kurucusu ve CEO’su Emin Gün Sirer’dir.

Avalanche kendi sitesinde şöyle tanımlanır:

Avalanche diğer blok zincirlerle birlikte çalışabilir (interoperable), yüksek düzeyde ölçeklenebilir bir ekosistemde merkezi olmayan uygulamaları (dapps) ve kurumsal seviyede blok zinciri kurmak için geliştirilmiş açık kaynaklı bir platformdur.

Ethereum EVM uyumlu bir blok zincirdir. Yani Ethereum Sanal Makinesi’ni kullanır. Ethereum’da olduğu gibi Solidity ile akıllı sözleşme yazıp Avalanche üzerinde çalıştırabilirsiniz. Ayrıca Avalanche üzerinde ERC20 token de çıkarabilirsiniz. Bizim bu rehberde oluşturacağımız token ERC20 olacak.

AVAX Nedir?

Daha önceki yazılarımızda blok zincir ile token arasındaki farka değinmiştik.

Avalanche özelinde ele alacak olursak, Avalanche bir blok zincirdir, AVAX ise bu blok zincir üzerinde takas edilebilen bir kripto paradır.

AVAX,  ağ üzerindeki işlem ücretlerini ödemek, staking yoluyla platformu güvence altına almak ve Avalanche’ta oluşturulan çoklu Alt Ağlar (Subnet) arasında temel bir hesap birimi sağlamak için kullanılan, sınırlı, kıt bir varlıktır.

1 nAVAX, 0.000000001 AVAX’a eşittir.

Avalanche Platformu

Avalanche platformu 3 farklı blok zincirden oluşur;

  • Exchange Chain (X-Chain)
  • Platform Chain (P-Chain)
  • Contract Chain (C-Chain)

Bu 3 blok zincirin tümü, Ana Ağ (Primary Network) olarak da adlandırılan Avalanche doğrulayıcıları tarafından doğrulanır ve güvence altına alınır.

Aşağıdaki görselde Avalanche platformunun detaylarını görebilirsiniz.

  • Exchange Zinciri (X-Chain), Avalanche ağının varsayılan zinciridir. Varlık yaratma, takas etme ve yönetme bu zincir üzerinde gerçekleşir. Örneğin AVAX, X-Chain üzerinde işlem görür.
  • Platform Zinciri (P-Chain), kullanıcıların kendi kurallar dizisini kullanarak çalışabilen alt ağlar (subnet) ve özel blok zincirler oluşturmasına olanak tanır. P-Chain, alt ağların yönetimine ve doğrulayıcıların koordinasyonuna hizmet eder.
  • C-Chain ise akıllı sözleşme oluşturmaya olanak sağlar. Biz bu rehberimizde C-Chain kullanacağız. Avalanche C-Chain, EVM uyumludur, yani geliştiriciler Avalanche üzerinde Merkezi Olmayan Uygulamalar (Dapps) oluşturmak için Ethereum’dakiyle aynı araçları kullanabilir. Örneğin Solidity.

Genel olarak Avalanche ekosistemini tanımış olduk. Şimdi rehberimize geçiyoruz.

Adım 1: Fuji Testnet’in MetaMask’a Tanımlanması

Biz bu rehberde tokenimizi Fuji testneti üzerinde oluşturacağız. Testnet üzerinde token oluşturma ile mainnet üzerinde oluşturma adımları birebir aynı olduğu için siz bu adımları mainnet’e de uygulayabilirsiniz.

Token çıkarırken geliştirmelerinizi her zaman ilk olarak tokeni çıkaracağınız ağın testnetinde yapmanızı öneririm. Test ortamında her şey başarılı olduktan sona ana ağa geçersiniz. Bildiğiniz gibi ana ağ üzerinde token oluşturmanın belirli bir maliyeti var. Dolayısıyla tesnette ücretsiz bir şekilde istediğiniz kadar test yapıp sonra canlıya geçişi planlayabilirsiniz.

Bu rehberde MetaMask kurulumunu anlatmayacağım. Tarayıcınızda MetaMask’ın kurulu olduğunu ve kullanmayı bildiğinizi varsayıyorum. Sadece Fuji testneti MetaMask’a nasıl ekleyebileceğinizi göstereceğim.

Aşağıdaki ekran görüntüsünde kırmızı ok ile işaretlediğim yere tıklayıp menüyü açıyoruz. Açılan menüde en alta gelip “Ağ Ekle” diyoruz.

 

“Ağ Ekle” butonuna tıkladıktan sonra açılan ekranda Fuji testnetin bilgilerini aşağıdaki gibi giriyoruz.

Ayarlarınız aşağıdaki ekran görüntüsündeki gibi olmalı

Kaydet yazan yere tıklayıp ayarlarımızı kaydediyoruz.

Bu işlemi yaptıktan sonra MetaMask’ınızın seçili ağının demin oluşturduğumuz Fuji testneti olduğundan emin olun. Çünkü tüm işlemlerimizi bu ağ üzerinde yapacağız.

Aşağıdaki ekran görüntüsünde göreceğiniz üzere tilki logosunun hemen yanında Avalanche Fuji ağımız seçili durumda.

Tebrikler! Kendi kripto paranızı oluşturmada ilk adımı başarıyla tamamladınız!

Şimdi cüzdanımıza biraz AVAX token bulalım. Adım 2 ile devam ediyoruz..

Adım 2: Cüzdanımıza AVAX Token Yüklüyoruz

Bildiğiniz gibi testnetler mainnetlerin teknik altyapı anlamında birebir kopyasıdır. Aralarındaki tek fark testnet üzerindeki token ve varlıkların herhangi bir parasal değeri yoktur.

Yani nasıl ki mainnet üzerinde token oluştururken bir miktar AVAX harcamanız gerekiyorsa, testnet üzerinde token oluştururken de yine bir miktar AVAX harcamanız gerekiyor. Ancak dediğim gibi testnetin parasal bir değeri olmadığı için bizim cebimizden çıkan bir maliyet söz konusu değil.

Peki testnet üzerinde token çıkarabilmek için gerekli AVAX’ı nereden bulacağız? Bunun için Faucet adı verilen bir nevi hayır muslukları var. Bunları kullanarak kendi cüzdanınıza ücretsiz olarak AVAX alıp testlerinizi yapabiliyorsunuz. Google’da Avalanche Fuji Faucet anahtar kelimeleriyle bu tür muslukları bulabilirsiniz.

Biz bu rehberde Avalanche’ın kendi hayratını kullanacağız.

Tek yapmanız gereken aşağıdaki adrese gidip, cüzdan adresinizi yapıştırmak ve AVAX talebinde bulunmak.

Faucet: https://faucet.avax.network/

Öncelikle Fuji ağındaki Avalanche cüzdanınızın adresini kopyalayın.

Bunu yapmak için aşağıdaki ekran görüntüsünde kırmızı ile işaretlediğim alandaki 0x.. ile başlayan cüzdan adresinizi “panoya kopyala” yazan yere tıklayarak kopyalayın.

Cüzdan adresinizi kopyaladıktan sonra https://faucet.avax.network/ adresine giderek ilgili alana aşağıdaki ekrandaki gibi yapıştırın.

Network kısmında Fuji (C-Chain) seçili olduğundan emin olun.

Token kısmında ise AVAX’ın seçili olduğuna emin olun.

Bütün bilgileri girdikten sonra “Request 2 AVAX” yazan yere tıklayın. Buraya tıkladıktan çok kısa bir süre sonra cüzdanınıza 2 adet AVAX tokeni gelmiş olacak.

İşleminiz başarılı bir şekilde tamamlandıktan sonra aşağıdaki gibi bir bilgilendirme göreceksiniz. Bu bilgilendirmede işleminizin Fuji ağında başarıyla gerçekleştiği ve işlem ID’si yazıyor olacak.

MetaMask üzerinden cüzdanınızı kontrol ettiğinizde hesabınıza 2 adet AVAX tokenin transfer edildiğini göreceksiniz. Ben bu işlemi daha önce de yaptığım için benim cüzdanım da yaklaşık 4 adet AVAX gözüküyor, bu sizi yanıltmasın.

Tebrikler!

Kendi tokeninizi oluşturmaya bir adım daha yaklaştınız!

Artık cüzdanınızda 2 adet AVAX var. Şimdi bu AVAX’ların bir miktarını kullanarak tokenimizi oluşturacağız.

Bir sonraki adıma geçiyoruz..

Adım 3: Remix Kurulumu

Şimdi sıra en önemli adıma geldi: kendi tokenimizi oluşturmaya!

Kendi tokenimizi oluşturmadan önce bazı kavramların üzerinden geçelim.

Yukarıda giriş bölümünde de bahsettiğim gibi Avalanche’ın C-Chain’i EVM uyumlu. Yani Solidity ile yazılmış akıllı sözleşmeleri bu zincir üzerinde çalıştırabilir, ERC20 token çıkarabilirsiniz.

Biz de şimdi bunu yapacağız.

Bu işlem için akıllı sözleşme yazmaya ve deploy etmeye yarayan açık kaynak kodlu Ethereum IDE’si Remix’i kullanacağız.

Remix Ethereum ekosisteminde önemli bir yer tutar. Özellikle Web3 uygulamaları ve Dapps’ler geliştirmek istiyorsanız Remix’i öğrenmenizde fayda var.

Belki Remix kullanımı ile ilgili ayrı bir rehber hazırlarım.

Şimdi öncelikle https://remix.ethereum.org/ adresine gidip, aşağıdaki ekran görüntüsünde kırmızı ile işaretlediğim yerdeki + ikonuna tıklıyoruz. Kendimize yeni bir workspace (çalışma alanı) oluşturacağız.

Açılan pencerede workspace’imiz isim vermemiz ve bir şablon seçmemiz istenecek. Herhangi bir isim verebilirsiniz. Ben “BenimTokenim” adını verdim. Şablon olarak da “Default” seçiyoruz ve OK butonuna tıklıyoruz.

Tıkladıktan sonra Remix üzerinde çalışma alanınız yaratılacak ve bazı temel Solidity dosyaları oluşturulacak. Bunları sol taraftaki menüden görebilirsiniz. Ayrıca “Contracts” adındaki klasörde de akıllı sözleşmelerinizi göreceksiniz.


“Contracts” yazan klasöre sağ tıklayıp “New File” diyoruz. Aşağıdaki ekran görüntüsünde olduğu gibi “Tokenim.sol” adında yeni bir Solidity dosyası oluşturuyoruz.

Adım 4: Akıllı Sözleşme Kurulumu

Tokenim.sol dosyasının içine tek satırlık bir kod yazacağız. Bu kod OpenZeppelin kütüphanesinden ERC20 token oluşturmak için gerekli tüm dosyaları otomatik olarak içeri aktaracak.

Şimdi Tokenim.sol dosyasını açalım ve içine aşağıdaki kodu yapıştıralım.

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";

Bu kod parçacığı OpenZeppelin kütüphanesinden ERC20 mint etmek için gerekli dosyaları çağıracak.

Şimdi Tokenim.sol dosyası seçili iken Remix arayüzünde soldaki menüden aşağıdaki ekranda kırmızı ile işaretlediğim yere geçiş yapıyoruz. Burası “Solidity Compiler” menüsü. Bu sekmede yazdığımız akıllı sözleşmeleri derleyebiliyoruz. Aşağıdaki ekranda gösterdiğim gibi “Compile tokenim.sol” yazan yere tıklayıp, kodumuzu derliyoruz.

Kod başarılı bir şekilde derlendikten sonra tekrar sol menüden en baştaki sekmeyi (File Explorer) seçerek dosya görünümüne geçiyoruz.

Bu ekrana geçiş yaptığınıza çok fazla sayıda yeni dosyanın oluştuğunu göreceksiniz.

Bizim ilgilendiğimiz dosya adı ERC20PresetMinterPauser.sol

Bu dosyayı aşağıdaki ekrandaki gibi bularak üzerine sağ tıklıyoruz ve “Compile” butonuna tıklıyoruz.

Compile butonuna tıkladıktan sonra tekrar sol menüden “Solidity Compiler” sekmesine geçiyoruz ve bu defa “Compile ERC20PresetMinterPauser.sol” yazan yere tıklıyoruz.

Buraya kadar herhangi bir hata almadıysanız tebrikler! Solidity üzerinde akıllı sözleşmenizi derlediniz, geriye sadece bu sözleşmeyi Fuji testneti üzerine deploy etmek kaldı!

Sözleşmemizi Fuji testnetine deploy etmek için sol menüden bu defa Ethereum sembolünün olduğu “Deploy & Run Transactions” sekmesine geçiş yapıyoruz.

Adım 5: Token Kontratı Oluşturma

Bu sekmede değiştirmemiz gereken bazı kısımlar var.

Öncelikle en tepede Environment yazan yeri “Injected Web3” olarak değiştireceğiz. Bunu seçtiğimizde Remix uygulaması doğrudan bizim MetaMask cüzdanımızdan cüzdan bilgilerini çekiyor olacak.

Injected Web seçeneğini seçtikten sonra onun bir altındaki Account bilgisinin bizim başlarda Fuji ağında oluşturduğumuz ve 0x… ile başlayan cüzdan olduğunu göreceksiniz.

Sözleşmeyi deploy etmeden önce bu ekrandaki ayarlarınız aşağıdaki gibi olmalı. Aşağıdaki gibi değilse bir yerlerde hata yapmış olabilirsiniz. Sadece cüzdan adresiniz benimkiyle aynı olmadığından Account kısmı sizde farklı olacaktır. Diğer tüm alanların birebir aynı olması lazım.

Tokenimizi oluşturacak akıllı sözleşmeyi deploy etmeden önce tokenimize bir isim ve sembol belirlememiz gerekiyor. Bunu yapabilmek için Deploy butonunun yanındaki oka tıklayarak ilgili alanları aşağıdaki ekrandaki gibi açıyoruz.

Ben tokenimin ismini EFSANE COIN, sembolünü ise EFSO seçtim. Siz dilediğiniz bir isim ve sembol seçebilirsiniz.

Token adı ve sembolünü yazdıktan sonra “transact” butonuna tıklıyoruz.

Bu butona tıkladığınızda MetaMask onay ekranı açılacak ve sizden yapılacak işleme ve işlem ücretine onay vermeniz istenecek. Şimdi anladınız değil mi neden cüzdanımıza bir miktar AVAX attığımızı? Testnet bile olsa bu tür akıllı sözleşmelerle etkileşime girerken her zaman bir miktar işlem ücreti kullanılır.

Devam edebilmek için bu işleme MetaMask üzerinden onay vermeniz gerekiyor.

Onayla yazan yere tıklayıp devam ediyoruz.

İşlemi onayladıktan sonra Remix ekranına geri dönüyoruz ve konsoldan işlemimizin sonucunu inceliyoruz.

Aşağıdaki ekran görüntüsünden göreceğiniz üzere işlemimiz 11471463 nolu blok üzerinde başarıyla gerçekleşmiş. Konsol ekranında işlem id’nizi, hangi adrese hangi kontratın oluştuğu gibi detayları görebilirsiniz.

Tebrikler!

Solidity ve akıllı sözleşme kullanarak Avalanche Fuji ağı üzerinde ilk tokeninizi oluşturdunuz!

Adım 6: Testnet Explorer Kullanımı

Şimdi Fuji testnet explorer’a giderek işlemimizin detaylarını birlikte inceleyelim.

Öncelikle Remix’in konsol ekranında transaction hash yazan yerdeki hash adresini kopyalıyoruz.

Sonra bu hash’i Avalanche Fuji Testnet Explorer’da yani aşağıdaki adreste aratıp buluyoruz.

Fuji Testnet Explorer: https://testnet.snowtrace.io/

Benim yaptığım işlemin testnet url’i bu şekilde oluştu: https://testnet.snowtrace.io/tx/0x7bcf9e3412d4ce42b3f97dd03e7d9c173de9db7f968d93c1707faa20205820f6

Sizde bu adres doğal olarak farklı olacaktır.

İlgili adresi ziyaret ettiğimizde işlemimizin detaylarını aşağıdaki gibi görebiliyoruz.

Hangi blokta oluşmuş, durumu ne, ne zaman oluşmuş, hangi adresten nereye deploy edilmiş, ne kadar işlem ücreti alınmış gibi.. tüm detaylar var.

Bu işlem detayı ekranında bizim özellikle ilgi odağımız Contract adresinin bulunduğu yer. Aslında burası bizim tokenimizin de adresi.

Aşağıda işaretlediğim yerdeki Contrat adresine tıklıyoruz.

Benim tokenin kontrat adresi bu şekilde oluştu: https://testnet.snowtrace.io/address/0xa6f95054cd3c11a8420016d0a278a35f59672739

Elbette sizin kontrat adresiniz farklı olacaktır.

Tokenimizin kontratının bulunduğu sayfayı açtığımızda aşağıdaki gibi tek bir işlemin gerçekleştiğini görüyoruz: token created! Yani bu kontratla ilgili şu ana kadar tek işlem yapıldı o da tokenin oluşturulması.

Dikkat ettiyseniz tokenimize verdiğimiz isim ve sembolü bu ekranda henüz göremiyoruz. Neden sizce?

Çünkü kontratımızı deploy ettik ancak henüz token mint etmedik.

Adım 7: Token Mint Etme

Şimdi sıra geldi tokenimizi mint etmeye!

Bunu yapmak için Remix ekranına geri dönüyoruz ve “Deploy & Transactions” sekmesinde “Deployed Contracts” kısmına tıklıyoruz.

Bu kısımdan deploy ettiğimiz kontrat ile etkileşime geçebilir ve kontratın fonksiyonlarını çalıştırabiliriz.

Aşağıdaki ekran görüntüsünden göreceğiniz üzere kontratımızın pek çok fonksiyonu var ancak biz şimdilik sadece Mint işlemi yapacağız.

 

Bu ekranda mint yazan yerdeki oka tıklayarak ilgili kısmı açıyoruz ve mint etmek istediğimiz token miktarını ve adresi giriyoruz.

Adres kısmına tokenimizin kontrat adresini yazacağız.

Ben toplamda 21.000 adet token arzı yaratmak istiyorum. O yüzden adet kısmına 21000 yazacağım ama siz dilediğinizi yazabilirsiniz. Ekranınız aşağıdaki gibi gözükmeli.

İlgili alanları doldurduktan sonra “transact” yazan yere tıklayarak mint işlemini gerçekleştiriyoruz.

Akıllı sözleşme ile etkileşime girdiğimiz için tekrardan MetaMask üzerinden oluşacak işlem ücretlerine onay vermemiz gerekiyor.

MetaMask’ı açıp Onayla diyoruz. MetaMask ekranında aşağıda kırmızı ile işaretlediğim gibi MINT işlemi gerçekleştiğine dikkat edin lütfen.

Tebrikler!

Artık tokeniniz hazır!

Tokeninizin detaylarını görmek için Testnet Explorer’da ilgili sayfaya gidiyoruz.

Aşağıdaki ekrandan göreceğiniz üzere artık tokenimizin adı ve sembolü de var!

Yukarıdaki EFSANE COIN yazan yere tıkladığınızda tokeninizin sayfasına yönlendirileceksiniz.

Tebrikler! Artık sizin de bir tokeniniz var!

Benim tokenin adresi bu şekilde: https://testnet.snowtrace.io/token/0xa6f95054cd3c11a8420016d0a278a35f59672739

Son Söz

Gördüğünüz gibi çok da zorlanmadan Avalanche üzerinde kendi kripto paramızı oluşturduk.

Siz de bu adımları takip ederek kendi tokeninizi oluşturabilirsiniz.

Aynı adımlar mainnet için de geçerli.

Umarım faydalı bir rehber olmuştur.

Sorularınız olursa yoruma yazabilir ya da bana Twitter’dan ulaşabilirsiniz.

Yorumlara bak (3)

  • Merhaba Hocam, Tokenlerim mint edildi fakat Metamask cüzdanımda göremiyorum ? bunu nasıl yapabilirm ve bir şey daha sormak istiyorum. Bir okul projem var ve blockchain kullanmamız isteniyor ben token çıkarıp bu token üzerinden devam etmek istiyorum acaba bu tokenleri testnet ağı olmak şartıyla başka hesaplara transfer edebilir miyim ?

  • merhebalar var olan ve büyütmeye devam ettiğimiz bir organizasyonumuz var sizinle görüşüp karşılıklı bir fayda veya makul bir çalışma ortamı oluşturabilirmiyiz diye görüşmek isterim mail olarak geri dönüş yazarsanız iletişim paylaşırız iyi günler görüşmek dileğiyle