multichain-protocol
Turn any AI agent into a 19-chain crypto wallet via MeneseSDK on ICP. Send tokens, swap on DEXes (Raydium, Uniswap, ICPSwap, KongSwap, Cetus, Minswap), bridge cross-chain, manage DeFi positions (Aave, Lido, LP), automate trading (DCA, stop-loss, rebalancing), and process payments — all from a single ICP canister.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/kyounesmercatura/multichain-protocolMultichain Protocol — MeneseSDK Wallet Skill
Operate across 19 blockchains from a single ICP canister or CLI: Solana, Ethereum, Bitcoin, Arbitrum, Base, Polygon, BSC, Optimism, ICP, XRP, SUI, TON, Cardano, Aptos, NEAR, Tron, Litecoin, CloakCoin, THORChain.
Powered by Menese Protocol | Canister ID (mainnet): urs2a-ziaaa-aaaad-aembq-cai
Pricing
First 5 transactions are FREE — no signup, no credit card, just install and go.
After the free tier, transaction signing is charged per action via your DeveloperKey (msk_*). Read-only operations (balances, addresses, pool queries) are always free.
Quickstart (2 minutes)
Step 1: Install dfx (ICP SDK)
If you don't have dfx installed, run this single command:
sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
Verify it works:
dfx --version
That's it. No accounts needed, no wallets to set up — dfx handles everything.
Step 2: Install the skill
clawhub install multichain-protocol
Or manually: copy SKILL.md + wallet_commands.py to your workspace.
Step 3: Create an ICP identity (if you don't have one)
dfx identity new my-wallet
dfx identity use my-wallet
Step 4: Try it — your first 5 sends are free
Ask your bot:
"show my wallet addresses"
"what's my SOL balance?"
"send 0.1 ETH to 0xABC..."
"swap 100 USDC to SOL on Raydium"
"set up a DCA: buy $50 of BTC every day"
Step 5 (optional): Deploy your own canister for production
For multi-user, automation, and timers — deploy WalletBot.mo as your own ICP canister.
Two Integration Approaches
| Canister (Recommended) | CLI (Quick) | |
|---|---|---|
| Flow | User → ClawdBot → Your Canister → MeneseSDK | User → ClawdBot → dfx canister call → MeneseSDK |
| Setup | Deploy WalletBot.mo, register with SDK | Copy scripts/wallet_commands.py, done |
| Best for | Multi-user, automation, timers, production | Single-user, prototyping, testing |
| Automation | ICP timers for DCA/rebalance/bots | None (manual only) |
Best Practice: Cache Addresses
Addresses are deterministic — the same principal always gets the same addresses on every chain. Fetch once, cache forever.
// Canister pattern — cache in stable var
stable var cachedAddresses : ?AddressBook = null;
public shared func getAddresses() : async AddressBook {
switch (cachedAddresses) {
case (?addrs) { addrs }; // Return cached — no inter-canister call
case null {
let sol = await menese.getMySolanaAddress();
let evm = await menese.getMyEvmAddress();
// ... fetch all chains once ...
let addrs = { solana = sol.address; evm = evm.evmAddress; /* ... */ };
cachedAddresses := ?addrs;
addrs;
};
};
};
# CLI pattern — fetch once, store in file
import json, os
CACHE_FILE = "addresses_cache.json"
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-kyounesmercatura-multichain-protocol": {
"enabled": true,
"auto_update": true
}
}
}