如何无需手动转移资产,将托管NEAR账户移交并更名给用户?
Near账户资产迁移与临时账户销毁方案
核心逻辑
借助NFTApp持有的throwaway.near全权限密钥,通过合约调用完成NFT批量迁移+临时账户销毁的自动化流程,跳过手动转移资产的步骤。
具体操作步骤
确认目标账户有效性
若用户未创建keeper.near,可由NFTApp协助创建(创建时直接将用户提供的公钥设为该账户的唯一全权限密钥);若已创建,确认用户完全持有该账户的控制权。批量迁移NFT资产
以throwaway.near的身份调用NFT合约的nft_transfer_batch方法,一次性将所有NFT转移至keeper.near。示例调用参数:nft_transfer_batch( receivers: vec![AccountId::from("keeper.near"); 所有NFT数量], token_ids: vec!["nft_token_001", "nft_token_002", ...], // 列出所有待转移的NFT ID memo: "Auto transfer from temp account to user's main account" )操作前需确保
throwaway.near有足够GAS支付手续费,若余额不足,NFTApp可先给该账户转入少量NEAR。销毁临时账户并回收存储代币
NFT转移完成后,以throwaway.near的身份调用delete_account方法,将账户剩余NEAR(含存储代币)转至NFTApp的回收账户,同时销毁throwaway.near。示例调用:delete_account(beneficiary_id: AccountId::from("nft-app.near"))
关键注意点
- 必须严格验证
keeper.near的控制权归属用户,防止资产转错账户。 - 优先选择支持原子性批量转移的NFT合约,若合约不支持,需分批次执行转移并确保每笔操作成功后再推进下一步。
- 提前为
throwaway.near预留充足GAS,避免因手续费不足导致操作中断。
内容的提问来源于stack exchange,提问作者Erik Trautman
相关产品推荐
相关产品推荐

