Một bài viết giúp hiểu rõ toàn bộ quy trình phát triển nền tảng giao dịch NFT phi tập trung.

robot
Đang tạo bản tóm tắt

Phát triển một nền tảng giao dịch NFT phi tập trung từ con số không

Đối với NFT tuân theo giao thức ERC-721, cách thực hiện giao dịch phi tập trung khác với token ERC-20. Hiện nay, nhiều nền tảng giao dịch NFT chính thống sử dụng mô hình niêm yết, tương tự như hàng hóa được bày trên kệ siêu thị, người mua có thể tự do chọn lựa.

Bài viết này sẽ giới thiệu cách thực hiện một nền tảng giao dịch NFT phi tập trung cơ bản thông qua hợp đồng thông minh và giao diện người dùng đơn giản. Cần lưu ý rằng đây chỉ là một ví dụ học tập, không phù hợp cho môi trường sản xuất thực tế.

Web3 người mới series: Từ số không thực hiện một nền tảng NFT DEX

Đặc điểm và phương thức giao dịch NFT

NFT là viết tắt của token không đồng nhất, mỗi token đều là độc nhất vô nhị. Thông thường, NFT sẽ hiển thị hình ảnh khác nhau trong ví, và mỗi nhóm NFT đều có một ID nhận diện duy nhất.

Do đặc điểm này của NFT, không thể định giá giống như các token ERC-20 thông qua đường cong giá. Hiện tại, phương thức giao dịch phổ biến nhất là sử dụng hình thức sổ đặt hàng.

Web3 mới bắt đầu series: Từ con số không hiện thực hóa một nền tảng NFT DEX

Chế độ giao dịch sổ lệnh

Mô hình sổ lệnh chủ yếu có hai hình thức:

  1. Đơn giá: Người bán đặt giá, người mua thấy hợp lý thì có thể trực tiếp mua.

  2. Đơn mua: Người mua phát hành đơn đặt hàng, người bán thấy giá phù hợp thì có thể bán.

Thông thường, giá của các đơn đặt hàng mua sẽ thấp hơn đơn đặt hàng định giá. Bài viết này sẽ tập trung vào mô hình đơn đặt hàng định giá.

Web3 người mới bắt đầu: Từ con số không để thực hiện một nền tảng NFT DEX

Chức năng cơ bản của nền tảng giao dịch NFT

Một nền tảng giao dịch NFT cơ bản nên bao gồm các chức năng sau:

  1. Đưa sản phẩm lên: Đưa NFT lên nền tảng với giá đã chỉ định
  2. Mua hàng: Mua theo mức giá NFT
  3. Phí giao dịch trên nền tảng: thu một tỷ lệ phí nhất định dựa trên giá giao dịch

quy trình niêm yết

  1. Frontend: Người dùng chọn NFT và thiết lập giá, nhấp vào đăng hàng
  2. Hợp đồng: Người dùng ủy quyền hợp đồng thực hiện các thao tác với NFT của họ

Đồng thời trong hợp đồng cần duy trì một bảng ánh xạ giá của hàng hóa được niêm yết.

quy trình mua

  1. Frontend: Người dùng chọn NFT muốn mua, nhấp vào mua
  2. Hợp đồng: Chuyển tiền của người mua cho người bán, NFT chuyển cho người mua

Web3 người mới series: Từ số không thực hiện một NFT DEX

Phát triển nền tảng giao dịch NFT

Tiếp theo, chúng ta sẽ bắt đầu từ con số không để xây dựng một nền tảng giao dịch NFT đơn giản.

1. Tạo hợp đồng NFT

Để phục vụ cho việc thử nghiệm, chúng ta có thể sử dụng Remix để nhanh chóng triển khai một hợp đồng NFT theo giao thức ERC-721. Tất nhiên, cũng có thể sử dụng trực tiếp các hợp đồng NFT hiện có.

Web3 người mới series: Từ số không thực hiện một nền tảng NFT DEX

2. Nền tảng hợp đồng

Nền tảng giao dịch hợp đồng cần bao gồm các chức năng cốt lõi sau:

2.1 Người bán niêm yết NFT

Quy trình như sau:

  1. Người dùng chọn NFT
  2. Thiết lập giá ( có thể sử dụng ETH hoặc stablecoin )
  3. Ủy quyền NFT cho hợp đồng
  4. Gọi phương thức niêm yết

Phương pháp niêm yết cần:

  • Xác minh quyền sở hữu NFT
  • Thêm hồ sơ niêm yết
  • Kích hoạt sự kiện niêm yết

Web3 mới bắt đầu: Từ số không để thực hiện một nền tảng NFT DEX

2.2 Người mua mua NFT

Quy trình mua hàng:

  1. Đọc dữ liệu lên kệ NFT
  2. Tính toán và trừ phí giao dịch
  3. Chuyển NFT cho người mua
  4. Kích hoạt sự kiện mua hàng

Web3 mới bắt đầu: Từ con số không hiện thực hóa một nền tảng NFT DEX

2.3 Hủy niêm yết

Thông qua việc đặt trường isActive thành false để hủy niêm yết.

2.4 Phí rút tiền

Nền tảng có thể thu một tỷ lệ phí giao dịch nhất định, được lưu trữ trong hợp đồng hoặc chuyển đến địa chỉ chỉ định.

Web3 mới bắt đầu: Từ con số không thực hiện một DEX NFT

3. Phát triển front-end

Phát triển front-end cần sử dụng các công cụ sau:

  • Ant Design Web3: dùng để kết nối ví và trình bày NFT
  • Wagmi: dùng để tương tác với ví
  • Next.js + Vercel: triển khai dự án

Giao diện chính bao gồm ba trang: Mint, Buy và Portfolio.

Web3 người mới bắt đầu: Từ con số không hiện thực hóa một nền tảng NFT DEX

3.1 Kết nối ví

Sử dụng thành phần kết nối Ant Design Web3 để thực hiện chức năng kết nối ví.

Web3新手系列:从零实现一个NFT DEX

3.2 Trang Mint

Dùng để đúc NFT thử nghiệm, sử dụng phương pháp useWriteContract của wagmi để gọi hợp đồng.

Web3 người mới series: Từ con số không thực hiện một NFT DEX

3.3 Trang Portfolio

Hiển thị NFT mà người dùng sở hữu, hỗ trợ thao tác niêm yết và gỡ bỏ.

Cần gọi các phương pháp listNFT và cancelListing của hợp đồng, và ủy quyền NFT cho hợp đồng trước khi niêm yết.

Web3 người mới series: Từ số không thực hiện một nền tảng NFT DEX

3.4 Trang mua

Hiển thị tất cả các NFT đã niêm yết, hỗ trợ thao tác mua.

Gọi phương thức purchaseNFT khi mua và thanh toán ETH tương ứng.

Đến đây, một nền tảng giao dịch NFT Phi tập trung cơ bản đã được phát triển hoàn thành. Chúng ta có thể triển khai nó lên các nền tảng như Vercel để thử nghiệm sử dụng.

Web3 người mới series: Từ con số không thực hiện một NFT DEX

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 5
  • Chia sẻ
Bình luận
0/400
failed_dev_successful_apevip
· 07-29 23:38
Đừng làm mấy cái khuôn mẫu này nữa, cứ viết một demo đi.
Xem bản gốcTrả lời0
FalseProfitProphetvip
· 07-29 23:38
Bài học đầu tiên cho lập trình viên
Xem bản gốcTrả lời0
ZKProofstervip
· 07-29 23:34
hmm... nói một cách kỹ thuật, việc triển khai này thiếu các vector quyền riêng tư quan trọng
Xem bản gốcTrả lời0
MetaverseHobovip
· 07-29 23:23
Phí giao dịch có thể được tận dụng không?
Xem bản gốcTrả lời0
consensus_failurevip
· 07-29 23:11
hiểu biết có giá trị đầy đủ nhưng không hiểu~
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)