Tác giả gốc: @tari404, Eric @DoraFactory
tóm tắt đơn giản
Ví dụ
Ví dụ
Nói chung, bất cứ thứ gì có thể được lập trình đều có thể được thực thi trong Loot Box. Một số trường hợp sử dụng ban đầu bao gồm đặc quyền, quà tặng, phần thưởng mã thông báo, airdrop, đăng ký trên chuỗi, danh sách trắng, v.v. Nhưng đừng nhầm lẫn, các kịch bản sử dụng có thể lập trình cho Loot Box là vô hạn.
cài đặt
Những người khai thác NFT có thể sử dụng setLootBox(uint256,address) (hoặc khởi tạo tại thời điểm đúc) để liên kết các BUIDL NFT của họ với hợp đồng LootBox.
interface BuidlNFT {
function setLootBox(uint256 tokenId, address lootBoxAddr) external;
function mint(uint256 initPrice, uint256 bid, address lootBoxAddr, bytes calldata sign) external;
function mint(uint256 initPrice, uint256 bid, bytes calldata sign) external;
}
interface ILootBox {
function afterHarbergerBuy(uint256 tokenId, address newNFTOwner) external;
}
Khi NFT được harbergerBuy() bởi bất kỳ ai, nếu có một LootBox hiện có, nó sẽ cố gắng gọi hàm afterHarbergerBuy() từ LootBox. Người khai thác (còn gọi là BUIDLers) của BUIDL NFT có thể tùy ý xác định hành vi của afterHarbergerBuy(). Nói chung, đây sẽ là một động lực/khuyến khích cho người mua. Người mua NFT có thể dự đoán tính năng này sẽ hoạt động như thế nào trước khi mua.
Để an toàn, LootBox phải luôn kiểm tra:
Ÿmsg.sender: ngăn giao diện bị lạm dụng.
ví dụ
ví dụ
BUIDL NFT ban đầu được đề xuất trong một bài báo (Geeks and Painters: Open Source Projects, NFTs, and a Simplified Harberger Tax) đã thảo luận về cách NFT sử dụng các cơ chế giao dịch như Thuế Harberger đơn giản có thể giúp tài trợ cho phần mềm nguồn mở Web3 và cách tạo niềm vui dành cho những người sưu tập các đồ sưu tầm độc đáo được tạo bởi các dự án mã nguồn mở.
pragma solidity 0.8.6;
import "./BuidlNFT.sol";
contract AirdropLootBox is ILootBox {
address public token;
address public owner;
address public entrypoint;
uint256 public mintTokenId;
constructor(address _toAirdropToken, address _ep, uint256 _mintTokenId) {
owner = msg.sender;
token = _toAirdropToken;
entrypoint = _ep;
mintTokenId = _mintTokenId;
}
function afterHarbergerBuy(uint256 _tokenId, address _newOwner) override external {
require(msg.sender == entrypoint);
require(_tokenId == mintTokenId);
(,,,uint256 currentPrice,,,,) = BuidlNFT(msg.sender).metadataOf(_tokenId);
ERC20(token).transferFrom(owner, _newOwner, currentPrice / 100);
}
}
lý lịch
BUIDL NFT ban đầu được đề xuất trong một bài báo (Geeks and Painters: Open Source Projects, NFTs, and a Simplified Harberger Tax) đã thảo luận về cách NFT sử dụng các cơ chế giao dịch như Thuế Harberger đơn giản có thể giúp tài trợ cho phần mềm nguồn mở Web3 và cách tạo niềm vui dành cho những người sưu tập các đồ sưu tầm độc đáo được tạo bởi các dự án mã nguồn mở.
Cơ chế này lần đầu tiên được thử nghiệm trên HackerLink. Hơn một chục HackerLink BUIDL đã đúc BUIDL NFT của họ. Có một bảng thành tích của tất cả các BUIDL NFT trên HackerLink.
Trong văn bản gốc, bên tạo NFT phải xác định ý nghĩa của NFT. Nó có hai yêu cầu không phổ biến trong kỷ nguyên Web3:
1) Yêu cầu niềm tin không thể kiểm chứng. Giống như các dịch vụ Web2/ngoại tuyến, quyền được xác nhận ngoại tuyến. Một ví dụ là các nền tảng gây quỹ cộng đồng, trong đó các lợi ích và quyền thường được viết thành văn bản và khó thực thi/xác minh sau khi mua thực tế.
2) Giới hạn những gì NFT có thể làm.
BUIDL NFT ban đầu được mô tả là "Uniswap Socks" dành cho các dự án nguồn mở/hàng hóa công cộng. Giờ đây với Loot Box, BUIDL NFT có thể được lập trình, mang lại khả năng tương tác linh hoạt hơn cho các nhà phát triển và nhà sưu tập NFT.
ý tưởng
Để có ý tưởng cho các trường hợp sử dụng Loot Box thú vị, chúng tôi duy trì một trang lootboxideas.md. Mọi người đều có thể đóng góp vào danh sách ý tưởng này và truyền cảm hứng cho những người khác làm những gì Loot Box có thể làm. Xem chi tiết: https://github.com/dorahacksglobal/BUIDL-NFT


