ERC6551提出了绑定账户代币(TBA),可以为NFT提供智能合约账户功能,实现链上身份管理、会员管理、声誉系统等多种用例。Tokenbound已经部署了注册和实现合约,并提供SDK和开源工具,可以快速创建去中心化应用(dApps)并整合TBA。
原文作者:Naruto11.eth
原文来源:X
编译:Kaori,BlockBeats
编者按:
ERC 6551 提出了通过部署「绑定账户代币」(TBA),从本质上来说,这些是具有以太坊账户功能的 ERC-721 代币。这个新标准旨在赋予 NFT 完整的以太坊智能合约账户功能,为开发者和用户打开了无限的可能性。加密研究员 Naruto11.eth 撰文概述了 ERC6551 的可行用例,并将 ERC 6551 结合 Lens Protocol,探索了其在链上身份管理和会员管理方面的实际应用。
我最近一直在尝试 ERC 6551,并想提出一些用例和项目。今天我们将深入探讨它到底是什么以及通过代币绑定账户可以实现什么
ERC 6551 是非同质化代币绑定账户(TBA),它实际上意味着你的每个 ERC721 都可以转化为一个钱包,可以容纳多个 ERC20、721 和 1155 代币。本质上,你的 NFT 成为你的钱包,这使用户能够用 NFT 模拟以太坊的所有权模型。
这里的重要之处在于,这不需要对现有的 NFT 合约进行任何更改,而是通过一个单一注册表完成的,该注册表为所有现有和未来的 NFT 分配唯一的、确定性的智能合同账户地址。
首先让我们看一些用例:
假设你拥有 Charmander 作为你的宝可梦(顺便说一句,所有伟大的开发者都选择 Charmander)。现在你要与 Bulbasaur(Certik 公司——这是一个内部笑话)进行战斗。你赢了,所以现在输家 TBA 将向你转移 ERC 20。这意味着你赢得的每一场战斗,都可以对你的游戏进行编程,以获得积分,或者捕获你对手的 Pokemon 角色。这就是我最近构建的东西。稍后将开源。
或者你可以拥有其他角色,如美国队长,并为他们配备盾牌 NFT。通过 TBA 将盾牌 NFT 作为 ERC 721 装备,他们可以提高防御力和攻击力,并且可以在他们的帐户中持有多种不同的战斗武器。所有收集到的 NFT、武器都会转移到美国队长的 TBA。
相当不错,对吧?
我曾想过将这个想法与 Lens 进行整合,每个人都在 Lens 上「收集」帖子,但当你查看你的钱包时,里面充满了多种代币。有时候这并不是一种愉快的视觉体验。因此,开发者可以更改界面,使得每个.lens 的拥有者都能将其.lens 转换为一个 TBA,所有收集到的帖子、艺术品或其他任何东西都会直接进入.lens TBA。这是一个很好的分层所有权管理的例子。
对于社群的会员身份,我们采取了类似的处理方式,将其存放在 Lens Handle 内,这样一来,所有信息都集中在一个地方,更加便捷,为什么呢?假设你在 Lens 上拥有 20 个社群的会员资格。现在,如果你将 Lens Handle 移动到钱包 B,而你的会员资格在钱包 A 中,那么转移 20 个会员资格就非常麻烦。但是通过 TBA,你只需移动 Lens Handle,所有会员资格都会跟着移动。
你可以将你的 NFT 转化为具有独立身份和声誉的资产,这可能实现忠诚度计划、直接空投到该钱包(想象一下根据其稀有性将 apecoin 空投到你的 APE TBA 中)。这些只是众多用例中的一部分,这些是我个人的一些想法,我认为很多人都能提出很好的想法,我将在未来继续探索更多用例。现在让我们根据 EIP 作为资源进行一些技术深入探讨。
本概述摘自「https://t.co/eVMeeVH7vS」
你可以将注册表视为一个单一合约,它将成为所有 TBA 的入口点。该合约:
-根据实现地址为一个 NFT 创建一个 TBA
-计算该 NFT 的 TBA 地址
注册表具有简单的接口:
-事件 [ERC6551AccountCreated] 用于发出账户创建事件
-函数 [createAccount(implementation, salt, chainId, tokenContract, tokenId):返回 TBA 的地址]
-函数 [account(<SAME PARAMS>):返回计算出的某 NFT 的 TBA 地址]
账户接口:
我们将处理一些相当简单的事情。直接从 EIP 中摘录:
-所有 TBA 账户应通过单例注册表创建
-所有 TBA 实现必须实现 ERC165 接口检测和 ERC1271 签名验证
账户接口:
-receive() 外部可支付函数
-token(): 返回拥有账户的 NFT 标识符
-state(): 返回一个值,该值应在账户状态发生变化时进行修改
-isValidSigner(signer, context): 返回用于授权的 magicValue
需要实现执行接口(Execution Interface),以便允许有效签名者代表帐户执行操作。
IERC6551 可执行合约包含 execute() 函数,以支持附加操作。
有多种资源可以帮助你入门。我建议首先阅读 EIP:「https://t.co/eVMeeVH7vS」
然后,你可以查阅 tokenbound 文档:「https://t.co/ATxiEAcCHP」
Tokenbound 已在多条链上部署了注册和实现合约。
注册地址:0x000000006551c19487814612e58FE06813775758
Tokenbound 账户实现地址:0x41C8f39463A868d3A88af00cd0fe7102F30E44eC
tokenboundlabs 还提供了可供参考的软件开发工具包(SDK)和开源工具。使用他们的 SDK 非常简单,如果你遵循他们的实现指南和 SDK,就可以快速创建去中心化应用(dApps)并整合 TBA。