mesh-wallet について
mesh-walletは、`@meshsdk/wallet`によるCardanoウォレット統合のスキルです。CIP-30対応のブラウザーウォレットと、サーバーサイド、CLI、バックエンド向けのヘッドレスウォレットを扱います。
主な機能
- 01CIP-30経由でブラウザーウォレットに接続
- 02ニーモニックやキーからヘッドレスウォレットを作成
- 03残高、アドレス、UTxOの取得
- 04データとトランザクションへの署名
- 05Mesh形式のウォレットデータを利用
活用シーン
- 01Webアプリをインストール済みのCardanoウォレットに接続
- 02サーバーサイドやCLIのワークフローでウォレットを利用
- 03ウォレットデータを取得してトランザクションに署名
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ meshjs/ skills --skill mesh-walletインストール後、Claude Code で/mesh-walletを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
PATTERNS.mdREADME.mdTROUBLESHOOTING.mdWALLET.md詳細
Mesh SDK ウォレットスキル
@meshsdk/wallet を使用した、AI 支援による Cardano ウォレット統合です。
パッケージ情報
npm install @meshsdk/wallet
# or
npm install @meshsdk/core # includes wallet + transaction + provider
2 種類のウォレット
| タイプ | クラス | ユースケース |
|---|---|---|
| ブラウザー | MeshCardanoBrowserWallet | Web アプリ — 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);
ファイル
- WALLET.md - API の完全なリファレンス
- PATTERNS.md - 一般的なウォレットパターン
- TROUBLESHOOTING.md - エラーの解決方法
CIP-30 メソッド
標準のウォレットインターフェースメソッド:
| メソッド | 戻り値 | 説明 |
|---|---|---|
getNetworkId() | number | 0 = テストネット、1 = メインネット |
getUtxos() | string[] | CBOR 形式の 16 進数で表した UTxO |
getCollateral() | string[] | CBOR 形式の 16 進数で表した担保 UTxO |
getBalance() | string | CBOR 形式の 16 進数で表した残高 |
getUsedAddresses() | string[] | 16 進数形式のアドレス |
getUnusedAddresses() | string[] | 16 進数形式のアドレス |
getChangeAddress() | string | 16 進数形式のアドレス |
getRewardAddresses() | string[] | 16 進数形式のステークアドレス |
signTx(tx, partial) | string | CBOR 形式の 16 進数で表した証人セット |
signData(addr, data) | DataSignature | CIP-8 署名 |
submitTx(tx) | string | トランザクションハッシュ |
Mesh 拡張機能
開発者エクスペリエンスを向上させる拡張メソッド:
| メソッド | 戻り値 | 説明 |
|---|---|---|
getUtxosMesh() | UTxO[] | Mesh 形式の UTxO |
getCollateralMesh() | UTxO[] | Mesh 形式の担保 |
getBalanceMesh() | Asset[] | Mesh 形式の残高 |
getUsedAddressesBech32() | string[] | Bech32 形式のアドレス |
getUnusedAddressesBech32() | string[] | Bech32 形式のアドレス |
getChangeAddressBech32() | string | Bech32 形式のアドレス |
getRewardAddressesBech32() | string[] | Bech32 形式のステークアドレス |
signTxReturnFullTx(tx, partial) | string | 署名済みトランザクション全体(証人だけではありません) |
重要な注意事項
- ブラウザーウォレットにはユーザーの操作が必要です —
enable()を呼び出すと、ユーザーに確認が求められます。 - ヘッドレスウォレットにはフェッチャーが必要です — UTxO の照会と署名に使用します。
- ネットワーク ID が重要です — テストネット/preprod では 0、メインネットでは 1 です。
- 担保は自動的に選択されます — 5 ADA 以上の、純 ADA の最小の UTxO が返されます。
コメント
Markdown 対応