Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 16 Jun 15:49
· 1215 commits to main since this release

Breaking: "contract wallet" is now "signer"

A KMS-backed Ethereum EOA that signs transactions for your project is a signer — not a "contract wallet." That phrase means a smart-contract account (Safe, ERC-4337) to anyone with Ethereum context, so it actively misled. This release renames the entity across the SDK, CLI, and MCP to match the gateway. Lockstep release of @run402/sdk, run402 (CLI), and run402-mcp at 3.0.0.

SDK (@run402/sdk)

  • r.contracts.provisionSigner() / getSigner() / listSigners() / deleteSigner() (were provisionWallet / getWallet / listWallets / deleteWallet)
  • setRecovery() / setLowBalanceAlert() / drain() keep their names; the walletId option is now signerId
  • Renamed types: SignerSummary, ProvisionSignerResult, ListSignersResult, DeleteSignerResult, ProvisionSignerOptions, SignerStatus (were ContractWallet* / *Wallet*)
  • Contract operations (call / deploy / read / callStatus) keep their names; their walletId option is now signerId

CLI (run402)

  • run402 contracts provision-signer / get-signer / list-signers (were *-wallet)
  • set-recovery / set-alert / call / deploy / read / status / drain / delete keep their names and now take a signer id

MCP (run402-mcp)

  • Tools provision_signer / get_signer / list_signers / drain_signer / delete_signer (were *_contract_wallet)
  • set_recovery_address / set_low_balance_alert / contract_call / contract_deploy / contract_read / get_contract_call_status keep their names; the wallet_id input is now signer_id

Wire / gateway

  • Routes /contracts/v1/wallets* are now /contracts/v1/signers*
  • The wallet_id request/response field on /contracts/v1/call, /deploy, and /calls/:id is now signer_id

No compatibility shim (pre-launch) — update clients in lockstep. Your SIWX signing wallet (run402 wallets, --wallet) is a different concept and is unchanged.