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

如何使用PolkadotJS创建账户及通过NPM包实现添加账户功能

用PolkadotJS NPM包实现「Add account」添加账户功能

托管的PolkadotJS应用的添加账户功能本质是基于加密算法生成符合Substrate/Polkadot地址规范的密钥对,不需要直接调用链上接口,账户生成是离线完成的,链上只有当该地址发生交易时才会激活存在,具体实现步骤如下:

  • 第一步:安装必要依赖
    需要安装@polkadot/keyring(密钥对管理核心库)和@polkadot/util-crypto(加密工具库),安装命令:
npm install @polkadot/keyring @polkadot/util-crypto
  • 第二步:初始化Keyring实例
    Keyring是管理账户的核心实例,初始化时需要指定对应链的ss58地址前缀,你可以根据对接的链调整参数,示例默认用Substrate开发网前缀42:
import { Keyring } from '@polkadot/keyring';
import { mnemonicGenerate, cryptoWaitReady } from '@polkadot/util-crypto';

// 必须等wasm加密模块初始化完成再操作
await cryptoWaitReady();

// 初始化Keyring,ss58Format根据对接的链修改:Polkadot为0,Kusama为2,Substrate默认42
const keyring = new Keyring({ type: 'sr25519', ss58Format: 42 });
  • 第三步:生成新账户(对应Add account功能)
    有两种常用场景:随机生成全新账户、用已有助记词导入账户
    1. 随机生成全新账户
    // 生成12位助记词
    const mnemonic = mnemonicGenerate(12);
    // 用助记词生成密钥对,可设置账户名,后续可修改
    const newAccount = keyring.addFromMnemonic(mnemonic, { name: '我的新账户' });
    // 可选:给账户设置加密密码,加密后私钥只有输入密码才能解锁使用
    newAccount.lock();
    newAccount.encodePkcs8('你设置的密码');
    
    1. 已有助记词导入账户
    const existMnemonic = '用户输入的12/24位助记词';
    const importAccount = keyring.addFromMnemonic(existMnemonic, { name: '导入的账户' });
    
  • 第四步:持久化存储账户信息
    生成的账户信息需要加密存储在本地(浏览器端存在localStorage,客户端存在本地配置文件),禁止明文存储助记词、私钥等敏感信息,你可以通过toJson()方法导出加密后的账户信息:
// 导出加密后的账户json,需要传入密码
const accountJson = newAccount.toJson('你设置的密码');
// 存储到本地
localStorage.setItem(`polkadot_account_${newAccount.address}`, JSON.stringify(accountJson));

PolkadotJS添加账户界面示例

注意:账户生成全程是离线操作,不需要和链节点交互,只有当你用这个账户发起转账、调用合约等交易时,才需要连接节点广播签名后的交易。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:48:00