safe-multisig-skill
Propose, confirm, and execute Safe multisig transactions using the Safe{Core} SDK (protocol-kit v6 / api-kit v4). TypeScript strict. Use when an agent needs to operate a Safe smart account — (1) create/predict a new Safe, (2) fetch Safe owners/threshold/nonce, (3) list pending multisig txs, (4) build + propose a tx, (5) add confirmations, (6) execute a tx onchain, or (7) troubleshoot Safe nonce/signature issues across chains (Base/Ethereum/Optimism/Arbitrum/Polygon/etc.).
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/openclaw-consensus-bot/safe-multisigSafe Multisig Skill
TypeScript-strict scripts for interacting with Safe multisig accounts via:
- Safe Transaction Service (read state, propose txs, submit confirmations)
- Safe{Core} SDK (create Safes, create txs, compute hashes, sign, execute)
All scripts use ethers v6, validate inputs (addresses, tx hashes), and output JSON.
Quick start
cd <this-skill>
./scripts/bootstrap.sh
# sanity check network + service
./scripts/safe_about.sh --chain base
Core scripts
| Script | Description |
|---|---|
create-safe.ts | Predict address + optionally deploy a new Safe |
safe-info.ts | Fetch Safe info (owners/threshold/nonce) |
list-pending.ts | List pending (queued) multisig transactions |
safe_txs_list.ts | List all multisig transactions (queued + executed) |
propose-tx.ts | Create + propose a multisig tx |
approve-tx.ts | Add an off-chain confirmation for a tx hash |
execute-tx.ts | Execute a fully-confirmed tx onchain |
All scripts: npx tsx scripts/<name>.ts --help
Common tasks
1) Create a new Safe
npx tsx scripts/create-safe.ts \
--chain base \
--owners 0xOwner1,0xOwner2,0xOwner3 \
--threshold 2
Add --deploy + SAFE_SIGNER_PRIVATE_KEY to send the deployment tx.
2) Get Safe info
npx tsx scripts/safe-info.ts --chain base --safe 0xYourSafe
3) List pending transactions
npx tsx scripts/list-pending.ts --chain base --safe 0xYourSafe
4) Propose a new transaction
Create a tx request JSON (see references/tx_request.schema.json and references/examples.md).
export SAFE_SIGNER_PRIVATE_KEY="..."
npx tsx scripts/propose-tx.ts \
--chain base \
--rpc-url "$BASE_RPC_URL" \
--tx-file ./references/example.tx.json
5) Confirm (approve) a proposed transaction
export SAFE_SIGNER_PRIVATE_KEY="..."
npx tsx scripts/approve-tx.ts \
--chain base \
--safe 0xYourSafe \
--safe-tx-hash 0x...
6) Execute a confirmed transaction (onchain)
export SAFE_SIGNER_PRIVATE_KEY="..."
npx tsx scripts/execute-tx.ts \
--chain base \
--rpc-url "$BASE_RPC_URL" \
--safe 0xYourSafe \
--safe-tx-hash 0x...
Configuration
All scripts accept:
--chain <slug>(recommended): e.g.base,base-sepolia,mainnet,arbitrum,optimism--tx-service-url <url>: Override the transaction service URL--rpc-url <url>: RPC endpoint (orRPC_URLenv var)--api-key <key>: Safe Transaction Service API key (orSAFE_TX_SERVICE_API_KEYenv var)
Security rules
- Never paste private keys into chat. Use env vars or files.
- Prefer low-privilege signers and spending limits.
- Always verify Safe address, chainId / RPC, and nonce before signing.
References
references/examples.md— example requests + workflowsreferences/tx_request.schema.json— tx request JSON shapereferences/tx_service_slugs.md— chain slugs + notes
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-openclaw-consensus-bot-safe-multisig": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
agent-pulse
Send and verify on-chain liveness pulses for autonomous agents on Base via the Agent Pulse protocol. Use when you need to: (1) prove an agent is alive by sending a pulse, (2) check any agent's liveness status or streak, (3) monitor multiple agents, (4) view the global pulse feed, (5) auto-configure wallet and PULSE balance, (6) run scheduled heartbeat pulses, or (7) read protocol health and config. Supports both API and direct on-chain (cast) modes.
uniswap-v4
Swap tokens and read pool state on Uniswap V4 (Base, Ethereum). Use when the agent needs to: (1) swap ERC20 tokens or ETH via Uniswap V4, (2) get pool info (price, tick, liquidity, fees), (3) find the best pool for a token pair, (4) quote expected swap output via the on-chain V4Quoter, (5) set up Permit2 approvals for the Universal Router, or (6) execute exact-input swaps with proper slippage protection. Supports Base and Ethereum mainnet, plus Base Sepolia testnet. TypeScript with strict types. Write operations need a private key via env var.
safe-multisig-skill
Propose, confirm, and execute Safe multisig transactions using the Safe{Core} SDK (protocol-kit v6 / api-kit v4). TypeScript strict. Use when an agent needs to operate a Safe smart account — (1) create/predict a new Safe, (2) fetch Safe owners/threshold/nonce, (3) list pending multisig txs, (4) build + propose a tx, (5) add confirmations, (6) execute a tx onchain, or (7) troubleshoot Safe nonce/signature issues across chains (Base/Ethereum/Optimism/Arbitrum/Polygon/etc.).
farcaster-skill
Post, read, search, and engage on Farcaster via the Neynar API. Use when an agent needs to: (1) post casts with text, embeds, or in channels, (2) reply to or thread casts, (3) read a user's feed or a channel feed, (4) search casts by keyword, (5) look up user profiles by username or FID, (6) like or recast, (7) delete casts, (8) list or search channels. Pure bash+curl+jq — zero npm dependencies.