GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> solana教程 >> Metaplex 的 Fusion 工具是什么?

Metaplex 的 Fusion 工具是什么?

admin solana教程 110

作为 Solana 的启动平台,Metaplex 帮助创作者启动和扩展他们的 NFT,而他们的 Fusion 计划则建立并扩展了这一愿景。Fusion 是 Metaplex 为 Solana 区块链上的创作者带来更多NFT功能的努力之一。本文将详细概述 Fusion 计划的工作原理以及如何设置它。

Fusion 是一种 NFT 可组合性功能,它基于 Trifle 程序构建,允许根据各个组件重新组装或重新排列 NFT。Trifle程序是Metaplex最常用的程序之一Token 元数据的扩展。借助 Token 元数据,Trifle 增加了灵活性、创建复杂 NFT 所有权模型的能力,并为 NFT 项目添加了链上跟踪等功能。 

可组合 NFT 是一种灵活的 NFT,允许重新排列各个 NFT 组件来构建复杂的模型。

可组合性的一个突出例子是乐高积木——它的结构允许与其他乐高积木连接,这反过来又允许形成复杂的模型。因此,可组合性是组件支持或允许相互关系重新组装或重新排列以形成更复杂结构的能力。可组合 NFT 建立在 Trifle 程序之上。

Metaplex 的 Fusion 在游戏、NFT 和去中心化金融等多个加密生态系统中都有用例。

Fusion 的灵活性和可组合性功能非常适合现代 web3 游戏中的资产游戏化。游戏内资产可以实时组合形成其他代币。例如,如果您在游戏中拥有两颗星,并且这两颗星的价值等于 1 颗钻石,那么您可以将这两种代币组合起来并在链上跟踪它们。 

使用 Fusion,兼容的 NFT 图像可以组合成新图像。例如,单个 NFT 可以是拼图碎片,也可以是汽车的零件,可以将它们组合在一起以创建全新的 NFT。

NFT 现在可以被捆绑或组合在一起并在去中心化的交易平台上出售。

Fusion 使用 Trifle,这是一个 NFT 可组合性程序,是作为 Token Metadata 程序的扩展而构建的。Fusion程序由不同的 Metaplex 程序组成,旨在为基于 Solana 构建的 NFT 带来更多功能。Fusion 可用于增强 dapp 和 NFT 市场,它还使创建者能够指定有关 NFT 交易和所有权的规则。

Trifle 程序是 Metaplex 对 Token Metadata 程序的扩展,它通过使用创建者拥有的账户 (Creator-Owned Accounts) 来实现 NFT 可组合性,Creator-Owned Accounts 是一种扩展 Token 元数据程序的 NFT 托管账户。

托管账户有两种类型,TOE(代币拥有的托管)和 COE(创建者拥有的托管)。Trifle 程序使用 COE,并指定程序派生地址 (PDA)作为 NFT 的创建者,从而为 PDA 赋予创建者应有的优势和特性,以及链上跟踪等其他功能。

这是创建者可以设置的与代币所有权相关的三种规则和约束类型——无、Metaplex 认证集合和代币集。所有其他约束都属于这三种主要类型。

当不需要任何要求或规则时,可设置此选项,并允许转移任何代币。这相当于允许客人无需通行证即可参加活动。

当需要令牌属于特定集合时设置此项。

当需要一个铸造的代币来匹配集合中的一个代币时,就会设置此项。

Metaplex Fusion 使用两个账户——托管约束模型账户(Token 元数据程序/合约的扩展)和 Trifle 账户。 

托管约束模型账户概述了在使用指令访问 Trifle 账户之前必须满足的要求。托管账户使用哈希图来实现其数据结构,其中它通过将键传递给哈希函数将键映射到值。

对于托管模型账户,键是约束/槽名称,值是约束类型,只能是(None/Collection 或 TokenSet)和 Token 限制(托管账户中 Token 的最大数量)。

约束模型账户的一个独特功能是,类似用例的 NFT 可以连接到同一个托管约束模型。此外,约束模型可以用作银行,存储 Trifle 用户为每条指令支付的费用。 

Trifle 账户管理和跟踪链上 COE 账户中存储的代币,并在执行期间链接到 Escrow 约束账户。Trifle账户使用哈希表来管理这些代币。

  1. 创建托管约束模型账户- 这将创建一个托管模型账户

  2. 创建 Trifle 帐户- 用于创建 Trifle 帐户

  3. 转入- 用于将代币转移到 Trifle 账户管理的 COE

  4. 转出- 用于将代币从 Trifle 账户管理的 COE 中转出

转入指令检查约束模型以验证即将转入的代币是否符合指定的要求,转出指令检查约束模型以验证即将转出的代币是否符合指定的要求。

在程序层面,使用 Fusion 涉及三个步骤:创建父 NFT、定义 NFT 的模式以及设置 Trifle 帐户。

以下是创建父 NFT 的典型代码示例。

已复制
const findTriflePda = async ( mint: PublicKey,  authority: PublicKey,) => {  return await PublicKey.findProgramAddress(    [      Buffer.from("Trifle"),      mint.toBuffer(),      authority.toBuffer(),    ],    new PublicKey(PROGRAM_ADDRESS),  ); };const METAPLEX_BUCKET = "Jf27xwhv6bH1aaPYtvJxvHvKRHoDe3DyQVqe4CJyxsP";let nftMint = Keypair.generate();let TrifleAddress = await findTriflePda(nftMint.publicKey, updateAuthority);let result; result = await metaplex!.nfts().create({    uri: "https://shdw-drive.genesysgo.net/" + METAPLEX_BUCKET + "/" + TrifleAddress[0].toString() + ".json",    name: "Fusion NFT",    sellerFeeBasisPoints: 0,    useNewMint: nftMint });

代码的作用如下:

KeyPair 对象由一个公钥和一个私钥组成,并将其分配给 nftMint 变量。这将用作 NFT 的铸币方(发行者)。

接下来,使用 nftMint 对象的公钥和 updateAuthority 对象作为参数调用 findTriflePda 函数。 findTriflePda 函数返回一个程序地址,该地址将用作 NFT 的 Trifle 帐户。

调用 Metaplex 对象的 NFTs 属性的创建方法,传递具有以下属性的对象作为参数:

  • URI - 将用作 NFT 的静态 URI 的字符串

  • name - 表示 NFT 名称的字符串

  • sellerFeeBasisPoints - 一个数字,表示 NFT 的卖方费用(以基点为单位)

  • useNewMint - nftMint 对象,将用作 NFT 的铸币者(发行者)

注意:URI 字符串由以下以斜杠分隔的项目连接而成:

  • METAPLEX_BUCKET 常量

  • TrifleAddress 数组的第一个元素

  • 字符串“.json”

调用create方法后,返回一个代表父NFT的值。

架构是数据库中数据组织方式的蓝图。在 Fusion 中,约束模型有一个称为架构字段的字段/槽,它决定了 NFT 的某些属性的组织方式。 

已复制
{"type": "layering","layers": ["base", "neck", "mouth", "nose"],"defaults": {"metadata": "https://shdw-drive.genesysgo.net/G6yhKwkApJr1YCCmrusFibbsvrXZa4Q3GRThSHFiRJQW/default.json"} }
  • type - 表示它是什么类型的模式

  • - 代表 Trifle 帐户中的不同位置

  • 默认值- 显示比较和组合 Fusion 元数据时使用的默认元数据

最后一步是设置一个 Trifle 账户,但根据Metaplex 文档,设置 Trifle 账户的说明尚未提供。


如有不明白或者不清楚的地方,请加入官方电报群:https://t.me/gtokentool
协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐