Repository navigation
v3.0.0
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()(wereprovisionWallet/getWallet/listWallets/deleteWallet)setRecovery()/setLowBalanceAlert()/drain()keep their names; thewalletIdoption is nowsignerId- Renamed types:
SignerSummary,ProvisionSignerResult,ListSignersResult,DeleteSignerResult,ProvisionSignerOptions,SignerStatus(wereContractWallet*/*Wallet*) - Contract operations (
call/deploy/read/callStatus) keep their names; theirwalletIdoption is nowsignerId
CLI (run402)
run402 contracts provision-signer/get-signer/list-signers(were*-wallet)set-recovery/set-alert/call/deploy/read/status/drain/deletekeep 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_statuskeep their names; thewallet_idinput is nowsigner_id
Wire / gateway
- Routes
/contracts/v1/wallets*are now/contracts/v1/signers* - The
wallet_idrequest/response field on/contracts/v1/call,/deploy, and/calls/:idis nowsigner_id
No compatibility shim (pre-launch) — update clients in lockstep. Your SIWX signing wallet (run402 wallets, --wallet) is a different concept and is unchanged.