From monskills
Sends transactions on Monad testnet/mainnet using Agent wallet: deploy contracts, swap, call contracts, sign messages. Requires Safe multisig for proposals.
How this skill is triggered — by the user, by Claude, or both
Slash command
/monskills:walletThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Any transaction other than deploying a Safe multisig must be proposed to the user via the deployed multisig.
Any transaction other than deploying a Safe multisig must be proposed to the user via the deployed multisig.
For instructions on how to create and use a Safe multisig check out the SAFE_WALLET_MANAGEMENT.md file in utils folder.
When proposing transactions: Always invoke the propose.sh wrapper from the utils folder (it boots propose.mjs with cached deps) — never write a custom script. After it runs, do NOT add your own summary, status message, or reformat the output. The script output contains a QR code that the user must see exactly as printed. Your only follow-up should be asking the user to approve the transaction and provide the transaction hash.
Security rules:
~/.monskills/keystore)Check if the agent has generated a wallet before. If the keystore directory ~/.monskills/keystore exists and contains a keystore file, the wallet already exists.
If not found then create a wallet.
Foundry is required to be installed, in order to generate a wallet.
Use the following command to check if Foundry is installed.
foundryup --version
The instructions to install Foundry can be found here: https://www.getfoundry.sh/introduction/installation
mkdir -p ~/.monskills/keystore && cast wallet new ~/.monskills/keystore --unsafe-password ""
This creates an encrypted keystore file in ~/.monskills/keystore/. The private key is never stored in plaintext.
cast wallet list --dir ~/.monskills/keystore
~/.monskills/keystore/).When a script needs the private key (e.g. as an env var), decrypt it on-the-fly. cast wallet decrypt-keystore prints <uuid>'s private key is: 0x... — pipe through awk '{print $NF}' to keep just the hex key, otherwise Foundry commands reject the prefixed string with "Failed to decode private key":
cast wallet decrypt-keystore --keystore-dir ~/.monskills/keystore <KEYSTORE_FILENAME> --unsafe-password "" | awk '{print $NF}'
Replace <KEYSTORE_FILENAME> with the filename of the keystore file in ~/.monskills/keystore/ (without the directory path).
Why this matters: Users need access to their wallet to:
npx claudepluginhub therealharpaljadeja/monskills --plugin monskillsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Enforces test-driven development: write failing test first, then minimal code to pass. Use when implementing features or bugfixes.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.