> For the complete documentation index, see [llms.txt](https://docs.inverter.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inverter.network/sdk/api/deployworkflow.md).

# deployWorkflow

The `deployWorkflow` method is used to deploy a fresh workflow.

**Import**: imported as follows

```typescript
import { deployWorkflow } from '@inverter-network/sdk'
```

**Parameters**: expects the following parameters

{% code overflow="wrap" %}

```ts
{
    // the public client / provider to make RPC calls
    publicClient: PublicClient
    // the wallet client to sign and submit transactions
    walletClient: WalletClient
    // The modules which will be deployed
    requestedModules: MixedRequestedModules
    // The parser config, in charge of decimals, ...
    tagConfig?: TagConfig
    // The Inverter instance in charge of cache
    self?: Inverter
}
```

{% endcode %}

**Returns**: an object with the following properties

{% code overflow="wrap" %}

```ts
{
    // returns a schema of the inputs required for deploying, e.g. can be used to render input fields
    inputs: GetDeployWorkflowInputs
    
    // a function that takes in deployment parameters, submits a deployment
    run(args: GeDeployWorkflowArgs, options?: MethodOptions): Promise<DeployWorkflowWriteReturnType>
    
    // a function that takes in deployment parameters, simulates a deployment transaction and returns the orchestratorAddress
    simulate: (userArgs: GeDeployWorkflowArgs) => Promise<DeployWorkflowSimulateReturnType>
    
    // a function that takes in deployment parameters, estimates the deployment gas and return value and formatted value
    estimateGas: (userArgs: GeDeployWorkflowArgs) => Promise<DeployWorkflowEstimateGasReturnType>
    
    // a function that returns the bytecode which can be used to deploy the workflow
    bytecode: (userArgs: GeDeployWorkflowArgs) => Promise<DeployWorkflowBytecodeReturnType>
}
```

{% endcode %}
