DAOrayaki:BUIDL NFT Loot Box

avatar
DAOrayaki
3年前
本文约765字,阅读全文需要约1分钟
BUIDL NFT最初是在一篇文章(极客与画家: 开源项目、NFT和简化的哈伯格税)中提出的,该文章讨论了使用简单Harberger税之类的交易机制的NFT如何帮助资助Web3开源软件,以及如何为开源项目创建的独特收藏品的收藏者创造乐趣。

原文作者: @tari404, Eric @DoraFactory

简单的总结

Loot Box是一种智能合约,包含BUIDL NFT 成功交易后的任何可编程行为。

用例

通常情况下,任何可以编写成程序的内容都可以在Loot Box中执行。一些最初的用例包括津贴、赠品、代币奖励、空投、链上注册、白名单等。但毫无疑问,Loot Box的可编程使用场景是无限的。

设定

NFT 的铸造者可以使用 setLootBox(uint256,address)(或在铸造时初始化)为其 BUIDL NFT 绑定 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;

}

当 NFT 被任何人使用 harbergerBuy() 时,如果有一个现有的LootBox,它将尝试从LootBox调用afterHarbergerBuy()函数。BUIDL NFT的矿工(又名BUIDLer)可以任意定义afterHarbergerBuy()的行为。一般来说,这将是买家的奖励/奖励。NFT 买家可以在购买前预测此功能的行为。

为确保安全,LootBox应始终检查:

Ÿmsg.sender:防止接口被滥用。

ŸtokenID:防止其他NFT使用同一个LootBox。

例子

下面是一个简单的AirdropLootBox合约示例:

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);

}

}

背景

BUIDL NFT最初是在一篇文章(极客与画家: 开源项目、NFT和简化的哈伯格税)中提出的,该文章讨论了使用简单Harberger税之类的交易机制的NFT如何帮助资助Web3开源软件,以及如何为开源项目创建的独特收藏品的收藏者创造乐趣。

该机制首先在HackerLink上进行了试验。有十多个HackerLink BUIDL铸造了他们的BUIDL NFT。HackerLink上有一个所有BUIDL NFT的排行榜。

在原文中,创建NFT的一方应定义NFT的含义。它有两个在Web3时代并不受欢迎的要求:

1)要求不可验证的信任。像Web2 /离线服务一样,权限是在链下确认的。一个例子是众筹平台,在这些平台上,利益和权利往往以文字形式写下来,在实际购买后很难执行/验证。

2)限制了NFT可以做什么。

BUIDL NFTs最初被描述为开源项目/公共产品的“Uniswap Socks”。现在有了Loot Box,可以对BUIDL NFT进行编程,为开发者和NFT收藏者提供更灵活的交互。

想法

对于有趣的Loot Box用例的想法,我们维护了一个lootboxideas.md。每个人都可以为这个想法列表做出贡献,并启发其他人Loot Box可以做什么。详情查看:https://github.com/dorahacksglobal/BUIDL-NFT

原创文章,作者:DAOrayaki。转载/内容合作/寻求报道请联系 report@odaily.email;违规转载法律必究。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选