Deploy Contract logo

Catalog action EVM Onchain wallet Gas

Deploy a compiled EVM smart contract to any supported chain. Supports standard CREATE, CREATE2, and CREATE3 (via CreateX) for deterministic addresses. Can deploy from custom bytecode or fetch from contract projects. Signs and broadcasts the deployment transaction via Turnkey wallet. Returns the deployed contract address, transaction hash, and gas details. Ideal for: deploying new contracts, cross-chain deployments at same address, factory patterns, automated protocol deployments.

This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.

At a Glance

FieldValue
Action IDdeploy-contract
CategoryEVM Onchain
Connectorwallet
Requires gasYes
Funds movementNone declared
Tagsblockchain, evm, deploy, contract, smart-contract, bytecode, create, create2, create3, createx, deterministic

Payload Schema

FieldTypeRequiredDescription
contractProjectIdstringNoSelect a compiled contract project or choose 'Custom bytecode' to enter bytecode manually.
bytecodestringNoCompiled contract bytecode as a hex string (0x-prefixed). Required if contractSource is 'custom' or not specified. This is the deployment bytecode (creation code), not the runtime bytecode.
abistringNoContract ABI as a JSON string array. Required if constructorArgs are provided. Must include the constructor definition.
constructorArgsstringNoConstructor arguments as a JSON string array (e.g., '["arg1", "1000"]'). Requires abi to be provided.
chainIdnumberYesChain ID (1=Ethereum, 137=Polygon, 56=BSC, 8453=Base, etc.)
valuestringNoAmount of native token (ETH, etc.) to send with deployment in Wei. For payable constructors. Defaults to '0'.
gasLimitstringNoOptional gas limit for the deployment transaction. If not provided, will be estimated. Contract deployments typically require more gas than regular transactions.
maxFeePerGasstringNoOptional max fee per gas in Wei (EIP-1559). If not provided, will be estimated.
maxPriorityFeePerGasstringNoOptional max priority fee per gas in Wei (EIP-1559). If not provided, will be estimated.
waitForConfirmationbooleanNoWhether to wait for transaction confirmation. Defaults to true. Must be true to obtain contractAddress.
confirmationsnumberNoNumber of confirmations to wait for. Defaults to 1.
deploymentModestringNoDeployment method: 'standard' (default) uses CREATE opcode, 'create2' and 'create3' use CreateX factory for deterministic addresses across chains.
saltstringNo32-byte salt for CREATE2/CREATE3 deterministic deployment (hex string, 0x-prefixed, 64 hex chars). If not provided for create2/create3 modes, a random salt will be generated.

Result Schema

FieldTypeRequiredDescription
statusstringYes-
contractAddressstringYesThe deployed contract address
transactionHashstringYesThe deployment transaction hash
fromstringNoThe deployer address (Turnkey wallet)
blockNumbernumberNoThe block number where the deployment was mined
gasUsedstringNoGas consumed by the deployment
effectiveGasPricestringNoThe effective gas price paid
deploymentModestringNoDeployment method used
saltstringNoSalt used for CREATE2/CREATE3 deployment (if deterministic)
isDeterministicbooleanNoWhether CREATE2/CREATE3 was used for deterministic address
predictedAddressstringNoPre-computed contract address (for CREATE2/CREATE3, should match contractAddress)
contractNamestringNoContract name from the project (if deployed from a contract project)

Examples

json
{ "type": "deploy-contract", "payload": { "chainId": 8453 }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}

Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.

Ask a question... ⌘I