ERC-721 คืออะไร
ERC-721 คือมาตรฐานสัญญาอัจฉริยะ (smart contract) บนเครือข่ายบล็อกเชน Ethereum ที่ใช้สำหรับสร้างและจัดการสินทรัพย์ดิจิทัลหรือทรัพย์สินที่ไม่สามารถแลกเปลี่ยนได้และมีความไม่ซ้ำกัน เช่น บัตรรับรองการเป็นเจ้าของของของมีค่า, รายการเกม, ผลงานศิลปะดิจิทัล เป็นต้นเราสามารถใช้ ERC-721 เพื่อสร้าง NFT (Non-Fungible Token) ที่เป็นเหมือนบัตรรับรองของสิ่งของดิจิทัลที่มีค่าเป็นพิเศษหรือความหมายในตลาดสารสนเทศดิจิทัล แตกต่างจากสินทรัพย์ที่เป็น ERC-20 Token ที่มีความสามารถแลกเปลี่ยนได้และมีค่าเท่ากันตามจำนวนหนึ่งในตลาดที่เหมือนกัน
การใช้งาน ERC-721 ในการสร้างรายได้จากสินทรัพย์ดิจิทัล
การสร้างรายได้จากสินทรัพย์ดิจิทัลที่ใช้มาตรฐาน ERC-721 สามารถทำได้ในหลายวิธีตามลักษณะของสินทรัพย์ดิจิทัลและวัตถุประสงค์ทางธุรกิจของคุณ ดังนี้
- การสร้างและจำหน่าย NFT: คุณสามารถสร้าง NFT จากสินทรัพย์ดิจิทัลที่คุณเชื่อมโยงกับมาตรฐาน ERC-721 และจำหน่าย NFT ในตลาดสัญญาอัจฉริยะ เมื่อมีผู้สนใจซื้อ NFT ของคุณ คุณจะได้รับรายได้จากการขาย NFT นั้น ๆ โดยคุณสามารถกำหนดราคาขายตามต้องการ
- การเก็บค่ามรดก: หากคุณเป็นเจ้าของสิ่งของดิจิทัลมีค่าหรือผลงานสร้างสรรค์ที่คุณต้องการส่งต่อให้คนอื่นในอนาคต คุณสามารถเลือกการสร้าง NFT และเก็บค่ามรดกในรูปแบบของ NFT โดยตั้งค่าเงื่อนไขในสมาร์ตคอนแทร็ค ERC-721 เพื่อให้รายได้จากการขาย NFT นั้นถูกส่งต่อให้ผู้รับมรดก
- การเปิดหรือสร้างพื้นที่จัดเก็บแบบไม่เสียค่าใช้จ่าย: คุณสามารถสร้างรายได้จากการให้บริการพื้นที่จัดเก็บสำหรับ NFT หรือสินทรัพย์ดิจิทัลอื่น ๆ ที่ใช้ ERC-721 เพื่อให้ผู้ใช้สามารถจัดเก็บและจัดการ NFT ของพวกเขา คุณสามารถเรียกค่าบริการหรือกำหนดรายเงินค่าใช้จ่ายเพื่อใช้งานบริการของคุณ
- การจัดแสดงแหล่งข้อมูลและอีเวนต์: คุณสามารถจัดแสดงแหล่งข้อมูลเกี่ยวกับ NFT หรือสินทรัพย์ดิจิทัลในเว็บไซต์หรือแพลตฟอร์มของคุณ และเสนออีเวนต์พิเศษ เช่น การขาย NFT ในการเสนอขายสาธารณะ ที่คุณสามารถเก็บเงินจากผู้ร่วมสมัครในรูปแบบค่าเข้าชมหรือค่าลงทะเบียน
- การนำไปใช้ในเกมหรือแพลตฟอร์มบันเทิง: ในเกมหรือแพลตฟอร์มบันเทิงออนไลน์ เครื่องมือการใช้งาน NFT ที่ใช้ ERC-721 สามารถช่วยให้ผู้เล่นสามารถครอบครองและแลกเปลี่ยนไอเท็มเกมหรือสินทรัพย์ดิจิทัลที่ไม่สามารถแลกเปลี่ยนได้ และคุณสามารถคิดค่าบริการหรือค่าธรรมเนียมในการใช้งานเหล่านี้
ขั้นตอนการสร้าง ERC-721
การสร้างสัญญาอัจฉริยะ ERC-721 สำหรับการสร้างและจัดการ NFT ใน Ethereum ประกอบด้วยขั้นตอนหลายขั้นตอนสำคัญดังนี้
- เตรียมสภาพแวดล้อมการพัฒนา:
- ควรติดตั้งและเซ็ตอัพเครื่องมือพัฒนา Ethereum อย่าง Truffle, Remix, หรือ Hardhat เพื่อทำการพัฒนาและทดสอบสัญญา.
- สร้างบัญชี Ethereum สำหรับการทดสอบหรือใช้บัญชีทดสอบที่มี Ether เพื่อใช้ในการทดสอบ.
- เขียนสัญญาอัจฉริยะ ERC-721:
- ใช้ Solidity เป็นภาษาโปรแกรมมิ่งและเขียนสัญญา ERC-721 โดยระบุโครงสร้างของ NFT และฟังก์ชันที่ต้องการสร้าง.
- เปิดเผยสัญญา ERC-721:
- คอมไพล์และเทสสัญญา ERC-721 บน Ethereum Testnet เพื่อตรวจสอบความถูกต้องและป้องกันข้อผิดพลาดในรหัสของสัญญา.
- เมื่อสัญญาถูกทดสอบและผ่านการตรวจสอบแล้ว เริ่มสร้างสัญญาบนเครือข่าย Ethereum จริง.
- สร้าง NFT:
- ใช้ฟังก์ชัน mint ในสัญญา ERC-721 เพื่อสร้าง NFT ใหม่.
- ระบุเจ้าของของ NFT และรหัสของ NFT ที่คุณต้องการสร้าง.
- โอน NFT:
- ใช้ฟังก์ชัน transferFrom เพื่อโอน NFT จากเจ้าของเดิมไปยังเจ้าของใหม่หรือผู้ซื้อ.
- ผู้รับต้องมีการอนุมัติการโอนหรือผู้โอนต้องทำการอนุมัติตามเงื่อนไข.
- แสดงและการซื้อขาย NFT:
- สร้างหน้าเว็บหรือแพลตฟอร์มที่ใช้ในการแสดง NFT และรายละเอียดของสินทรัพย์ดิจิทัล.
- ใช้สัญญา ERC-721 เพื่อตรวจสอบสิทธิ์และการโอนสิทธิ์ของ NFT ในกระบวนการการซื้อขาย.
- การสร้างเหรียญ NFT (Optional):
- คุณสามารถสร้างเหรียญ NFT เพื่อใช้ในการชำระเงินและการซื้อขาย NFT ในรูปแบบของ NFT ใหม่ๆ โดยใช้สัญญา ERC-20.
- การบำรุงรักษาและพัฒนาต่อไป:
- คุณจะต้องบำรุงรักษาและพัฒนาสัญญา ERC-721 ของคุณตามความต้องการและความเปลี่ยนแปลงของตลาด.
- การระบุข้อมูลและเลือกเครื่องมือ:
- คุณต้องระบุข้อมูลสำคัญของ NFT ที่คุณจะสร้าง เช่น ชื่อ NFT, รายละเอียด, รูปภาพ, และรหัสสินทรัพย์ดิจิทัลที่เชื่อมโยง.
- คุณอาจต้องใช้เครื่องมือเสริมเพื่อสร้างภาพหรือไฟล์เสียงที่เป็นส่วนหนึ่งของ NFT นี้.
มาตรฐานสัญญาอัจฉริยะ ERC-721 คืออะไร
มาตรฐานสัญญาอัจฉริยะ ERC-721 (Ethereum Request for Comment 721) เป็นมาตรฐานสัญญาอัจฉริยะที่ถูกพัฒนาขึ้นบนบล็อกเชน Ethereum เพื่อรองรับการสร้างและการจัดการ NFT (Non-Fungible Tokens) ซึ่งเป็นสินทรัพย์ดิจิทัลที่ไม่สามารถแลกเปลี่ยนหรือเทียบเท่ากับกันได้ คุณสามารถทำให้เข้าใจมาตรฐานนี้ได้ดังนี้:
- Non-Fungible Tokens (NFTs): ERC-721 อนุญาตให้สร้าง NFT ที่เป็นไปได้ใน Ethereum ซึ่งเป็นสินทรัพย์ดิจิทัลที่ไม่สามารถแลกเปลี่ยนหรือเทียบเท่ากันได้ เราสามารถใช้ NFT เพื่อแทนสิ่งของเช่นผลงานศิลปะดิจิทัล รายการสมรส หรือไอเท็มในเกม.
- Unique Identifiers: แต่ละ NFT มีตัวระบุที่ไม่ซ้ำกัน (เรียกว่า tokenId) ซึ่งเป็นตัวบ่งชี้หรือรหัสของ NFT แต่ละรายการ ที่อยู่ในช่วงตัวเลขบวก.
- Ownership: ERC-721 จัดเก็บข้อมูลเกี่ยวกับผู้ครอบครองของแต่ละ NFT และช่วยให้ระบบสามารถตรวจสอบผู้ครอบครองแต่ละรายการได้.
- Transferability: สัญญา ERC-721 รองรับการโอน NFT จากเจ้าของเดิมไปยังเจ้าของใหม่ โดยต้องมีการอนุมัติจากเจ้าของเดิมหรือผู้ที่ได้รับอนุญาต.
- Standard Interface: ERC-721 กำหนดมาตรฐานในการสร้างสัญญาอัจฉริยะเพื่อให้สามารถตรวจสอบและโต้ตอบกับ NFT จากสัญญาอัจฉริยะ ERC-721 อื่น ๆ โดยใช้ฟังก์ชันและเหตุการณ์ที่กำหนดไว้.
- Interoperability: ERC-721 อนุญาตให้ NFT จากสัญญาอัจฉริยะ ERC-721 แต่ละรายการสามารถถูกแสดงและนำมาใช้งานร่วมกันในแพลตฟอร์มและแอปพลิเคชันต่าง ๆ ซึ่งเปิดรับมาตรฐานนี้.
- Decentralization: สัญญา ERC-721 ถูกเก็บบนบล็อกเชน Ethereum ซึ่งเป็นระบบที่แบบกระจายและไม่มีการควบคุมจากคนเดียว ทำให้การเป็นเจ้าของ NFT มีความเป็นสมมาตรและปลอดภัย.
ERC-721 มีอะไรบ้าง
มาตรฐานสัญญาอัจฉริยะ ERC-721 มีฟังก์ชันและเหตุการณ์สำหรับการสร้างและจัดการ NFT (Non-Fungible Tokens) ในเครือข่ายบล็อกเชน Ethereum โดยมีองค์ประกอบสำคัญต่อไปนี้
- totalSupply(): นี่คือฟังก์ชันที่ใช้ในการดึงจำนวน NFT ทั้งหมดที่ถูกสร้างในสัญญา ERC-721 ซึ่งช่วยในการตรวจสอบว่ามี NFT ทั้งหมดกี่รายการในระบบ.
- balanceOf(address owner): ฟังก์ชันนี้ใช้ในการดึงจำนวน NFT ที่ผู้ใช้ (owner) ระบุครอบครองอยู่ในสัญญา ERC-721 เป็นการตรวจสอบว่าผู้ใช้ครอบครอง NFT มากเท่าไหร่.
- ownerOf(uint256 tokenId): ฟังก์ชันนี้ใช้ในการดึงที่อยู่ของเจ้าของ NFT โดยใช้ตัวระบุ tokenId นี้เป็นการค้นหาว่า NFT ที่ระบุมีเจ้าของคือใคร.
- transferFrom(address from, address to, uint256 tokenId): ฟังก์ชันนี้ใช้ในการโอน NFT จากเจ้าของเดิม (from) ไปยังเจ้าของใหม่ (to) โดยต้องมีการอนุมัติการโอนจากเจ้าของเดิมหรือผู้ที่ได้รับอนุญาต นี่เป็นกระบวนการที่ใช้ในการจำหน่ายหรือโอน NFT.
- approve(address to, uint256 tokenId): ฟังก์ชันนี้ใช้ในการอนุมัติการโอนสิทธิ์ NFT จากเจ้าของเดิมไปยังผู้ใช้ที่ระบุ (to) โดยใช้ tokenId เพื่อแสดงให้เห็นว่าผู้ใช้นี้ได้รับอนุมัติในการรับ NFT.
- setApprovalForAll(address operator, bool approved): ฟังก์ชันนี้ใช้ในการอนุมัติการโอนสิทธิ์สำหรับการโอนทั้งหมดของผู้ใช้ที่ระบุ (operator) โดยสามารถกำหนดว่าผู้ใช้รายนี้ได้รับอนุญาตหรือไม่.
- getApproved(uint256 tokenId): ฟังก์ชันนี้ใช้ในการดึงผู้ที่ได้รับอนุญาตให้โอน NFT ของ tokenId นี้ ซึ่งช่วยในการตรวจสอบว่าใครได้รับอนุมัติให้โอน NFT นี้.
- isApprovedForAll(address owner, address operator): ฟังก์ชันนี้ใช้ในการตรวจสอบว่าผู้ใช้ (operator) ได้รับอนุญาตให้โอนทั้งหมดของผู้ใช้ (owner) หรือไม่.
- mint(address to, uint256 tokenId): ฟังก์ชันนี้ใช้ในการสร้าง NFT ใหม่และมอบให้กับผู้ใช้ที่ระบุ (to) ซึ่งเป็นกระบวนการสร้าง NFT.
- burn(uint256 tokenId): ฟังก์ชันนี้ใช้ในการทำลาย NFT และลบออกจากสัญญา ERC-721 เป็นกระบวนการที่ไม่สามารถกู้คืนได้.
- Transfer(event): เหตุการณ์นี้ถูกเรียกเมื่อ NFT ถูกโอนจากเจ้าของเดิมไปยังเจ้าของใหม่ ใช้ในการระบุการเปลี่ยนเจ้าของของ NFT.
- Approval(event): เหตุการณ์นี้ถูกเรียกเมื่อการอนุมัติการโอนสิทธิ์ NFT ถูกดำเนินการ ใช้ในการระบุว่าใครได้รับอนุมัติในการรับ NFT.
- ApprovalForAll(event): เหตุการณ์นี้ถูกเรียกเมื่อการอนุมัติการโอนสิทธิ์สำหรับการโอนทั้งหมดถูกดำเนินการ ใช้ในการระบุว่าใครได้รับอนุมัติในการรับ NFT ทั้งหมดของผู้ใช้.