mcpField
M
mesh-wallet

mesh-wallet

github.com/meshjs开发244 次安装36 周前更新
代码仓库

关于 mesh-wallet

mesh-wallet 是一项使用 `@meshsdk/wallet` 集成 Cardano 钱包的技能,涵盖基于 CIP-30 的浏览器钱包,以及用于服务器端、CLI 和后端的无头钱包。

主要功能

  1. 01通过 CIP-30 连接浏览器钱包
  2. 02用助记词或密钥创建无头钱包
  3. 03读取余额、地址和 UTxO
  4. 04签署数据和交易
  5. 05使用 Mesh 格式的钱包数据

适用场景

  1. 01让 Web 应用连接已安装的 Cardano 钱包
  2. 02在服务器端或 CLI 工作流中使用钱包
  3. 03获取钱包数据并签署交易

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/meshjs/skills --skill mesh-wallet

安装后在 Claude Code 中输入/mesh-wallet确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

PATTERNS.md
README.md
TROUBLESHOOTING.md
WALLET.md

详细介绍

Mesh SDK 钱包技能

使用 @meshsdk/wallet 集成 Cardano 钱包,并借助 AI 提供支持。

软件包信息

npm install @meshsdk/wallet
# or
npm install @meshsdk/core  # includes wallet + transaction + provider

两种钱包类型

类型类用例
浏览器MeshCardanoBrowserWalletWeb 应用——连接到 Eternl、Nami、Flint 等钱包。
无头MeshCardanoHeadlessWallet服务端、CLI、后端——使用助记词或密钥。

快速参考

浏览器钱包(CIP-30)
import { MeshCardanoBrowserWallet } from '@meshsdk/wallet';

// List installed wallets
const wallets = MeshCardanoBrowserWallet.getInstalledWallets();
// → [{ id: 'eternl', name: 'Eternl', icon: '...', version: '...' }, ...]

// Connect to wallet
const wallet = await MeshCardanoBrowserWallet.enable('eternl');

// Get addresses (Bech32)
const addresses = await wallet.getUsedAddressesBech32();
const changeAddr = await wallet.getChangeAddressBech32();
const stakeAddrs = await wallet.getRewardAddressesBech32();

// Get UTxOs and balance (Mesh format)
const utxos = await wallet.getUtxosMesh();
const balance = await wallet.getBalanceMesh();
const collateral = await wallet.getCollateralMesh();

// Sign and submit
const signedTx = await wallet.signTxReturnFullTx(unsignedTxHex);
const txHash = await wallet.submitTx(signedTx);

// Sign data (CIP-8)
const signature = await wallet.signData(address, 'Hello Cardano!');
无头钱包(服务端)
import { MeshCardanoHeadlessWallet } from '@meshsdk/wallet';
import { BlockfrostProvider } from '@meshsdk/core';

const provider = new BlockfrostProvider('your-api-key');

// From mnemonic
const wallet = await MeshCardanoHeadlessWallet.fromMnemonic({
  mnemonic: ['word1', 'word2', ...],  // 24 words
  networkId: 0,  // 0 = testnet, 1 = mainnet
  walletAddressType: 'Base',  // 'Base' or 'Enterprise'
  fetcher: provider,
  submitter: provider,
});

// Same API as browser wallet
const address = await wallet.getChangeAddressBech32();
const utxos = await wallet.getUtxosMesh();
const signedTx = await wallet.signTxReturnFullTx(unsignedTxHex);

文件

CIP-30 方法

标准钱包接口方法:

方法返回值描述
getNetworkId()number0 = 测试网,1 = 主网
getUtxos()string[]CBOR 十六进制格式的 UTxO
getCollateral()string[]CBOR 十六进制格式的抵押 UTxO
getBalance()stringCBOR 十六进制格式的余额
getUsedAddresses()string[]十六进制格式的地址
getUnusedAddresses()string[]十六进制格式的地址
getChangeAddress()string十六进制格式的地址
getRewardAddresses()string[]十六进制格式的质押地址
signTx(tx, partial)stringCBOR 十六进制格式的见证集
signData(addr, data)DataSignatureCIP-8 签名
submitTx(tx)string交易哈希

Mesh 扩展

增强方法,提供更好的开发体验:

方法返回值描述
getUtxosMesh()UTxO[]Mesh 格式的 UTxO
getCollateralMesh()UTxO[]Mesh 格式的抵押
getBalanceMesh()Asset[]Mesh 格式的余额
getUsedAddressesBech32()string[]Bech32 地址
getUnusedAddressesBech32()string[]Bech32 地址
getChangeAddressBech32()stringBech32 地址
getRewardAddressesBech32()string[]Bech32 质押地址
signTxReturnFullTx(tx, partial)string完整的已签名交易(不只是见证)

重要说明

  1. 浏览器钱包需要用户交互——enable() 会提示用户
  2. 无头钱包需要 fetcher——用于查询 UTxO 和签名
  3. 网络 ID 很重要——测试网/预生产网为 0,主网为 1
  4. 抵押会自动选择——返回金额不低于 5 ADA 的最小纯 ADA UTxO

评论

支持 Markdown