DID Wallet 助记词生成钱包规则是什么?我的应用想通过助记词生成 DID 和钱包的相同,可以在钱包内管理资产。
这是我通过助记词生成钱包的方法,DID Wallet 如何通过助记词生成钱包呢?
static getAddressFromMnemonic(mnemonic: string): string { if (!this.validateMnemonic(mnemonic)) { throw new Error('Invalid mnemonic'); } const secretKey = this.generateSecretKeyFromMnemonic(mnemonic); const wallet = fromSecretKey(secretKey); return wallet.address; } private static generateSecretKeyFromMnemonic(mnemonic: string): Uint8Array { const seed = bip39.mnemonicToSeedSync(mnemonic); const hash = Hasher.SHA3.hash256('DIDMAIL').toString('hex'); const s1 = parseInt(hash.slice(0, 8), 16) % 2147483648; // 2^31 const s2 = parseInt(hash.slice(8, 16), 16) % 2147483648; // 2^31 const derivationPath = `m/44'/260'/${s1}'/${s2}'/0'`; const { key } = ed25519.derivePath(derivationPath, seed.toString('hex')); const keyPair = nacl.sign.keyPair.fromSeed(toUint8Array(key)); return keyPair.secretKey; }
希望在 https://www.arcblock.io/docs/did-wallet/zh/what-is-mnemonic-code 补充 DID 钱包生成 did 的相关说明
不需要手动操作吧,你是想管理应用内资产吗?如果你是新安装的应用,会需要钱包去签名,此时在钱包内会管理对应的应用账户 DID, 也就是此时在钱包内就可以管理应用的资产
DIDMail 需要使用私钥进行邮件的加密解密,所以并不是通过钱包生成的账户,钱包生成的账户无法使用私钥。可以理解 DIDMail 客户端也是一个钱包,但是和 DIDWallet 生成的 did 不同。
但是我期望能够相同,这样在钱包中可以查询到交易、NFT,可以看到收到“邮件”的通知
https://github.com/ArcBlock/abt-did-spec?tab=readme-ov-file#create-extended-did
看看这个能帮助你吗?
我是期望通过助记词在 DIDMail 产生的 DID,和DID Wallet钱包通过导入助记词生成钱包地址相同,并不是扩展 did 。 DID Wallet 生成 DID 的时候这个 appDid 我是不知道的。我的意思就是想知道这个具体值是什么。
应用的 DID
我的意思是钱包通过助记词生成 DID 的规则,不是应用生 DID 的规则
钱包是按照这个方式来派生的,你要的 appDid 就是这个地方的值,你到应用后台可以看到
已经解决了
安装新应用是,此时就会有这个提示,告诉你成为管理者
此时引导会告诉你在做什么
ETH 通过助记词可以生成唯一的地址,ArcBlock 的 DID 不同应用可以生成不同的地址,但是也应该有一个以 DIDWallet 为标准的默认唯一地址,方便类似 DIDMail 这样用到私钥的应用,可以同时在钱包管理账户。
还有一个建议,是否可以考虑用户通过 DID Wallet 登录应用的时候,可以让用户选择是使用默认账户登录,还是按照应用的规则生成新的 DID。
14 replies
这是我通过助记词生成钱包的方法,DID Wallet 如何通过助记词生成钱包呢?
希望在 https://www.arcblock.io/docs/did-wallet/zh/what-is-mnemonic-code 补充 DID 钱包生成 did 的相关说明
不需要手动操作吧,你是想管理应用内资产吗?如果你是新安装的应用,会需要钱包去签名,此时在钱包内会管理对应的应用账户 DID, 也就是此时在钱包内就可以管理应用的资产
DIDMail 需要使用私钥进行邮件的加密解密,所以并不是通过钱包生成的账户,钱包生成的账户无法使用私钥。可以理解 DIDMail 客户端也是一个钱包,但是和 DIDWallet 生成的 did 不同。
但是我期望能够相同,这样在钱包中可以查询到交易、NFT,可以看到收到“邮件”的通知
https://github.com/ArcBlock/abt-did-spec?tab=readme-ov-file#create-extended-did
看看这个能帮助你吗?
我是期望通过助记词在 DIDMail 产生的 DID,和DID Wallet钱包通过导入助记词生成钱包地址相同,并不是扩展 did 。 DID Wallet 生成 DID 的时候这个 appDid 我是不知道的。我的意思就是想知道这个具体值是什么。
应用的 DID
我的意思是钱包通过助记词生成 DID 的规则,不是应用生 DID 的规则
钱包是按照这个方式来派生的,你要的 appDid 就是这个地方的值,你到应用后台可以看到
已经解决了
安装新应用是,此时就会有这个提示,告诉你成为管理者
此时引导会告诉你在做什么
ETH 通过助记词可以生成唯一的地址,ArcBlock 的 DID 不同应用可以生成不同的地址,但是也应该有一个以 DIDWallet 为标准的默认唯一地址,方便类似 DIDMail 这样用到私钥的应用,可以同时在钱包管理账户。
还有一个建议,是否可以考虑用户通过 DID Wallet 登录应用的时候,可以让用户选择是使用默认账户登录,还是按照应用的规则生成新的 DID。