Repository navigation
v2.7.0
What's new in v2.7.0
contract_deploy — KMS-signed contract creation, across the SDK + MCP + CLI.
Your agents can now deploy smart contracts from a KMS-managed wallet in a single call. The new operation signs a contract-creation transaction (to: null + data: bytecode) via the project's KMS key and returns the deterministic CREATE address synchronously — you know where the new contract will live the moment the request returns, no polling needed.
What you can do
- In an MCP-driven agent flow:
contract_deploy({ project_id, wallet_id, chain: "base-sepolia", bytecode: "0x6080…" }) → { call_id, tx_hash, status: "pending", contract_address: "0xABC…" } - From the CLI:
run402 contracts deploy <project_id> <wallet_id> --bytecode 0x6080… [--chain base-mainnet] [--value-wei N] [--idempotency-key K] - In SDK code:
const { contract_address, tx_hash } = await r.contracts.deploy(projectId, { walletId, chain: "base-sepolia", bytecode, }); // contract_address is the deterministic CREATE address, available BEFORE confirmation.
Pricing + properties
- Same model as
contract_call: chain gas at-cost + $0.000005 KMS sign fee per deploy. No new pricing knobs. - Bytecode cap: 128 KB (generous — typical contracts are 5-20 KB).
- Same idempotency model as
contract_call(idempotency_key with request-fingerprint replay detection). - Same auth (project service key), same lifecycle gating, same suspension behavior.
- run402 does not compile Solidity. Bring your own bytecode (compile via hardhat / foundry / solc, then concat your ABI-encoded constructor args via viem / ethers, then pass the full creation calldata as
bytecode). - The reconciler verifies the on-chain receipt's
contractAddressmatches the pre-stored predicted CREATE address on confirmation — protects against the unlikely reorg-induced mismatch.
Why this exists
The kysigned project (Kychee's e-signature product) needed to deploy a FFLONK Verifier contract on Base — both for Kychee's own kysigned.com deployment and for every law-firm forker running kysigned init. Before v2.7.0 there was no way to do this through run402's KMS wallet API. With this release, kysigned's bootstrap flow can complete end-to-end, and every other run402 customer that needs to deploy contracts from their KMS wallet gets the capability for free.
Compatibility
100% backwards-compatible. Existing tools / methods / commands are untouched. The new contract_deploy operation is purely additive.
Published packages
- run402-mcp@2.7.0
- run402@2.7.0 (the CLI)
- @run402/sdk@2.7.0
All published with npm provenance attestations via OIDC Trusted Publisher.