You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将polkadot{.js}导出的账户导入@polkadot/keyring?

导入Polkadot.js导出的账户至@polkadot/keyring

问题描述

我已安装polkadot{.js}浏览器扩展,并将一个账户导出为JSON文件。我希望在已安装@polkadot/keyring库的服务器上使用该账户,请问是否可以利用导出的JSON文件中的信息将账户添加到keyring中,使导入的账户使用相同的公钥/私钥?导出的JSON内容如下:

{"encoded":"e3/31ir...XXX","encoding":{"content":["pkcs8","sr25519"],"type":["scrypt","xsalsa20-poly1305"],"version":"3" }, "address":"5GTvRV9XXXX", "meta":{"genesisHash":"", "name":"Account3", "whenCreated":1676907491720}}

需求:将导出的polkadot{.js}账户添加至Keyring。

解决方案

完全可以,通过导出的JSON文件和账户密码,就能把原账户导入到@polkadot/keyring中,导入后的账户和原账户公钥/私钥完全一致。具体操作步骤如下:

1. 确认依赖安装

确保项目中已安装所需依赖,若未安装,执行以下命令:

npm install @polkadot/keyring @polkadot/util-crypto @polkadot/util

2. 编写导入代码

import { Keyring } from '@polkadot/keyring';
import { cryptoWaitReady } from '@polkadot/util-crypto';
// 如果是从文件读取JSON,需要引入fs模块:import fs from 'fs';

// 读取导出的账户JSON(如果是文件,用fs.readFileSync读取后解析)
const accountJson = {"encoded":"e3/31ir...XXX","encoding":{"content":["pkcs8","sr25519"],"type":["scrypt","xsalsa20-poly1305"],"version":"3" }, "address":"5GTvRV9XXXX", "meta":{"genesisHash":"", "name":"Account3", "whenCreated":1676907491720}};
// 替换为你导出账户时设置的密码
const accountPassword = '你的账户密码';

async function importAndInitAccount() {
  // 等待加密库初始化完成
  await cryptoWaitReady();

  // 初始化Keyring,加密类型要和导出账户一致(这里是sr25519)
  const keyring = new Keyring({ type: 'sr25519' });

  try {
    // 从JSON导入账户
    const importedAccount = keyring.addFromJson(accountJson);
    // 用密码解锁账户,解锁后才能执行签名等操作
    importedAccount.unlock(accountPassword);

    console.log('账户导入成功');
    console.log('账户地址:', importedAccount.address);
    console.log('账户公钥:', importedAccount.publicKey.toString('hex'));
  } catch (err) {
    console.error('导入失败:', err.message);
  }
}

// 执行导入函数
importAndInitAccount();

3. 注意事项

  • 必须保证Keyring初始化时的type参数和导出JSON中encoding.content里的加密类型一致(示例中是sr25519)
  • 调用unlock()方法是必要步骤,否则账户处于锁定状态,无法进行签名交易等操作
  • 如果账户JSON存储在本地文件中,使用fs.readFileSync读取后,记得用JSON.parse解析为对象

内容的提问来源于stack exchange,提问作者yodas_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 17:11:14