Skip to content

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 20 May 19:42
· 1432 commits to main since this release

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 contractAddress matches 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

All published with npm provenance attestations via OIDC Trusted Publisher.