มาสร้างโทเค็นดิจิทัลของตัวเอง (BEP20 Token) บน Binance Smart Chain กัน ! (เเบบจับมือทำ Step-by-Step โดยใช้ BEP20-Token Template)

Sila Pakdeewong
5 min readJun 24, 2021

สวัสดีครับทุกคน เดียววันนี้เราจะมาลองสร้างโทเค็นดิจิทัล (BEP20 Token) ของเราเองบน Binance Smart Chain โดยใช้ BEP20 Token Template ที่ทาง Binance ได้เตรียมไว้ให้กันครับ !

เดียวเรามาดูกันเลยว่าการสร้างโทเค็นดิจิทัลนั้นจะง่าย เเละรวดเร็วขนาดไหนครับ !

เนื่องจากว่าโทเค็นดิจิทัล (BEP20 Token) ที่เราจะมาสร้างกันในวันนี้จะเป็นเพียงโทเค็นทั่วไป ที่สามารถใช้รับ เเละส่งหากันได้ระหว่างผู้ใช้งานเท่านั้น ไม่ได้มีฟีเจอร์หรือว่าลักษณะเฉพาะอื่นๆ ของตัวโทเค็นครับ

*(ดังนั้นบทความนี้จึงจะไม่ได้คลอบคลุมในส่วนของการพัฒนาโทเค็นในรูปเเบบอื่นๆ ครับ)

เเละวิธีนี้ก็ยังสามารถนำเอาไปใช้ในการสร้างโทเค็นมาตราฐาน ERC20 บนเน็ตเวิร์คของ Ethereum ได้เช่นกันนะครับ เเต่ในบทความนี้เราจะมาทำกันบน Binance Smart Chain ถ้าพร้อมเเล้วมาดูกันเลยยย

1.ให้เราเข้าไปทำการดาวน์โหลดตัว BEP20Token.templete ไฟล์จากหน้าเว็บของ BEP20 Token — Binance Smart Chain Docs ที่ทาง Binance ได้ทำการเตรียมเอาไว้ให้เเล้วได้เลยยย

เเละสำหรับใครที่ต้องการอ่านในส่วนของคู่มือ เเละคำอธิบายต่างๆ ก่อนที่เราจะเริ่มลงมือสร้างโทเค็นของเรา ก็สามารถสละเวลาอ่านในส่วนของ Binance Smart Chain Docs ก่อนเพื่อความเข้าใจที่มากขึ้นได้ครับ

หลังจากนั้นให้ทำการกดดาวน์โหลดไฟล์ BEP20Token.templete ได้จากจุดมาร์คสีเเดงที่ผมได้ชี้ไว้เเบบในรูปภาพได้เลยครับ

หลังจากที่เราดาวน์โหลดไฟล์ BEP20Token.templete มาเเล้วนะครับก็จะได้เป็นไฟล์มาเเบบด้านล่างนี้เลยครับ เราก็สามารถทำการเปิดไฟล์ BEP20Token.templete บนโปรเเกรม Text Editor ที่เราสะดวกได้เลยครับ

จากนั้นก็ให้ทำการ Copy หรือว่าคัดลอกในส่วนของ Solidity Code ที่อยู่ภายในไฟล์ BEP20Token.templete เอามาไว้ก่อนได้เลยครับ

2.เปิด Remix — Etheruem IDE บนบราวเซอร์ เเล้วให้ทำการกดสร้างไฟล์ขึ้นมาใหม่ (New File

สามารถกดที่ลิงค์ด้านบน หรือเข้าผ่านลิงค์นี้ได้เลยครับ https://remix.ethereum.org/

FYI : Remix เป็น IDE (Integrated Development Environment) ที่พัฒนาโดย Ethereum สำหรับให้นักพัฒนาได้ใช้ในการพัฒนา Smart Contract โดยเมื่อเราพัฒนาเสร็จเเล้ว เรายังสามารถ Compile เเละ Deploy ตัว Smart Contract ของเราได้ผ่าน Remix เลย โดยที่ไม่จำเป็นต้องใช้คำสั่ง หรือว่าติดตั้งเครื่องมื่ออื่นๆ ให้ยุ่งยากเลยครับ

หลังจากนั้นก็มาตั้งชื่อไฟล์ของเราครับ ในบทความนี้ผมก็จะขอตั้งชื่อไฟล์สำหรับโทเค็นของเราว่า Token.sol เเบบนี้เลยนะครับ

เมื่อสร้างไฟล์ เสร็จเเล้วก็ให้เราทำการเปิดไฟล์ที่เราพึ่งสร้างขึ้นมา จากนั้นก็ให้เราวางในส่วนของโค๊ดที่เราก๊อปปี้มาจากไฟล์ BEP20Token.templete ที่เราดาวน์โหลดมาจาก Binance Smart Chain Docs ได้เลยครับ

เเต่เดียวก่อน ! อย่าพึ่งตกใจไปครับ ถ้าใครวางโค๊ดที่ก็อปปี้มาเเล้วเจอข้อความเเดงๆ Error เเบบนี้ ให้เราไปที่บรรทัดที่มัน Error ครับ ซึ่งถ้าตามในรูปด้านล่างจะอยู่ประมาณบรรทัดที่ 352 ครับ

ในบรรทัดที่ 352 เป็นต้นไป จนถึง 355 จะเป็นส่วนที่เราจะต้องมาเเก้ไขสักหน่อยครับ สำหรับการสร้างโทเค็นของเรา เเต่ก่อนอื่นเรามาทำความเข้าใจกันก่อนครับว่า เเล้วบรรทัด 352 ถึง 355 ตรงนี้มันคืออะไร ?

_name = ในส่วนนี้คือชื่อของโทเค็นที่เราจะสร้างขึ้น

_symbol = อักษรย่อของโทเค็นของเรา (ยกตัวอย่าง Bitcoin = BTC, Binance Coins = BNB)

_decimals = จำนวนหลักทศนิยมของโทเค็น (โดยปกติจะใช้ 9 หรือไม่ก็ 18 ครับ ตรงนี้อาจจะงงๆ หน่อย เเต่พูดง่ายๆ ก็คือว่า เวลาเราจะโอนโทเค็นของเรา เราจะโอนโดยนำไปคำนวนกับทศนิยมดังนี้)

ทศนิยม 9 หลัก (โอน 50 โทเค็น) : 50 * 10 ^ 9 <- ตรงนี้เราจะคูณด้วยทศนิยม

ทศนิยม 18 หลัก (โอน 50 โทเค็น) : 50 * 10 ^ 18 <- ตรงนี้เราจะคูณด้วยทศนิยม

หรือ amount * (10 ^ _decimals) นั้นเอง

_totalSupply = จำนวนโทเค็นที่เราจะสร้างขึ้นมาในระบบ หรือพูดง่ายๆ ห็คือโทเค็นของเราจะมีสูงสุดจำนวนกี่เหรียญนั้นเองครับ (ตรงนี้ก็จะต้องอิงในส่วนของด้านบนด้วยนะครับว่า เราต้องการให้โทเค็นของเรามีทศนิยมกี่หลักครับ)

ทศนิยม 9 หลัก (ต้องการสร้าง 21 ล้านโทเค็น) : 21,000,000(,000,000,000)

ทศนิยม 18 หลัก (ต้องการสร้าง 21 ล้านโทเค็น) : 21,000,000(,000,000,000,000,000,000)

ก็ให้เราใส่จำนวนที่เราต้องการสร้าง จากนั้นก็ให้บวกเลขศูนย์เข้าไปตามจำนวนทศนิยมของโทเค็นเรา

โดยในตัวอย่างนี้ผมต้องการที่จะสร้างโทเค็นชื่อว่า Sila Pakdeewong (V.2) — Token, มีอักษรย่อว่า SLPDW, จำนวนทศนิยม 9 หลัก เเละจำนวนโทเค็นในระบบทั้งหมด 21 ล้านเหรียญนั้นเอง

ก่อนที่เราจะไปใน Step ถัดไป อยากให้เลื่อนขึ้นไปที่ด้านบนสุดของไฟล์ที่เรากำลังเเก้ไขกันอยู่ตอนนี้ เเล้วให้เรามองหาคำว่า pragma solidity (ซึ่งอยู่ด้านบนสุดของไฟล์ Smart Contract ทุกไฟล์) เเล้วดูเลขของเวอร์ชั้นด้านหลักไว้

3. คอมไพล์ Smart Contact ไฟล์ (Token.sol)

ในส่วนของการคอมไพล์ตัว Smart Contract หรือว่าไฟล์ Solidity (.sol) เราจะต้องใช้ Solidity Compiler เวอร์ชั่นที่ตรงกับที่เราประกาศเอาไว้ในไฟล์ ซึ่งถ้าเรามองๆ ดูในไฟล์ของเราจะประกาศเอาไว้ว่า pragma solidity 0.5.16;

ดังนั้นในส่วนนี้เราก็จึงต้องเลือกในส่วนของ Solidity Compiler เป็นเวอร์ชั้น 0.5.16 ตามในตัวอย่างด้านล่างเลยครับ

เเละก่อนที่เราจะไปขั้นตอนถัดไป นั้นก็คือขั้นตอนของการ Deploy ตัว Smart Contract ของเราลงบน Binance Smart Chain เราจะต้องเข้ามาทำการเพิ่มในส่วนของ BSC (Mainnet/Testnet) ลงใน Metamask ก่อนจึงจะสามารถใช้งานเน็ตเวิร์คนั้นๆ ได้

ส่วนวิธีการเพิ่มสามารถทำตามขั้นตอนนี้ได้เลยยย

ให้เรากดตรงรูปไอคอนด้านขวาบนของ Metamask เเละเลือกไปตรงคำว่า Settings

หลักจากนั้นก็ให้เรากดเข้าไปตรงเมนู Network เเล้วก็กดในส่วนของปุ่ม Add Network ด้านขวาบน จากนั้นทำการใส่ข้อมูลลงไปตามนี้ได้เลยครับ

สำหรับ Binance Smart Chain (Mainnet)

สำหรับ Binance Smart Chain (Mainnet)

อ้างอิงข้อมูลเน็ตเวร์คของ Binance Smart Chain : https://academy.binance.com/en/articles/connecting-metamask-to-binance-smart-chain (เพื่อความเป็นปัจจุบันของข้อมูล สามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับการเพิ่มเน็ตเวิร์ค Binance Smart Chain ลงบน Metamask ได้จากบทความนี้ครับ)

เเละเนื่องจากว่าในบทความนี้เป็นเพียงเเค่การทดลองสร้างโทเค็นขึ้นมา เเละผู้เขียนเองก็ไม่ได้ตั้งใจที่จะสร้างโทเค็นตัวนี้มาเพื่อนำเอาไปใช้งานอย่างอื่น ดังนั้นทางผู้เขียนจึงเลือกที่จะ Deploy ในส่วนของโทเค็น เเละตัว Smart Contract ลงบน Binance Smart Chain (Testnet) นะครับ

ถามว่าเพราะอะไรทำไมถึงไม่ Deploy ลงใน Mainnet ?

  • ก็เพราะว่าการ Deploy เเต่ละครั้งเราต้องทำการเขียนข้อมูลของเราลงบน Blockchain เเละเเน่นอนว่าเมื่อมีการเขียน หรือเเก้ไขข้อมูลใน Smart Contract เราจะต้องมีการยืนยัน เเละตรวจสอบความถูกต้องของธุรกรรม ดังนั้นเเน่นอนว่ามันก็จะมีค่าธรรมเนียมตามมานั้นเองครับบบ
  • เเต่ใน Testnet ของ Binance Smart Chain เราสามารถ (Faucet) ในส่วนของ BNB เพื่อนำเอามาจ่ายเป็นค่าธรรมเนียม หรือติดกระเป๋าเราเอาไว้ได้ครับ ก็จะเปรียบเสมือนว่าเรามีสินทรัพย์นั้นอยู่ในประเป๋าของเรา เเละสามารถใช้ โอน จ่าย ทำธุรกรรมต่างๆ ได้ตามปกติใน Testnet

(เเต่จะโอนกลับไป Mainnet ไม่ได้นะ ไม่งั้นทุกคนก็เสกให้ตัวเองจนรวยกันหมดเเล้ว จริงมั้ยยย 5555 ?)

เเน่นอนว่าถึงเราจะ Deploy ลงบน Testnet เเต่เราก็จำเป็นที่จะต้องมี BNB ติดกระเป๋าไว้เพื่อจ่ายค่าธรรมเนียมอยู่ดี เเต่ ! เราสามารถเสกมันขึ้นมาได้ เดียวเรามาดูกันว่าจะเสกมันมายังไง ?

อันดับเเรกให้เราทำการเข้าไปที่เว็บ : https://testnet.binance.org/faucet-smart

หลังจากนั้นก็ให้เราใส่ที่อยู่ของเราลงไป เเล้วก็กดปุ่ม Give me BNB เเล้วก็เลือกจำนวนที่เราต้องการได้เลยครับ

3. ขั้นตอนสุดท้ายเเล้ว มา Deploy โทเค็นเเละ Smart Contract ของเรากันเลยยย !

ให้เรากดไปที่เมนู Deploy บน Remix IDE เสร็จเเล้วอย่างลืมเลือกในส่วนของ Environment ให้เป็น Injected Web3 (เพราะเราจะใช้กระเป๋า Metamask ของเราในการ Deploy เเละเป็น Owner ของ Smart Contract นี้ เเละเรายังต้องการให้ Deploy ไปที่เน็ตเวิร์คที่เราเป็นคนกำหนดเอง)

ถัดมาที่ตัว Metamask ของเราก็จะมีหน้าต่างหน้าตาประมาณนี้ขึ้นมา เพื่อให้เรายืนยันว่าเราต้องการที่จะเชื่อมต่อกระเป๋าของเราเข้ากับเว็บนี้รึเปล่า ? ถ้าเรายืนยัน เเละมั่นใจเเล้วว่าเราต้องการที่จะใช้กระเป๋านี้ ก็ให้เรากดปุ่ม Connect สีฟ้าๆ ที่ด้านขวาล่างได้เลยยยย

เสร็จเเล้วเมื่อเราเชื่อมต่อกระเป๋า Metamask ของเราเเล้ว ในเเถบ Account จะต้องขึ้นที่อยู่ของเรา พร้อมกับจำนวน BNB ที่เรามีอยู่

เสร็จเเล้วถ้าเราตรวจสอบเเล้วว่ากระเป๋า Metamask เชื่อมต่อเเล้ว ตัว Smart Contract ของเราถูกต้อง ไม่มีให้ไรเเก้ไขเเล้ว (อย่าลืมเช็คกันด้วยน้า เพราะว่าถ้าเรา Deploy ไปเเล้วเราจะทำการเเก้ไข Smart Contract ทีหลังไม่ได้อีกเเล้วนะ)

เเละอย่างลืมเลือกในส่วนของ Contract ไฟล์ที่เราจะ Deploy ให้เป็นไฟล์เดียวกับที่เราพึ่งเขียนไปด้วย ไม่งั้น Deploy ผิดตัวเสียค่าธรรมเนียม (Fee) ฟรีๆ นะ

ก็ให้กดปุ่ม Deploy สีส้มๆ ด้านล่างสุดได้เลยยย

ถัดมาที่ตัว Metamask ก็ให้เรากด Confirm ปุ่มสีฟ้าๆ ด้านขวาล่างได้เลย

(ค่าธรรมเนียมที่จะต้องจ่ายในการ Deploy ครั้งนี้จะอยู่ที่ประมาณ 10 บาทเท่านั้นเอง ! เเต่ถ้าเกิดตัว Smart Contract ของเรายิ่งซับซ้อนเเละมีฟังชั่นในการทำงานที่เยอะมากกว่านี้ เเน่นอนว่าคาธรรมเนียมก็จะเยอะตามความซับซ้อนเลยนะครับ ดังนั้นก่อนที่เราจะ Deploy ก็อย่าลืมตรวจสอบความถูกต้องภายใน Smart Contract ด้วยนะครับ)

ถัดมาก็ให้รอธุรกรรมยืนยันสักครูนึง เสร็จเเล้วในตัว Console บน Remix IDE ก็จะมีข้อความขึ้นมาประมาณนี้

เพียงเท่านี้เองตัวโทเค็นของเรา เเละตัว Smart Contract ที่เราพึ่งจะ Deploy มันไปเมื่อกี้ ก็ได้ขึ้นไปอยู่บน Blockchain เป็นที่เรียบร้อยเเล้วววว !

เสร็จเเล้วอย่าพึ่งออกไปไหน ให้เรากลับมาที่เมนู Deploy & Run Transactions บน Remix IDE เเล้วให้เราทำการกด Copy ตัว Address ของ Smart Contract ที่เราพึ่ง Deploy กันไปเมื่อกี้

เราสามารถเข้าไปดูโทเค็น เเละ Smart Contract ของเราที่อยู่บน Blockchain ได้โดยใช้ Address ที่เราเพิ่งจะ Copy มา โดยการเข้าไปที่ลิงค์ตามนี้เลยย

ในส่วนของลิงค์ของ BSCScan จะเเตกต่างกัน โดยจะขึ้นอยู่กับเน็ตเวิร์คของ Binance Smart Chain ว่าเรา Deploy ไปที่ไหน ระหว่าง Mainnet รึว่า Testnet

  • ถ้าเรา Deploy ไปที่ Mainnet เราสามารถเข้าไปดูโทเค็น เเละ Smart Contract ของเราได้ที่

https://bscscan.com/address/”YOUR_CONTRACT_ADDRESS”

  • ถ้าเรา Deploy ไปที่ Testnet เราสามารถเข้าไปดูโทเค็น เเละ Smart Contract ของเราได้ที่

https://testnet.bscscan.com/address/“YOUR_CONTRACT_ADDRESS”

YOUR_CONTRACT_ADDRESS” ให้เราเเทนที่ด้วย Address ที่เราพึ่งจะ Copy มา

ถ้าเราเข้าไปดูเเล้วชื่อโทเค็น เเละข้อมูลต่างๆ ของตัวโทเค็นตรงกับที่เราต้องการ เเละตรงกับที่เราพึ่งจะเขียนเอาไว้ใน Smart Contract ก็เรียบร้อยเเล้ว เราได้สร้างโทเค็นของเราเองขึ้นมาได้เเล้ววว !

4. มาเพิ่มตัวโทเค็นที่เราสร้างมาให้มาอยู่บน Metamask

ให้เรากลับไปที่ Metamask เเละเลื่อนลงมาข้างล่างสุด เเละให้กดเข้าไปตรงปุ่ม Add Token เเล้วให้เราทำการวางตัว Address ของ Smart Contract ที่เรา Copy มา

เสร็จเเล้วให้เรารอสักครู่นึงตัว Matamask จะทำการใส่ข้อมูลในช่องที่เหลือให้เราอัตโนมัติเลยยย

เเล้วเราก็กด Next เพื่อยืนยันการเพิ่มโทเค็นตัวนี้ลงใน Metamask ได้เลยยย

เพียงเท่านี้ตัวโทเค็นที่เราพึ่งสร้างไปก็จะเข้ามาอยู่ในกระเป๋าเราเป็นที่เรียบร้อยเเล้ว

หากชื่นชอบบทความนี้ เเละต้องการที่จะสนับสนุนผู้เขียน ก็สามารถทำได้โดยการกดไลค์ เเละฝากติดตามผู้เขียนบน Medium เเละ YouTube ด้วยนะครับ

หรือถ้าใครอยากจะ Donate ก็สามารถทำการโอนเป็นสกุลเงินดิจิทัล (Crypto Currency) ได้ผ่านช่องทางต่อไปนี้ครับ

  • BNB (BEP20) : 0x9a7C88ED4BB11BD8E093e8fe5859c41a077Ada9f
  • ETH (BEP20) : 0x9a7C88ED4BB11BD8E093e8fe5859c41a077Ada9f
  • USDT (BEP20) : 0x9a7C88ED4BB11BD8E093e8fe5859c41a077Ada9f
  • Binance (อีเมล) : Silapakdeewong2546.3@gmail.com

ช่องทางการติดต่อ & Contract Me @

--

--

Sila Pakdeewong

1st Year — School of #IT20 Student at KMITL | Student / Tech Blogger / Content Creator / Developer — MS Certified AZ / Data / AI Fundamentals | #JWC12 #MLSA