token-core-android 快速上手:创建 Identity 并一键派生 BTC/ETH 钱包
2026/8/20 22:27:49 网站建设 项目流程

token-core-android 快速上手:创建 Identity 并一键派生 BTC/ETH 钱包

【免费下载链接】token-core-androida blockchain private key management library on android项目地址: https://gitcode.com/gh_mirrors/to/token-core-android

token-core-android 是一款开源的Android 区块链私钥管理库,它最吸引人的地方在于引入了Identity(身份)概念:你只需要一套助记词,就能统一管理 BTC、ETH、EOS 三条链上的钱包。本教程将带你从零开始,快速创建 Identity 并一键派生 BTC/ETH 钱包,全程代码极少、思路清晰,非常适合刚接触移动端区块链开发的新手。

token-core-android 是什么?为什么值得一试?

简单来说,token-core-android 把"生成助记词、推导私钥、加密存储、签名交易"这些繁琐的底层工作封装成了统一、一致的 API。你不再需要分别去对接 BTC、ETH 各自的密钥算法,只要调用同一个 Identity 接口,就能在三条链之间无缝切换。

它的核心亮点有三个:

  • 🪪Identity 统一身份:一套助记词管理多链钱包,备份一次即可
  • 🔐Keystore 加密存储:私钥和助记词均加密后落盘,密码保护
  • ✍️离线签名:支持 ETH 交易签名,私钥不出应用

你可以在app/src/main/java/org/consenlabs/tokencore/wallet/目录下直接阅读核心源码,例如Identity.javaWalletManager.javaWallet.java

快速集成:3 步将 token-core-android 接入你的项目

开始编码前,先通过 JitPack 把依赖加进来,整个过程只需 3 步。

第 1 步:在项目根目录的build.gradle中加入 JitPack 仓库:

allprojects { repositories { ... maven { url 'https://jitpack.io' } } }

第 2 步:在模块的build.gradle中添加依赖:

dependencies { implementation 'com.github.consenlabs:token-core-android:v0.1' }

第 3 步:开启 Java 8 支持:

android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

💡 小提示:如果要在 Android Oreo 上调试,建议在packagingOptions中排除lib/x86_64/darwin/libscrypt.dylib,避免打包冲突。

第一步:初始化 Keystore 存储,为钱包落盘做准备

在创建任何钱包之前,必须先告诉 token-core-android 把 Keystore 文件存到哪里。让 Activity 实现KeystoreStorage接口即可:

public class MainActivity extends AppCompatActivity implements KeystoreStorage { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WalletManager.storage = this; // 绑定存储实现 WalletManager.scanWallets(); // 扫描已有钱包文件 } public File getKeystoreDir() { return this.getFilesDir(); // 使用应用私有目录 } }

代码中涉及的关键文件是KeystoreStorage.javaWalletManager.java(位于app/src/main/java/org/consenlabs/tokencore/wallet/)。

第二步:创建 Identity,一键派生 BTC/ETH 钱包

这是本文最核心的一步。调用Identity.createIdentity(...),token-core-android 会自动完成三件事:生成随机助记词、创建身份、一键派生 ETH 与 BTC 两个钱包

// 最后一个参数 Metadata.P2WPKH 表示派生的 BTC 钱包为 SegWit(隔离见证)钱包 Identity identity = Identity.createIdentity( "MyFirstIdentity", // 身份名称 SampleKey.PASSWORD, // 密码 SampleKey.PASSWORD_HINT, // 密码提示 Network.MAINNET, // 主网 Metadata.P2WPKH // BTC 采用 SegWit 模式 ); // 派生结果:索引 0 是 ETH 钱包,索引 1 是 BTC 钱包 Wallet ethereumWallet = identity.getWallets().get(0); Wallet bitcoinWallet = identity.getWallets().get(1);

创建完成后,identity.json与两个钱包的 Keystore 文件会自动写入存储目录。底层实现位于Identity.java,派生路径定义在model/BIP44Util.java中:

派生路径说明
ETHm/44'/60'/0'/0/0以太坊标准路径
BTCm/44'/0'/0'普通地址路径
BTC (SegWit)m/49'/0'/0'P2WPKH 隔离见证路径

如何用助记词恢复 Identity?

如果你已有助记词,不需要重新创建,改用recoverIdentity即可一键恢复整套钱包:

Identity identity = Identity.recoverIdentity( "tide inmate cloud around ...", // 12 个助记词 "MyFirstIdentity", SampleKey.PASSWORD, SampleKey.PASSWORD_HINT, Network.MAINNET, Metadata.P2WPKH );

⚠️ 安全提醒:无论创建还是恢复,请务必提醒用户妥善备份助记词。助记词 = 私钥 = 资产,泄露即丢失。

第三步:导出私钥、助记词与 Keystore

派生的钱包可以通过WalletManager统一导出,方便用户查看或备份:

// 导出私钥 String prvKey = WalletManager.exportPrivateKey(ethereumWallet.getId(), SampleKey.PASSWORD); // 导出助记词(同时返回 BIP44 路径) MnemonicAndPath mnemonicAndPath = WalletManager.exportMnemonic(ethereumWallet.getId(), SampleKey.PASSWORD); String mnemonic = mnemonicAndPath.getMnemonic(); // 导出 Keystore JSON String json = WalletManager.exportKeystore(ethereumWallet.getId(), SampleKey.PASSWORD);

导出的 Keystore 是标准 V3 格式(aes-128-ctr加密 +pbkdf2密钥派生),与以太坊生态工具完全兼容,可直接导入到其他钱包应用。相关实现见WalletManager.javawallet/keystore/V3MnemonicKeystore.java

第四步:用派生钱包签名一笔 ETH 交易

有了钱包,下一步自然是签名交易。构造EthereumTransaction并调用signTransaction,即可得到可直接广播的签名结果:

EthereumTransaction tran = new EthereumTransaction( nonce, gasPrice, gasLimit, // nonce、Gas 价格、Gas 上限 "0x...", value, data // 收款地址、金额、附加数据 ); TxSignResult result = tran.signTransaction( ChainId.MAINNET, // 链 ID SampleKey.PASSWORD, // 钱包密码 ethereumWallet ); String signedTx = result.getSignedTx(); // 可直接广播的签名交易 String txHash = result.getTxHash(); // 用于查询链上记录

签名过程全程在本地完成,私钥不会离开设备,这正是私钥管理库的核心价值。相关源码见wallet/transaction/EthereumTransaction.javaEthereumSign.java

源码结构速览:去哪里看关键实现?

如果你希望深入理解 token-core-android 的源码,推荐按下面路径阅读(均在app/src/main/java/org/consenlabs/tokencore/下):

  • wallet/Identity.java:Identity 创建、恢复、派生钱包的入口
  • wallet/WalletManager.java:钱包的导入、导出、扫描、删除等统一管理
  • wallet/Wallet.java:单个钱包的抽象,提供地址、私钥、收款地址等能力
  • wallet/model/BIP44Util.java:BTC/ETH/EOS 的 BIP44 派生路径定义
  • wallet/transaction/:EthereumTransaction、BitcoinTransaction、EOSTransaction 等签名实现
  • foundation/crypto/:AES、Keccak、SCrypt、PBKDF2 等底层密码学原语

常见问题速查

Q1:为什么派生出的 BTC 钱包索引是 1?因为createIdentity在内部固定先派生 ETH(索引 0)再派生 BTC(索引 1),这是 token-core-android 的默认行为。

Q2:如何切换 BTC 为普通地址(非 SegWit)?创建时最后一个参数传Metadata.NONE即可;已经创建的 BTC 钱包可用WalletManager.switchBTCWalletMode(id, password, mode)切换模式。

Q3:可以继续派生 EOS 钱包吗?可以。调用identity.deriveWallets(chainTypes, password)并传入ChainType.EOS,即可用同一套助记词继续派生 EOS 钱包,这就是"一套助记词管三链"的完整形态。


至此,你已经完成了token-core-android 创建 Identity 并一键派生 BTC/ETH 钱包的全部流程:集成依赖 → 初始化存储 → 创建身份 → 导出资产 → 签名交易。整条链路只需不到 50 行代码,背后却是扎实的密码学与多链地址工程。接下来不妨动手运行一遍官方示例,感受一下"一套助记词管理多链钱包"的便利!

【免费下载链接】token-core-androida blockchain private key management library on android项目地址: https://gitcode.com/gh_mirrors/to/token-core-android

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询