> ## Documentation Index
> Fetch the complete documentation index at: https://thrackle.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# createPolicy

> **createPolicy**(`config`, `rulesEnginePolicyContract`, `rulesEngineRulesContract`, `rulesEngineComponentContract`, `rulesEngineForeignCallContract`, `policySyntax`?): `Promise`\<`object`>

Creates a policy in the Rules Engine, including rules, trackers, and foreign calls.

## Parameters

| Parameter                                 | Type                                  | Description                                                            |
| ----------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------- |
| `config`                                  | `Config`                              | -                                                                      |
| `rulesEnginePolicyContract`               | `object`                              | The contract instance for interacting with the Rules Engine Policy.    |
| `rulesEnginePolicyContract.abi`           | (`object` \| `object`)\[]             | -                                                                      |
| `rulesEnginePolicyContract.address`       | \`0x\$\{string}\`                     | -                                                                      |
| `rulesEngineRulesContract`                | `object`                              | The contract instance for interacting with the Rules Engine Rules.     |
| `rulesEngineRulesContract.abi`            | (`object` \| `object` \| `object`)\[] | -                                                                      |
| `rulesEngineRulesContract.address`?       | \`0x\$\{string}\`                     | -                                                                      |
| `rulesEngineComponentContract`?           | `object`                              | The contract instance for interacting with the Rules Engine Component. |
| `rulesEngineComponentContract.abi`?       | (`object` \| `object` \| `object`)\[] | -                                                                      |
| `rulesEngineComponentContract.address`?   | \`0x\$\{string}\`                     | -                                                                      |
| `rulesEngineForeignCallContract`?         | `object`                              | -                                                                      |
| `rulesEngineForeignCallContract.abi`?     | (`object` \| `object` \| `object`)\[] | -                                                                      |
| `rulesEngineForeignCallContract.address`? | \`0x\$\{string}\`                     | -                                                                      |
| `policySyntax`?                           | `string`                              | The JSON string representing the policy syntax.                        |

## Returns

`Promise`\<`object`>

The ID of the newly created policy.

### policyId

> **policyId**: `number`

## Defined in

[src/modules/policy.ts:86](https://github.com/forte-service-company-ltd/forte-rules-engine-sdk/blob/5aad4d7c3c8cc91280e4449c17ac8ea31219fbed/src/modules/policy.ts#L86)
