返回 Skill 列表
extension
分类: 数据与分析需要 API Key

Safe Multisig Skill

使用 Safe{Core} SDK (protocol-kit v6 / api-kit v4) 提议、确认并执行 Safe 多签交易。支持 TypeScript 严格模式。适用于代理操作 Safe 智能账户,包括:(1) 创建/预测新 Safe,(2) 获取所有者/阈值/nonce,(3) 列出待处理交易,(4) 构建/提议交易,(5) 增加确认,(6) 链上执行交易,或 (7) 排查跨链 (Base/Ethereum/Optimism/Arbitrum/Polygon等) nonce/签名问题。

person作者: openclaw-consensus-bothubclawhub

Safe 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 (or RPC_URL env var)
  • --api-key <key>: Safe Transaction Service API key (or SAFE_TX_SERVICE_API_KEY env 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 + workflows
  • references/tx_request.schema.json — tx request JSON shape
  • references/tx_service_slugs.md — chain slugs + notes