with one click
meshwallet
Cardano wallet integration with @meshsdk/wallet
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Cardano wallet integration with @meshsdk/wallet
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Scaffold a new Express API endpoint with controller, route (OpenAPI annotations), response type, and barrel exports.
Low-level Cardano utilities with @meshsdk/core-cst
Cardano transaction building with @meshsdk/transaction
Scaffold a new cron job with in-process guard, env-configurable schedule, SyncStatus DB locking, and job registry wiring.
Scaffold a new Prisma database model with project conventions (snake_case mapping, BigInt for lovelace, timestamps, relations).
Analyze feedback and evolve skills through structured improvement. The meta-skill that makes other skills better.
| name | MeshWallet |
| description | Cardano wallet integration with @meshsdk/wallet |
| version | 1.0.0 |
| triggers | ["wallet","browser wallet","mesh wallet","connect wallet","sign transaction","sign data","cip-30","eternl","nami","flint","mnemonic","seed phrase"] |
AI-assisted Cardano wallet integration using @meshsdk/wallet.
npm install @meshsdk/wallet
# or
npm install @meshsdk/core # includes wallet + transaction + provider
| Type | Class | Use Case |
|---|---|---|
| Browser | MeshCardanoBrowserWallet | Web apps - connect to Eternl, Nami, Flint, etc. |
| Headless | MeshCardanoHeadlessWallet | Server-side, CLI, backend - from mnemonic/keys |
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);
Standard wallet interface methods:
| Method | Returns | Description |
|---|---|---|
getNetworkId() | number | 0 = testnet, 1 = mainnet |
getUtxos() | string[] | UTxOs in CBOR hex |
getCollateral() | string[] | Collateral UTxOs in CBOR hex |
getBalance() | string | Balance in CBOR hex |
getUsedAddresses() | string[] | Addresses in hex |
getUnusedAddresses() | string[] | Addresses in hex |
getChangeAddress() | string | Address in hex |
getRewardAddresses() | string[] | Stake addresses in hex |
signTx(tx, partial) | string | Witness set in CBOR hex |
signData(addr, data) | DataSignature | CIP-8 signature |
submitTx(tx) | string | Transaction hash |
Enhanced methods for better developer experience:
| Method | Returns | Description |
|---|---|---|
getUtxosMesh() | UTxO[] | UTxOs in Mesh format |
getCollateralMesh() | UTxO[] | Collateral in Mesh format |
getBalanceMesh() | Asset[] | Balance in Mesh format |
getUsedAddressesBech32() | string[] | Bech32 addresses |
getUnusedAddressesBech32() | string[] | Bech32 addresses |
getChangeAddressBech32() | string | Bech32 address |
getRewardAddressesBech32() | string[] | Bech32 stake addresses |
signTxReturnFullTx(tx, partial) | string | Full signed tx (not just witness) |
enable() prompts the user